Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
Dartmouth Oversimplified Programming Experiment
Programming language

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.

We don't have any images related to Dartmouth Oversimplified Programming Experiment yet.
We don't have any YouTube videos related to Dartmouth Oversimplified Programming Experiment yet.
We don't have any PDF documents related to Dartmouth Oversimplified Programming Experiment yet.
We don't have any Books related to Dartmouth Oversimplified Programming Experiment yet.
We don't have any archived web articles related to Dartmouth Oversimplified Programming Experiment yet.

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:

7 LET C=A+B 10 LET Z=SIN(X)

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.

Caption text
OperationFunctionNumber of operands
AAsk (prompt for input)2
CArithmetic IF4
EEnd loopUn­known
JInput into variable1
NPrint a newlineUn­known
PPrint a variable1
TJump1
ZFor loopUn­known
+Addition3
-Subtraction3
*Multiplication3
/Division3
EXPE to the power2
LOGLogarithm2
SINSine2
SQRSquare root2

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.34

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:

  1. Variable names were either a letter or a letter followed by a digit
  2. Arrays (vectors) did not have to be declared and had a default size (16 instead of 10)
  3. Every line required a numeric label*
  4. Lines were sorted in numeric order*
  5. Every line begins with a keyword*
  6. Function names were three letters long*
  7. The only loop construct was a for-loop

*Unlike either Fortran or Algol 60.

See also

  • DARSIMCO, 'Dartmouth Simplified Code', a 1956 assembler macro language
  • Dartmouth ALGOL 30, a compiler developed by Dartmouth for the LGP-30

References

  1. Kurtz, Thomas (1981). "BASIC". History of programming languages. History of programming languages I. ACM. pp. 517-518 517–518. doi:10.1145/800025.1198404. ISBN 0-12-745040-8. 0-12-745040-8

  2. Williams, Michael (November 1, 1985). A History of Computing Technology (1st ed.). Prentice-Hall. p. 432. ISBN 0133899179. 0133899179

  3. Application to the National Science Foundation, Kurtz, Rieser, and Meck, cited in Rankin, pages 20-21

  4. 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. ISBN 0-201-13433-0 /wiki/ISBN_(identifier)