BASIC: Not So

While I usually pride myself on my high technological ability among my peers, thanks in no small part to the start of my education being based in Computer Engineering, I admit that time has waned my familiarity and skill on this front, particularly in the realm of things like coding. There was a time when I could easily code in the C++, Javascript, and Visual BASIC languages, but find that now my abilities are lesser than they were. This extends to my knowledge about the languages themselves, and how they relate to computers on a hardware level; ironically, the history and impact of these languages has escaped me. As such, the beginnings of consumer code in the form of BASIC has intrigued me to the point of further research.

BASIC, or Beginner’s All-purpose Symbolic Instruction Code, was, as the name implies, a high-level coding language. A high-level language is one that is closer to human language (in this case, English) than to what computers actually speak in, which is to say binary and derivative forms thereof. BASIC was developed and released by math professors John G. Kemeny and Thomas E. Kurtz at Dartmouth College in 1964, meant to be used on the Dartmouth Time Sharing System, and to be approachable for the new, learning computer scientists of the day. The DTSS was Dartmouth College’s operating system that was used on their computers when BASIC was developed. BASIC quickly became a learner’s language that could be run on the newly emerging personal and home computers of the 1970s and 1980s, such as the Apple IIe and much of Hewlitt-Packard’s (today is known popularly as HP) early consumer line. This popularity came from both the simplicity of the language and the small file sizes that the language created and used. These purpose-built origins of BASIC are reminiscent of the beginning components of the Internet, such as ARPAnet and Tim Berners Lee’s work at CERN, with the utility of each of these later becoming more accessible and useful to a wider public. This exploding out was not planned by the creators of any of these, particularly Kurtz, who said later in an article by TIME that he and Kemeny were only “thinking only of Dartmouth,” and its application as a learning tool.

The language got spun into many variations to be used more widely than in the realms of academia or hobbyist computing. The previously mentioned article even points out that a fledgling Microsoft got its start by developing different purpose-built versions of BASIC to be used for other applications, such as Visual BASIC. The article continues on to track the spiderwebbing of BASIC throughout the world of computing, leading the development of new languages, new hardware, and programs galore. The decidedly less usual pursuits of the language are even explored deeper in the article, bringing up the development of games despite non-graphical representation, such as slot machines made in ASCII-esque art, before eventually turning into the more advanced versions and iterations of BASIC that included things like graphics and pictures as well as text. These spiraling advancements also expanded far beyond the walls of Dartmouth, spreading across the United States and further across the world to influence computing as a whole.

Sources (* = primary, - = secondary):
-Encyclopædia Britannica - The BASIC Computer Language
https://www.britannica.com/technology/BASIC
-Encyclopædia Britannica - Early Computing and SQL
https://www.britannica.com/technology/computer-programming-language/SQL#ref134617
-TIME Magazine - Fifty Years of BASIC
https://time.com/69316/basic/
*The original user manual for BASIC distributed by Kemeny and Kurtz
http://bitsavers.trailing-edge.com/pdf/dartmouth/BASIC_Oct64.pdf

Mad Libs – The Computer’s Way

Compared to the last manual random work exercise, this one seems a lot more enjoyable. The assignment is to create a phrasal template (a Mad Libs, for lack of a better colloquialism) and use random number generation, once again supplied by Random.org, correlating to a list of words for each blank to create a random sentence, a la Christopher Strachey’s love poem generator. And, surprise surprise, I’ve decided to relate my work to Dungeons and Dragons again, this time by making the phrasal template a premise for an encounter, campaign, or even just a side story. Below will be the template as left blank (20 words long in total as per the instructions), the tables containing the lists for each blank, and 7 permutations of the sentence generation. There was no reasoning behind there being 12 options for each, I just like the number.

The [adjective] [noun1] and the [adjective] [noun1] tried to [verb1] the [noun2] in order to [verb1] the [noun3]. [adverb], they [verb2].

