DOPE, short for Dartmouth Oversimplified Programming Experiment, was a simple
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
designed by
John Kemény in 1962 to offer students a transition from
flow-charting to programming the
LGP-30
The LGP-30, standing for Librascope General Purpose and then Librascope General Precision, was an early off-the-shelf computer. It was manufactured by the Librascope company of Glendale, California (a division of General Precision Inc.), and s ...
. Lessons learned from implementing DOPE were subsequently applied to the invention and development of
BASIC
BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College ...
.
Description
Each statement was designed to correspond to a flowchart operation and consisted of a numeric line number, an operation, and the required operands:
7 + A B C
10 SIN X Z
The final variable specified the destination for the computation. The above program corresponds in functionality to the later BASIC program:
DOPE might be the first programming language to require every statement to have a
line number, predating
JOSS Joss may refer to:
* Joss (name), including a list of people with the name
* JOSS, a time-sharing programming language
* Joss (Chinese statue), a religious object
* Joss JP1, an Australian-built supercar
* Joss paper, a type of burnt offering
* ...
and BASIC.
The language was case insensitive.
Variable names were a single letter A to Z, or a letter followed by a digit (A0 to Z9). As with
Fortran, different letters represented different variable types. Variables starting with letters A to D were
floating point
In computing, floating-point arithmetic (FP) is arithmetic that represents real numbers approximately, using an integer with a fixed precision, called the significand, scaled by an integer exponent of a fixed base. For example, 12.345 can ...
, as were variables from I to Z; variables E, F, G, and H each were defined as vectors with components from 1 to 16.
The language was used by only one freshman computing class. Kemeny collaborated with high school student Sidney Marshall (taking freshman calculus) to develop the language.
[Kemeny, John G.; Kurtz, Thomas E. (1985). ''Back To BASIC: The History, Corruption, and Future of the Language''. Addison-Wesley Publishing Company, Inc. 141 pp. ]
Legacy
According to
Thomas Kurtz, a co-inventor of BASIC, "Though not a success in itself, DOPE presaged BASIC. DOPE provided default vectors, default printing formats, and general input formats. Line numbers doubled as jump targets."
The language had a number of other features and innovations that were carried over into BASIC:
# Variable names were either a letter or a letter followed by a digit
# Arrays (vectors) did not have to be declared and had a default size (16 instead of 10)
# Every line required a numeric label*
# Lines were sorted in numeric order*
# Every line begin with a keyword*
# Function names were three letters long*
# The only loop construct was a for-loop
Unlike either
Fortran or
Algol 60
ALGOL 60 (short for ''Algorithmic Language 1960'') is a member of the ALGOL family of computer programming languages. It followed on from ALGOL 58 which had introduced code blocks and the begin and end pairs for delimiting them, representing a ...
.
See also
*
DARSIMCO, 'Dartmouth Simplified Code', a 1956 assembler macro language
*
Dartmouth ALGOL 30, a compiler developed by Dartmouth for the LGP-30
References
Programming languages
{{prog-lang-stub