BASIC

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Other links and references)
(25 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
|subcat=Programming Languages
 
|subcat=Programming Languages
 
|extensions={{ext|bas}}
 
|extensions={{ext|bas}}
 +
|pronom={{PRONOM|fmt/885}}
 +
|wikidata={{wikidata|Q42979}}
 +
|released=1964
 +
|image=Sol-screen.jpg
 +
|caption=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).
  
'''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.
  
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 paper 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 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 "[http://www.u.arizona.edu/~rubinson/copyright_violations/Go_To_Considered_Harmful.html 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.
  
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 [[Tokenized BASIC|here]] for some platforms), this gives you the information you need to decode that particular variety.
  
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 system-specific, there is no single process by which such a program can be decoded now if you don't have the original machine it was created on.
+
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.
  
== References ==
+
== See also ==
* [http://en.wikipedia.org/wiki/BASIC BASIC (Wikipedia)]
+
* [[Tokenized BASIC]]
 +
 
 +
== Manuals ==
 +
* [http://www.cs.bris.ac.uk/~dave/basic.pdf 1964 Dartmouth BASIC manual]
 +
* [https://archive.org/details/bitsavers_decpdp11baASICProgrammingManualDec70_5936477 1970 DEC PDP-11 BASIC manual]
 +
* [https://archive.org/details/Apple_II_Extended_Precision_Floating_Point_BASIC_Language_Reference_Manual 1977 Applesoft BASIC manual]
 +
 
 +
== Other links and references ==
 +
* [[Wikipedia: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]
 +
* [http://www.dartmouth.edu/basicfifty/ Basic at 50]
 +
* [https://www.shroudoftheavatar.com/?p=39149 Richard Garriott’s D&D #1 Contest!] (includes scanned printout of Garriott's 1977 role-playing-game BASIC source code)
 +
* [https://archive.org/details/Basic_Computer_Language_Its_Easier_Than_You_Think_1978_Radio_Shack BASIC Computer Language: It's Easier Than You Think (TRS-80)]
 +
* [http://scarygoround.com/?date=20160311 The arsenal of Hell is apparently controlled by a BASIC program.]
 +
* [https://www.youtube.com/watch?v=seM9SqTsRG4 The 8-Bit Guy: The basics of BASIC] (video)
 +
* [https://granitegeek.concordmonitor.com/2019/06/11/finally-a-historical-marker-that-talks-about-something-important/ Historical marker about the creation of BASIC at Dartmouth]

Revision as of 23:36, 14 June 2019

File Format
Name BASIC
Ontology
Extension(s) .bas
PRONOM fmt/885
Wikidata ID Q42979
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, 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.

See also

Manuals

Other links and references

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox