DOPE (Dartmouth Oversimplified Programming Experiment) | |
Paradigms: | procedural |
Designers: | John G. Kemeny |
Developer: | Sidney Marshall |
Programming Language: | Assembly |
Discontinued: | Yes |
Platform: | LGP-30 |
File Formats: | --> |
Influenced By: | DARSIMCO, DART, Dartmouth ALGOL 30, Fortran |
Influenced: | Dartmouth BASIC |
DOPE, short for Dartmouth Oversimplified Programming Experiment, was a simple programming language designed by John Kemény in 1962 to offer students a transition from flow-charting to programming the LGP-30. Lessons learned from implementing DOPE were subsequently applied to the invention and development of BASIC.[1]
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 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, as were variables from I to Z; variables E, F, G, and H each were defined as vectors with components from 1 to 16.
Operation | Function | Number of operands | |
---|---|---|---|
A | Ask (prompt for input) | 2 | |
C | 4 | ||
E | End loop | (Unknown) | |
J | Input into variable | 1 | |
N | Print a newline | (Unknown) | |
P | Print a variable | 1 | |
T | Jump | 1 | |
Z | For loop | (Unknown) | |
+ | Addition | 3 | |
- | Subtraction | 3 | |
Multiplication | 3 | ||
/ | Division | 3 | |
EXP | E to the power | 2 | |
LOG | 2 | ||
SIN | 2 | ||
SQR | 2 |
The language was used by only one freshman computing class.[2] Kemeny collaborated with high school student Sidney Marshall (taking freshman calculus) to develop the language.[3] [4]
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:
Unlike either Fortran or Algol 60.