BASIC

BASIC (Beginner's All-purpose Symbolic Instruction Code) is a subset of FORTRAN originally developed by John G. Kemény and Thomas E. Kurtz in 1964 to offer an easier programming language for beginners for the Dartmouth University time-sharing system. BASIC was easy to implement and could reside in a fairly small amount of memory which made it popular with the first generation of microcomputers in the 1970s and it remained the most popular programming language on personal computers until the 1990s.

History
BASIC is unstructured and therefore there is a tendency for programmers to write spaghetti code. With the variants used in microcomputers, known collectively as "Street Basic", the tendency was even greater. Awareness of this shortcoming increased in the early 80s as BASIC started to come under threat in educational institutions on one hand from languages designed from ground up to teach structured programming like COMAL and on the other hand from inexpensive implementations of Pascal. Many Basic developers responded by making their variations of the language increasingly structured to a point where some of them resemble Pascal in all aspects except syntax. That was helped by the introduction of the EMCA-116 standard in the mid 80s, but as many governments require that all products bought with public money follow official standards it forced most vendors to comply, even Microsoft rushed out QBasic in response to it.

In 1990 more people knew how to program in BASIC than in all other programming languages combined, however the language started to lose its popularity when GUIs became more popular but most implementations had limited support for the programming models needed.

Standards

 * Minimal BASIC
 * ECMA-55 MINIMAL Basic Standard - Now withdrawn by ECMA but used as a reference in some modern "Street Basic" implementations
 * Also known as ISO 6373:1984 Data processing - Programming languages - Minimal BASIC - The standard originated at ECMA but copies of it are still valid standards in some countries for instance as ANSI X3.60-1978 minimal BASIC in the USA, as Australian Standard AS 2797-1985 Programming language - Minimal BASIC


 * Full BASIC
 * ECMA-116 ECMA Basic-1, ECMA Basic-2 and ECMA Graphics Module Standards - Now withdrawn but used as a reference for a number of modern Basic implementations.
 * Like the earlier standard this originated at EMCA and while they have withdrawn it a number of international and local standard organisations still have it as current standard including ANSI X3.113-1987 "Programming Languages Full BASIC" in the USA and the international INCITS/ISO/IEC 10279-1991 (R2005) "Information Technology - Programming Languages - Full BASIC".


 * ANSI X3.113 Interpretations-1992 "BASIC Technical Information Bulletin # 1 Interpretations of ANSI 03.113-1987"
 * USA only addendum to the ECMA-116 standard


 * ISO/IEC 10279:1991/ Amd 1:1994 "Modules and Single Character Input Enhancement"
 * Small addendum to the original ECMA-116/ISO10279 standard

Implementations
Interpreter
 * Bywater Basic - Open source - Command line only
 * GFA Basic
 * Liberty BASIC
 * LotusScript - Somewhat Visual Basic like, included with Lotus Notes and SmartSuite
 * WDBasic - Street basic

Compiler
 * CA Realizer - Versions 1 & 2 offered OS/2 support
 * IBM BASIC Compiler/2
 * IBM VisualAge for Basic
 * Microshare Basic - Business Basic
 * Microsoft Basic Professional
 * Omni Basic
 * True Basic - Versions up to 5.5 supported OS/2

Publications

 * John G. Kemeny; Thomas E. Kurtz: BASIC Programming 3rd edition - Wiley 1980, ISBN 0-471-01863-5
 * John G. Kemeny; Thomas E. Kurtz: Back to BASIC: The History, Corruption, and Future of the Language - Addison-Wesley 1984, ISBN 0-201-13433-0
 * John G. Kemeny; Thomas E. Kurtz: Structured BASIC Programming - Wiley 1987, ISBN 0-471-81087-8

Links

 * Basic Source Repository
 * USENET [news:comp.lang.basic.misc comp.lang.basic.misc]