fbpx
Wikipedia

CPL (programming language)

CPL (Combined Programming Language) is a multi-paradigm programming language developed in the early 1960s. It is an early ancestor of the C language via the BCPL and B languages.

CPL
ParadigmMulti-paradigm: procedural, imperative, structured, functional
Designed byChristopher Strachey et al.
First appeared1963; 61 years ago (1963)
Influenced by
ALGOL 60
Influenced
BCPL

Design edit

CPL[1] was developed initially at the Mathematical Laboratory at the University of Cambridge as the "Cambridge Programming Language" and later published jointly between Cambridge and the University of London Computer Unit as the "Combined Programming Language" (CPL was also nicknamed by some as "Cambridge Plus London"[2] or "Christopher's Programming Language"[3]). Christopher Strachey, David Barron and others were involved in its development. The first paper describing it was published in 1963, while it was being implemented on the Titan Computer at Cambridge and the Atlas Computer at London.

It was heavily influenced by ALGOL 60, but instead of being extremely small, elegant and simple, CPL was intended for a wider application area than scientific calculations and was therefore much more complex and not as elegant as ALGOL 60. CPL was a big language for its time. CPL attempted to go beyond ALGOL to include industrial process control, business data processing and possibly some early command line games.[4] CPL was intended to allow low-level programming and high level abstractions using the same language.

However, CPL was only implemented very slowly. The first CPL compiler was probably written about 1970,[5] but the language never gained much popularity and seems to have disappeared without trace sometime in the 1970s.

BCPL (for "Basic CPL", although originally "Bootstrap CPL") was a much simpler language based on CPL intended primarily as a systems programming language, particularly for writing compilers;[6] it was first implemented in 1967, prior to CPL's first implementation. BCPL then led, via B, to the popular and influential C programming language.

Example edit

The function MAX as formulated by Peter Norvig:[5]

Max(Items, ValueFunction) = value of § (Best, BestVal) = (NIL, -∞) while Items do § (Item, Val) = (Head(Items), ValueFunction(Head(Items))) if Val > BestVal then (Best, BestVal) := (Item, Val) Items := Rest(Items) §⃒ result is Best §⃒ 

(The closing symbol to match the opening symbol "§" is a "§" with a vertical stroke through it. In Unicode, "§⃒", but that does not display correctly on many systems.)

Implementations edit

It is thought that CPL was never fully implemented in the 1960s, existing as a theoretical construct with some research work on partial implementations.[7][8]

Peter Norvig has written (for Yapps, a Python compiler-compiler) a simple CPL to Python translator for modern machines.[5][9]

See also edit

References edit

  1. ^ Barron, D. W.; Buxton, J. N.; Hartley, D. F.; Nixon, E.; Strachey, C. (1 August 1963). "The Main Features of CPL". The Computer Journal. 6 (2): 134–143. doi:10.1093/comjnl/6.2.134. ISSN 0010-4620.
  2. ^ "Clive Feather on CPL and BCPL". Lysator.liu.se. Retrieved 18 August 2013.
  3. ^ Jensen, Richard (9 December 2020). ""A damn stupid thing to do"—the origins of C". Ars Technica. Retrieved 10 December 2020.
  4. ^ Yadav, P. (2005). Computer and Languages. Discovery Publishing House. ISBN 978-81-8356-041-2.
  5. ^ a b c Norvig, Peter (23 August 2011). "Prescient but Not Perfect: A Look Back at a 1966 Scientific American Article on Systems Analysis". Scientific American Blog Network. Retrieved 10 December 2020.
  6. ^ Mitchell, John C.; Apt, Krzysztof (2003). Concepts in Programming Languages. Cambridge University Press. ISBN 978-0-521-78098-8.
  7. ^ Coulouris, G. F. (1 January 1968). "The London CPL1 compiler". The Computer Journal. 11: 26–30. doi:10.1093/comjnl/11.1.26.
  8. ^ Coulouris, George (2013). "Computer Resurrection Issue 62 / The Compiler Compiler - Reflections of a User 50 Years On / The CPL1 Compiler". Computer Conservation Society. Retrieved 3 May 2023.
  9. ^ Norvig, Peter. "Complete Annotated Checkers Program". norvig.com. Retrieved 11 June 2021.

Bibliography edit

  • How BCPL evolved from CPL, Martin Richards, 2011 [1]
  • Collected papers of Christopher Strachey, section pertaining to CPL, archived at the Bodleian Library, Oxford; CSAC 71.1.80/C.136-C.184
  • D. W. Barron, J. N. Buxton, D. F. Hartley, E. Nixon, and C. Strachey. "The main features of CPL" The Computer Journal 6:2:134-143 (1963), available online.
  • J. Buxton, J. C. Gray, and D. Park. CPL Elementary Programming Manual, Edition II (Cambridge) (1966).
  • University of London Institute of Computer Science and The Mathematical Laboratory, Cambridge. CPL Working Papers (1966).

