Cornell University Programming Language: Difference between revisions

Content deleted Content added
Add pointer to modern implementation.
m top: To cite web add author1-link=Ashlee Vance
 
(18 intermediate revisions by 10 users not shown)
Line 1:
'''Cornell University Programming Language''' (also called '''CUPL''') is a procedural computer
{{primary sources|date=October 2011}}
'''Cornell University Programming Language''' (also called '''CUPL''') is a procedural computer programming language developed at [[Cornell University]] in the late 1960s.<ref name="CUPLonwayMaxwell">{{cite tech report
|last1=Conway
|first1=Richard W.
|authorlink1=Richard W. Conway
|last2=Maxwell
|first2=William L.
|title=CUPL—An approach to introductory computing instructions
|number=68-4
|department=Computer Science
|institution=[[Cornell University]]
|date=January 1968
|url=https://ecommons.cornell.edu/handle/1813/5881
|accessdate=2022-09-15}}</ref>
 
CUPL was based on an earlier Cornell-developed programming language, [[CORC]].
It was used to teach introductory computer programming classes.<ref>{{cite news |newspaper=[[The New York Times]]
|url=https://bits.blogs.nytimes.com/2008/11/18/teaching-everyone-to-speak-big-blue
|title=Teaching Everyone to Speak Big Blue
|quote=- I taught myself Cornell's own student language, CUPL
|author1=Ashlee Vance |author1-link=Ashlee Vance |author2=Jeff Broido |date=November 18, 2008}}</ref>
 
CUPL was developed by [[Richard W. Conway]],<ref name=CUPL.Conway>{{cite web
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.
|url=https://ecommons.cornell.edu/handle/1813/40564?show=full
|title=A Conversation with Richard W. Conway
|author=[[David Gries]]
|date=2015-07-31}}</ref> 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 operationsoperation]]s and offered dynamic run-time memory allocation. At the time, Cornell's computer was an [[IBM System /360 Model 40]] batch processing system with only 64K64&nbsp;KB of [[core memory]]. CUPL was able to process a large batchnumber of student programs quickly by remaining resident in core memory, but the compiler occupied 58K58&nbsp;KB of memory, leaving only a small amount for the program code and variable storage.<ref>{{cite web|urlname=http://ecommons.library.cornell.edu/handle/1813/5881|title=CUPL"CUPLonwayMaxwell" - An Approach to Introductory Computing Instruction|page=19|date=January 1968|publisher=Computer Science Technical Reports (68-4)|accessdate=2013-12-14}}</ref>
 
==Derivative projects==
Additional computer language projects grew out of CUPL. Most notably, theThe 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.<ref>{{cite web|id={{hdl|1813/5896}}|url=http://hdl.handle.net/1813/5896|title=On the Feasibility of Voice Input to an On-Line Computer Processing System|date=July 1969|publisher=Computer Science Technical Reports (69-38)|accessdate = 2013-12-14}}</ref>
 
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.<ref name="HowardElder">{{cite tech report
== Retrocomputing implementation ==
|last1=Elder
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 [http://www.catb.org/retro/ Retrocomputing Museum].
|first1=Howard A.
|title=On the feasibility of voice input to an on-line computer processing system
|number=69-38
|department=Computer Science
|institution=[[Cornell University]]
|date=July 1969
|url=https://ecommons.cornell.edu/handle/1813/5896
|accessdate=2022-09-15}}</ref>
 
== Retrocomputing implementation ==
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.<ref>[http://www.catb.org/retro/ Retrocomputing Museum].</ref>
 
==References==
<references/>
 
==External links==
*[http://www.catb.org/~esr/cupl/ Resource page for cupl 1.6], providing binary and source code and background information about CUPL and CORC.
 
[[Category:Educational programming languages]]
Line 22 ⟶ 61:
[[Category:PL/I programming language family]]
[[Category:Programming languages created in the 1960s]]
 
 
{{compu-lang-stub}}