Contents 1 Design 2 Example 3 Implementations 4 See also 5 References 6 Bibliography


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". Christopher Strachey, David Barron and others were involved in its development. (CPL was also nicknamed by some as as "Cambridge Plus London"[2] or "Christopher's Programming Language"). 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. 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,[3] 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; 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:[3] 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. That symbol can be composed in Unicode as "§⃒", which is § (U+00A7, SECTION SIGN) composed with ⃒ (U+20D2, COMBINING LONG VERTICAL LINE OVERLAY), but it may not display correctly on your browser.)


Implementations[edit] It is thought that CPL was never fully implemented in the 1960s,[citation needed] existing as a theoretical construct with some research work on partial implementations. Peter Norvig has written a simple CPL to Python translator for modern machines (http://norvig.com/sciam/cpl.g).


See also[edit] Fundamental Concepts in Programming Languages


References[edit] ^ "The main features of CPL". comjnl.oxfordjournals.org. Retrieved 2015-08-27.  ^ "Clive Feather on CPL and BCPL". Lysator.liu.se. Retrieved 2013-08-18.  ^ a b Peter Norvig. "Prescient but Not Perfect: A Look Back at a 1966 Scientific American Article on Systems Analysis". Blogs.scientificamerican.com. Retrieved 2013-08-18. 


Bibliography[edit] 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). University of London Institute of Computer Science and The Mathematical Laboratory, Cambridge. CPL Working Papers. Retrieved from "https://en.wikipedia.org/w/index.php?title=CPL_(programming_language)&oldid=826389696" Categories: History of computing in the United KingdomProcedural programming languagesProgramming languages created in 1963Structured programming languagesUniversity of Cambridge Computer LaboratoryHidden categories: All articles with unsourced statementsArticles with unsourced statements from February 2018


Navigation menu Personal tools Not logged inTalkContributionsCreate accountLog in Namespaces ArticleTalk Variants Views ReadEditView history More Search Navigation Main pageContentsFeatured contentCurrent eventsRandom articleDonate to WikipediaWikipedia store Interaction HelpAbout WikipediaCommunity portalRecent changesContact page Tools What links hereRelated changesUpload fileSpecial pagesPermanent linkPage informationWikidata itemCite this page Print/export Create a bookDownload as PDFPrintable version Languages ČeštinaDeutschEspañolفارسیFrançais한국어ItalianoMirandés日本語PolskiPortuguêsРусскийSuomiSvenska中文 Edit links This page was last edited on 18 February 2018, at 21:04. Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization. Privacy policy About Wikipedia Disclaimers Contact Wikipedia Developers Cookie statement Mobile view (window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgPageParseReport":{"limitreport":{"cputime":"0.120","walltime":"0.168","ppvisitednodes":{"value":721,"limit":1000000},"ppgeneratednodes":{"value":0,"limit":1500000},"postexpandincludesize":{"value":10174,"limit":2097152},"templateargumentsize":{"value":1156,"limit":2097152},"expansiondepth":{"value":12,"limit":40},"expensivefunctioncount":{"value":3,"limit":500},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 154.727 1 -total"," 36.89% 57.085 1 Template:Reflist"," 36.69% 56.768 1 Template:Infobox_programming_language"," 33.45% 51.751 1 Template:Infobox"," 28.41% 43.960 3 Template:Cite_web"," 24.63% 38.102 1 Template:Citation_needed"," 22.26% 34.447 1 Template:Fix"," 15.05% 23.287 2 Template:Category_handler"," 5.81% 8.994 1 Template:Start_date_and_age"," 5.51% 8.524 1 Template:Delink"]},"scribunto":{"limitreport-timeusage":{"value":"0.053","limit":"10.000"},"limitreport-memusage":{"value":2581024,"limit":52428800}},"cachereport":{"origin":"mw1290","timestamp":"20180218210352","ttl":86400,"transientcontent":true}}});});(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgBackendResponseTime":72,"wgHostname":"mw1266"});});


CPL_(programming_language) - Photos and All Basic Informations

CPL_(programming_language) More Links

Programming ParadigmMulti-paradigm Programming LanguageProcedural ProgrammingImperative Programming LanguageStructured ProgrammingFunctional ProgrammingSoftware DesignChristopher StracheyALGOL 60BCPLPOP-2Multi-paradigm Programming LanguageProgramming LanguageC LanguageBCPLB (programming Language)University Of CambridgeUniversity Of LondonChristopher StracheyDavid W. BarronTitan (computer)Atlas Computer (Manchester)ALGOL 60BCPLSystems ProgrammingCompilerB (programming Language)C (programming Language)Wikipedia:Citation NeededPeter NorvigFundamental Concepts In Programming LanguagesPeter NorvigHelp:CategoryCategory:History Of Computing In The United KingdomCategory:Procedural Programming LanguagesCategory:Programming Languages Created In 1963Category:Structured Programming LanguagesCategory:University Of Cambridge Computer LaboratoryCategory:All Articles With Unsourced StatementsCategory:Articles With Unsourced Statements From February 2018Discussion About Edits From This IP Address [n]A List Of Edits Made From This IP Address [y]View The Content Page [c]Discussion About The Content Page [t]Edit This Page [e]Visit The Main Page [z]Guides To Browsing WikipediaFeatured Content – The Best Of WikipediaFind Background Information On Current EventsLoad A Random Article [x]Guidance On How To Use And Edit WikipediaFind Out About WikipediaAbout The Project, What You Can Do, Where To Find ThingsA List Of Recent Changes In The Wiki [r]List Of All English Wikipedia Pages Containing Links To This Page [j]Recent Changes In Pages Linked From This Page [k]Upload Files [u]A List Of All Special Pages [q]Wikipedia:AboutWikipedia:General Disclaimer



view link view link view link view link view link