programming, language, combined, programming, language, multi, paradigm, programming, language, developed, early, 1960s, early, ancestor, language, bcpl, languages, cplparadigmmulti, paradigm, procedural, imperative, structured, functionaldesigned, bychristoph. CPL Combined Programming Language is a multi paradigm programming language developed in the early 1960s It is an early ancestor of the C language via the BCPL and B languages CPLParadigmMulti paradigm procedural imperative structured functionalDesigned byChristopher Strachey et al First appeared1963 61 years ago 1963 Influenced byALGOL 60InfluencedBCPL Contents 1 Design 2 Example 3 Implementations 4 See also 5 References 6 BibliographyDesign editCPL 1 was developed initially at the Mathematical Laboratory at the University of Cambridge as the Cambridge Programming Language and later published jointly between Cambridge and the University of London Computer Unit as the Combined Programming Language CPL was also nicknamed by some as Cambridge Plus London 2 or Christopher s Programming Language 3 Christopher Strachey David Barron and others were involved in its development The first paper describing it was published in 1963 while it was being implemented on the Titan Computer at Cambridge and the Atlas Computer at London It was heavily influenced by ALGOL 60 but instead of being extremely small elegant and simple CPL was intended for a wider application area than scientific calculations and was therefore much more complex and not as elegant as ALGOL 60 CPL was a big language for its time CPL attempted to go beyond ALGOL to include industrial process control business data processing and possibly some early command line games 4 CPL was intended to allow low level programming and high level abstractions using the same language However CPL was only implemented very slowly The first CPL compiler was probably written about 1970 5 but the language never gained much popularity and seems to have disappeared without trace sometime in the 1970s BCPL for Basic CPL although originally Bootstrap CPL was a much simpler language based on CPL intended primarily as a systems programming language particularly for writing compilers 6 it was first implemented in 1967 prior to CPL s first implementation BCPL then led via B to the popular and influential C programming language Example editThe function MAX as formulated by Peter Norvig 5 Max Items ValueFunction value of Best BestVal NIL while Items do Item Val Head Items ValueFunction Head Items if Val gt BestVal then Best BestVal Item Val Items Rest Items result is Best The closing symbol to match the opening symbol is a with a vertical stroke through it In Unicode but that does not display correctly on many systems Implementations editIt is thought that CPL was never fully implemented in the 1960s existing as a theoretical construct with some research work on partial implementations 7 8 Peter Norvig has written for Yapps a Python compiler compiler a simple CPL to Python translator for modern machines 5 9 See also editFundamental Concepts in Programming LanguagesReferences edit Barron D W Buxton J N Hartley D F Nixon E Strachey C 1 August 1963 The Main Features of CPL The Computer Journal 6 2 134 143 doi 10 1093 comjnl 6 2 134 ISSN 0010 4620 Clive Feather on CPL and BCPL Lysator liu se Retrieved 18 August 2013 Jensen Richard 9 December 2020 A damn stupid thing to do the origins of C Ars Technica Retrieved 10 December 2020 Yadav P 2005 Computer and Languages Discovery Publishing House ISBN 978 81 8356 041 2 a b c Norvig Peter 23 August 2011 Prescient but Not Perfect A Look Back at a 1966 Scientific American Article on Systems Analysis Scientific American Blog Network Retrieved 10 December 2020 Mitchell John C Apt Krzysztof 2003 Concepts in Programming Languages Cambridge University Press ISBN 978 0 521 78098 8 Coulouris G F 1 January 1968 The London CPL1 compiler The Computer Journal 11 26 30 doi 10 1093 comjnl 11 1 26 Coulouris George 2013 Computer Resurrection Issue 62 The Compiler Compiler Reflections of a User 50 Years On The CPL1 Compiler Computer Conservation Society Retrieved 3 May 2023 Norvig Peter Complete Annotated Checkers Program norvig com Retrieved 11 June 2021 Bibliography editHow BCPL evolved from CPL Martin Richards 2011 1 Collected papers of Christopher Strachey section pertaining to CPL archived at the Bodleian Library Oxford CSAC 71 1 80 C 136 C 184 D W Barron J N Buxton D F Hartley E Nixon and C Strachey The main features of CPL The Computer Journal 6 2 134 143 1963 available online J Buxton J C Gray and D Park CPL Elementary Programming Manual Edition II Cambridge 1966 University of London Institute of Computer Science and The Mathematical Laboratory Cambridge CPL Working Papers 1966 Retrieved from https en wikipedia org w index php title CPL programming language amp oldid 1160894502, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.