adjective:

  1. Noble
  2. Unscrupulous
  3. Unhinged
  4. Adventurous
  5. Brave
  6. Hot-headed
  7. Quick-witted
  8. Tenacious
  9. Romantic
  10. Dashing
  11. Vulgar
  12. Famous

noun1:

  1. Barbarian
  2. Bard
  3. Cleric
  4. Druid
  5. Fighter
  6. Monk
  7. Paladin
  8. Ranger
  9. Rogue
  10. Sorcerer
  11. Warlock
  12. Wizard

verb1:

  1. Save
  2. Summon
  3. Hire
  4. Conquer
  5. Destroy
  6. Tame
  7. Befriend
  8. Bribe
  9. Banish
  10. Trap
  11. Take
  12. Enchant

noun2:

  1. Raven Queen
  2. Hobgoblins
  3. Demon Lord
  4. Orcs
  5. Bandits
  6. Noble persons
  7. Fire elementals
  8. Lich
  9. Tarrasque
  10. Abolith
  11. Beholder
  12. Cultists

noun3:

  1. Town
  2. Empire
  3. Mages’ Guild
  4. Little fishing village
  5. Thieves’ Guild
  6. City
  7. World
  8. Realm
  9. Barmaid
  10. Noble
  11. Emperor
  12. Cult

adverb:

  1. Unfortunately
  2. Fortunately
  3. Luckily
  4. Strangely
  5. Surprisingly
  6. Inexplicably
  7. Unfortunately
  8. Fortunately
  9. Luckily
  10. Strangely
  11. Surprisingly
  12. Inexplicably

verb2:

  1. Succeeded
  2. Failed
  3. Won
  4. Lost
  5. Disappeared
  6. Evaporated
  7. Died
  8. Lived happily ever after
  9. Screwed up everything
  10. Somehow both failed and succeeded
  11. Opened a rift and destroyed the world
  12. Killed a god. What that means, only time will tell

Randomly Generated Sentences:

  1. The Tenacious Rogue and the Adventurous Fighter tried to hire the noble persons in order to summon the barmaid. Fortunately, they lived happily ever after.

  2. The Hot-headed Druid and the Famous Warlock tried to enchant the Abolith in order to befriend the Cult. Fortunately, they somehow both failed and succeeded.

  3. The Romantic Fighter and the Famous Barbarian tried to conquer the Cultists in order to take the little fishing village. Luckily, they killed a god. What that means, only time will tell.

  4. The Adventurous Barbarian and the Brave Rogue tried to summon the Abolith in order to summon the noble. Strangely, they screwed up everything.

  5. The Unhinged Sorcerer and the Romantic Fighter tried to destroy the Raven Queen in order to hire the world. Luckily, they lost.

  6. The Quick-witted Sorcerer and the Hot-headed Bard tried to hire the fire elementals in order to hire the world. Surprisingly, they somehow both failed and succeeded.

  7. The Quick-witted Cleric and the Unscrupulous Barbarian tried to enchant the Raven Queen in order to save the world. Inexplicably, they lost.

The Random Walker

For assignment #2 in ENGL 429, we were assigned a grunt-work computing exercise known as the random walker. Simple enough premise: you have a random number generator (through Random.org) with a range set 1-4, corresponding to the 4 cardinal directions on a grid. Each number corresponds to a direction to draw 1 unit of movement on. A list of the assigned directions, followed by the result of 150 permutations of the random number generation, are both included in this post. The tracing was done by hand using an XP-Pen tablet and Paint.net drawing software, with a .png of a graph lifted from the first result on Google images when searching “graph paper.”

As far as practical applications of this exercise, manual or otherwise, I’ve actually found some use in my main hobby as a game runner and writer for TTRPGs: random map creation. Shaping out the edges of the paths taken create a pretty good starting point for an island or peninsula or even a starting layout for a city road system. I may use this method for an upcoming campaign I’m running.


Key:

1 = North / Y+

2 = East / X+

3 = South / Y-

4 = West / X-


end_me.exe

Twenty minutes of work for 10 units of movement