Cornell University Programming Language

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Cornell University Programming Language (also called CUPL) is a procedural computer programming language developed at Cornell University in the late 1960s.

CUPL was based on an earlier Cornell-developed programming language, CORC. It was used to teach introductory computer programming classes.

CUPL was developed by R. W. Conway, W. L. Maxwell, G. Blomgren, Howard Elder, H. Morgan, C. Pottle, W. Riddle, and Robert Walker. CUPL had a very simple syntax similar to BASIC and to PL/I. The processor was designed to offer extensive error correction and diagnostic capabilities. This would allow student programs to execute even if they contained minor syntax errors. The compiler also included spelling correction capabilities so that if a variable name is referenced only once, the compiler would assume that it was a misspelling of some other intended name.

CUPL also offered an extensive set of matrix operations and offered dynamic run-time memory allocation. At the time, Cornell's computer was an IBM System 360 Model 40 with only 64K of core memory. CUPL was able to process a large batch of student programs quickly by remaining resident in core memory, but the compiler occupied 58K of memory, leaving only a small amount for the program code and variable storage.[1]

Derivative projects[edit]

Additional computer language projects grew out of CUPL. Most notably, the CUPL compiler was reworked to implement a subset of the PL/I programming language, called PL/C. PL/C retained the diagnostic and error correction features of CUPL. Audio CUPL was an implementation to accept verbal CUPL statements spoken by the programmer. Each programmer trained the system by first speaking a standard set of CUPL vocabulary words for reference.[2] After that what is pl/c

Retrocomputing implementation[edit]

There is an implementation of CUPL and CORC in modern C for Unix-like systems that includes both transcriptions of the original manuals and a chrestomathy of programs in these languages. It is available at the Retrocomputing Museum.


  1. ^ "CUPL - An Approach to Introductory Computing Instruction". Computer Science Technical Reports (68-4). January 1968. p. 19. Retrieved 2013-12-14. 
  2. ^ "On the Feasibility of Voice Input to an On-Line Computer Processing System". Computer Science Technical Reports (69-38). July 1969. hdl:1813/5896. Retrieved 2013-12-14.