Dartmouth BASIC

Dartmouth BASIC
Paradigm(s) imperative
Appeared in 1964
Designed by John Kemeny, Thomas Kurtz
Influenced by FORTRAN, ALGOL
Influenced Cf. list of BASIC dialects
OS Dartmouth Time Sharing System

Dartmouth BASIC is the original version of the BASIC programming language. It is so named because it was designed and implemented at Dartmouth College. The language was designed by John Kemeny and Thomas Kurtz as part of the Dartmouth Time Sharing System (DTSS) and was one of the first programming languages intended to be used interactively.

Several versions were produced at Dartmouth over the years, all implemented as compilers, unlike many of the versions of the language implemented elsewhere, which were interpreters. The first compiler was produced before the time-sharing system was ready. Known as CardBASIC, it was intended for the standard card-reader based batch processing system. Like all the following versions, it was implemented by a team of undergraduate programmers working under the direction of Kemeny and Kurtz. 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.


Development history

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 a.m. ET, John Kemeny and John McGeachie ran the first BASIC programs to be executed successfully from terminals by the DTSS system.[1] It is not completely clear what the first programs were. However, the programs either consisted of the single line:

PRINT 2 + 2

or were implementations of the Sieve of Eratosthenes, according to a 1974 interview in which Kemeny and McGeachie took part.[citation needed]

The second version of BASIC only made minimal changes, adding the semicolon operator to the PRINT statement and zero subscripts to arrays.[citation needed]

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; this is the version from which most later BASIC dialects descend. 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.[citation needed]

The early versions of BASIC were used and tested by other Dartmouth students working in the College Psychology labs in early 1964.[citation needed] The departments shared several IBM card punch machines that were used to run batch statistical analysis programs.[citation needed]

Students working on NSF grants in both departments lived in the same rural New Hampshire farmhouse during the summer of 1964.[citation needed] They often met to share ideas. A notable contribution of these late night sessions was the GOTO statement. The earliest printed versions of the users' manual were mimeographed (with the typical purple print of Ditto machines of the era) and had a pink cover.

Dr. Kemeny, an immigrant from Hungary and chairman of the Mathematics department at the time, eventually went on to serve with great distinction as president of the college. Mr. McGeachie, an undergraduate at the time, was called "Geach" by his friends and colleagues.[citation needed]

User interface

DTSS implemented an early integrated development environment (IDE): an interactive command line interface. There was no need to log out. If users did not respond, they were logged out after a short delay.

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 due to use of teleprinters as the terminal units for the Dartmouth Timesharing system.

List of commands

  • HELLO — log in to DTSS
  • BASIC — start BASIC mode
  • NEW — name and begin writing a program
  • OLD — retrieve a previously named program from permanent storage
  • LIST — display the current program
  • SAVE — save the current program in permanent storage
  • UNSAVE — clear the current program from permanent storage
  • CATALOG — display the names of programs in permanent storage
  • SCRATCH — erase the current program without clearing its name
  • RENAME — change the name of the current program without erasing it
  • RUN — execute the current programs
  • STOP — interrupt the currently running program

The commands were often believed to be part of the BASIC language by users, but, in fact, were part of the time sharing system and were also used when preparing ALGOL or FORTRAN programs via the DTSS terminals.


The first interactive version implemented the following statement types, taking some of its operators and keywords from FORTRAN II and some from ALGOL 60.

List of BASIC statements

  • DEF — define single line functions
  • DIM — (short for dimension) define the size of arrays
  • END — define the end of the program
  • STOP — stop a program before the textual end
  • FOR / TO / STEP — define loops
  • NEXT — mark the end of loops
  • GOSUB — transfer control to simple subroutines
  • RETURN — return control from simple subroutines
  • GOTO — transfer control to another statement
  • IF / THEN — decision making
  • LET / = — assign formula results to a variable
  • PRINT — output results
  • DATA — store static data within the program
  • READ — input data stored in DATA statements
  • REM — comment

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.

List of operators

Arithmetic operators Relational/logical operators
- Negation (unary op.) = Equal To
+ Addition <> Not Equal To
- Subtraction (binary op.) < Less Than
* Multiplication <= Less Than or Equal To
/ Division > Greater Than
^ Exponentiation => Greater Than or Equal To
Grouping operator
( ) Grouping

List of functions

  • ABS -- Absolute value
  • ATN -- Arctangent value (result in radians)
  • COS -- Cosine value (argument in radians)
  • EXP -- Exponential value
  • INT -- Integer value
  • LOG -- Natural Logarithmic value
  • RND -- Random value
  • SIN -- Sine value (argument in radians)
  • SQR -- Square root value
  • TAN -- Tangent value (argument in radians)


  1. ^ Author unknown (2007-08-08). Dartmouth Time Sharing System (DTSS) timeline (archived 2007). "Portions reprinted without permission from the Dartmouth Alumni Magazine, March 1995." Retrieved from http://web.archive.org/web/20070808230138/http://www.dtss.org/timeline.php.


  • Kemeny, John G. & Kurtz, Thomas E. (1985). Back to BASIC: The History, Corruption and Future of the Language. Addison-Wesley Publishing Company, Inc. ISBN 0-201-13433-0.
  • BASIC version 2 manual. Dartmouth College Computation center, 1964. (PDF)
  • BASIC version 4 manual. Dartmouth College Computation center, 1968. (PDF)
  • Kurtz, Thomas E. (Date unknown but probably 1977). BASIC

External links

Wikimedia Foundation. 2010.

Look at other dictionaries:

  • BASIC — Información general Paradigma estructurado imperativo Apareció en 1964 Diseñado por John George Kemeny; Thomas Eugene Kurtz …   Wikipedia Español

  • Dartmouth Time Sharing System — Company / developer Dartmouth College Working state Historic Available programming languages(s) Dartmouth BASIC, ALGOL 60, FORTRAN, COBOL, APL, DXPL, DYNAMO, GMAP, LISP, MIX, PL/I, SNOBOL …   Wikipedia

  • Basic (langage) — BASIC Pour les articles homonymes, voir Basic. {{{image}}}   Sigles d une seule lettre   Sigles de deux lettres   Sigles de trois lettres …   Wikipédia en Français

  • Dartmouth College — Latin: Collegium Dartmuthensis Motto Vox clamantis in deserto Motto in English The voice of one cryi …   Wikipedia

  • BASIC — Класс языка: алгоритмическое, процедурное, объектное программирование Появился в: 1963 г. Расширение файлов: .bas Типизация данных: нестрогая Бейсик (от BASIC, сокращение от англ.  …   Википедия

  • BASIC-256 — с …   Википедия

  • BASIC — This article is about the programming language. For the think tank, see British American Security Information Council. For the group of countries, see BASIC countries. For other uses, see Basic (disambiguation). BASIC Screenshot of Atari BASIC,… …   Wikipedia

  • BASIC — Pour les articles homonymes, voir Basic.   Sigles d’une seule lettre   Sigles de deux lettres   Sigles de trois lettres   Sigles de quatre lettres > Sigles de cinq lettres …   Wikipédia en Français

  • Dartmouth Medical School — Established November 22, 1797 Type Private medical school Dean …   Wikipedia

  • BASIC — Ausschnitt aus einem BASIC Listing BASIC ist eine der am weitesten verbreiteten imperativen Programmiersprachen. Sie wurde 1964 von John George Kemeny und Thomas Eugene Kurtz am Dartmouth College entwickelt und verfügte in ihrer damaligen Form… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.