BASIC

BASIC (Beginner's All-purpose Symbolic Instruction Code) was created in 1964 at Dartmouth College as a programming language designed to be easy for novices to learn. Some of these novices were misled by the name to think that it's the "basic" low-level language of computers, which it isn't (machine language is the low-level language; BASIC is a higher-level interpreted language running on top of machine language).

Originally implemented on a time-sharing mainframe, BASIC really took off in popularity later when personal computers became available. Bill Gates created a version of BASIC for the Altair hobbyist computer in 1975, which became the first product of Microsoft. This was distributed on punched tape to be loaded into those early computers, but later computer models such as the Commodore PET and Radio Shack TRS-80 included versions of BASIC built into their ROMs, making it the most accessible programming language to a generation of early home-computer programmers. The Apple II originally came with an Integer BASIC programmed by Steve Wozniak, but later introduced Applesoft II Floating Point BASIC, developed by Microsoft, which also created a number of the other BASICs of that era.

BASIC isn't so much a single language as it is a whole family of languages with a vague resemblance to one another; different versions can differ greatly in data types, input-output methods, and other things. The newest BASICs such as Microsoft Visual Basic barely have any resemblance to the oldest ones; for one thing, line numbers were ubiquitous in the old BASICs but seldom found in the new ones.

BASIC has been criticized by advocates of structured programming for lacking in built-in structure; programmers tend to use what is termed "spaghetti code" in which program flow jumps around erratically, especially when the GOTO command is used. (A famous computer science paper was titled "GO TO Considered Harmful".) While such lack of structure reduced the learning curve for getting started in programming (you could just start typing commands in to see how they worked, without worrying about the larger structure they fit into), this also bred bad habits that would be hard to unlearn when the programmer later moved to a better-structured language like Pascal or C. Newer BASICs are more structured now, however, having taken on some constructs from other languages along with the traditional BASIC commands.

From a "file archaeology" standpoint, one notable fact is that most programs in early BASICs were stored in what was known as tokenized BASIC, where instead of a plain-text source file, the program is stored as a series of encoded tokens representing the keywords of the language, a device which was necessitated by the small amount of storage space computers had in those days. As the tokens are platform-specific, there is no single process by which such a program can be decoded now if you don't have a machine similar to the one it was created on, but if you know the specific tokens and file structure of the particular platform (as is documented here for some platforms), this gives you the information you need to decode that particular variety.

BASIC source code files (whether tokenized or ASCII) often had a .bas extension on systems that distinguished file types by extensions, but many platforms had other means of identifying file types such as specific flags in the filesystem entries. Sometimes specific varieties of BASIC had different file type identifiers.

Manuals

 * 1964 Dartmouth BASIC manual
 * 1970 DEC PDP-11 BASIC manual
 * 1977 Applesoft BASIC manual

Other links and references

 * BASIC (Wikipedia)
 * Public Knowledge Deflates Another Dubious Software Patent By Reducing It To Seven Lines Of BASIC
 * Basic at 50
 * Richard Garriott’s D&D #1 Contest! (includes scanned printout of Garriott's 1977 role-playing-game BASIC source code)
 * BASIC Computer Language: It's Easier Than You Think (TRS-80)
 * The arsenal of Hell is apparently controlled by a BASIC program.
 * The 8-Bit Guy: The basics of BASIC (video)
 * Historical marker about the creation of BASIC at Dartmouth
 * An online in-browser BASIC