Science Fair Project Encyclopedia
Several versions were produced over the years, all implemented as compilers by undergraduate teams working under the direction of the designers. The very first version was produced before the time-sharing system was ready. Known as CardBASIC, it was intended for the standard card-reader based batch processing system. The first interactive version was made available to general users in June, 1964; the second in October, 1964; the third in 1966; the fourth in 1969; the fifth in 1970; the sixth in 1971; and the seventh in 1979.
- DEF -- for defining single line functions
- DIM -- for defining the size of arrays
- END -- for defining the end of the program
- STOP -- for stopping a program before the textual end
- FOR / TO / STEP -- for defining loops
- NEXT -- for marking the end of loops
- GOSUB -- for transferring control to simple subroutines
- RETURN -- for returning control from simple subroutines
- GOTO -- for transferring control to another statement
- IF / THEN -- for decision making
- LET / = -- for assignment of formula results to a variable
- PRINT -- for output of results
- DATA -- for storing data within the program
- READ -- for input of data stored in DATA statements
- REM -- for comments
It also implemented floating-point numeric variables and arithmetic. Variable names were limited to A to Z, A0 to A9, B0 to B9, ..., Z0 to Z9, giving a maximum of 286 possible distinct variables. Array names were restricted to A to Z only. Arrays did not need to be defined but in the absence of a DIM statement, they defaulted to 10 elements subscripted from 1 to 10.
- - -- Negation
- ^ -- Exponentiation
- * -- Multiplication
- / -- Division
- + -- Addition
- - -- Subtraction
- ( ) -- Grouping
- = -- Equal To
- <> -- Not Equal To
- < -- Is Less Than
- <= -- Is Less Than or Equal To
- > -- Is Greater Than
- >= -- Is Greater Than or Equal To
- INT -- Integer value
- ABS -- Absolute value
- SQR -- Square root value
- SIN -- Sine value
- COS -- Cosine value
- ATN -- Arctangent value
- LOG -- Natural Logarithmic value
- EXP -- Exponential value
- RND -- Random value
In addition DTSS implemented one of the first Integrated Design Environments: a command-based system with the following commands.
- HELLO -- to log in to DTSS
- BASIC -- to start BASIC mode
- NEW -- to name and begin writing a program
- OLD -- to retrieve a previously named program from permanent storage
- LIST -- to display the current program
- SAVE -- to save the current program in permanent storage
- UNSAVE -- to clear the current program from permanent storage
- CATALOG -- to display the names of programs in permanent storage
- SCRATCH -- to erase the current program without clearing its name
- RENAME -- to change the name of the current program without erasing it
- RUN -- to execute the current program
- STOP -- to interrupt the currently running program
There was no need to log out. If users did not respond, they were logged out after a short delay.
These commands were often believed to be part of the BASIC language by users but in fact they were part of the time sharing system and were also used when preparing Algol or FORTRAN programs via the DTSS terminals.
Any line typed in by the user, and beginning with a line number, was added to the program, replacing any previously stored line with the same number; anything else was assumed to be a DTSS command and immediately executed. Lines which consisted solely of a line number weren't stored but did remove any previously stored line with the same number. This method of editing was necessary because of the use of teletypes as the terminal units for the Dartmouth Timesharing system.
Work on the compiler and the operating system was done concurrently and so the first BASIC programs were run in batch mode as part of the development process during early 1964. However on May 1 1964 at 4 am, John Kemeny and John McGeachie ran the first BASIC programs to be executed successfully from terminals by the DTSS system. It is not completely clear what the first programs were. However the programs either consisted of the single line:
PRINT 2 + 2
The second version of BASIC only made minimal changes, adding the semicolon operator to the PRINT statement and zero subscripts to arrays.
For the third version, the INPUT statement was introduced along with the powerful MAT statements for matrix manipulation and the RESTORE statement for use with READ/DATA. Development continued with the introduction of text manipulation and variables, also known as string variables, for version 4 and true file handling in version 5. Version 6 saw the introduction of separately compilable procedures with parameters. In 1976, Steve Garland added structured programming features to create Dartmouth SBASIC, a precompiler which produced version 6 output (and which formed the basis of ANSI BASIC ). In 1979 Kemeny and Kurtz released an ANSI BASIC compiler as the seventh and final version of BASIC at Dartmouth before leaving the college to concentrate on the further development of ANSI BASIC in the form of True BASIC.
- Back to Basic: The History, Corruption and Future of the Language, John G. Kemeny, Addison-Wesley Longman Inc, 1985 (ISBN 0201134330)
- BASIC manual: Dartmouth College Computation center, 1964 -- http://www.bitsavers.org/pdf/dartmouth/BASIC_Oct64.pdf
- Listing of the source code for version 2 of the Dartmouth BASIC compiler circa 1965 -- http://www.dtss.org/scans/BASIC/BASIC%20Compiler.pdf
- Scans of original documentation and software.
The contents of this article is licensed from www.wikipedia.org under the GNU Free Documentation License. Click here to see the transparent copy and copyright details