BASIC

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(References)
(Other links and references)
Line 27: Line 27:
 
* [http://en.wikipedia.org/wiki/BASIC BASIC (Wikipedia)]
 
* [http://en.wikipedia.org/wiki/BASIC BASIC (Wikipedia)]
 
* [https://www.techdirt.com/articles/20140227/09465426377/public-knowledge-deflates-another-dubious-software-patent-reducing-it-to-seven-lines-basic.shtml Public Knowledge Deflates Another Dubious Software Patent By Reducing It To Seven Lines Of BASIC]
 
* [https://www.techdirt.com/articles/20140227/09465426377/public-knowledge-deflates-another-dubious-software-patent-reducing-it-to-seven-lines-basic.shtml Public Knowledge Deflates Another Dubious Software Patent By Reducing It To Seven Lines Of BASIC]
 +
* [http://www.dartmouth.edu/basicfifty/ Basic at 50]

Revision as of 01:21, 8 April 2014

File Format
Name BASIC
Ontology
Extension(s) .bas
Released 1964

Sol BASIC screen shot (as simulated in Solace)

Sol BASIC screen shot (as simulated in Solace)

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.

See also

Manuals

Other links and references

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox