CPL (programovací jazyk) - CPL (programming language)
Paradigma | Multi-paradigma : procedurální , imperativní , strukturované , funkční |
---|---|
Navrhl | Christopher Strachey a kol. |
Poprvé se objevil | 1963 |
Ovlivněno | |
ALGOL 60 | |
Ovlivněno | |
BCPL , POP-2 |
CPL ( Combined Programming Language ) je programový jazyk s více paradigmaty , který byl vyvinut na počátku 60. let. Je časný předchůdce jazyka C přes BCPL a B jazyky.
Design
CPL byl původně vyvinut v Mathematical Laboratory na University of Cambridge jako „Cambridge Programming Language“ a později publikován společně mezi Cambridge a Computer Unit University of London jako „Combined Programming Language“. Na jeho vývoji se podíleli Christopher Strachey , David Barron a další. (CPL někteří také přezdívali jako „Cambridge Plus London“ nebo „Christopher's Programming Language“). První dokument popisující jeho vydání byl publikován v roce 1963, zatímco byl implementován na počítači Titan v Cambridge a Atlas Computer v Londýně.
Byl silně ovlivněn programem ALGOL 60 , ale místo toho, aby byl extrémně malý, elegantní a jednoduchý, byl CPL určen pro širší oblast použití než vědecké výpočty, a byl proto mnohem složitější a ne tak elegantní jako ALGOL 60. CPL byl velký jazyk pro je čas. CPL se pokusila jít nad rámec ALGOL a zahrnout řízení průmyslových procesů, zpracování obchodních dat a možná i některé hry z raného příkazového řádku. Cílem CPL bylo umožnit programování na nízké úrovni a abstrakce na vysoké úrovni ve stejném jazyce.
CPL však bylo implementováno jen velmi pomalu. První překladač CPL byl pravděpodobně napsán kolem roku 1970, ale jazyk si nikdy nezískal velkou popularitu a zdá se, že zmizel beze stopy někdy v 70. letech.
BCPL (pro „Basic CPL“, i když původně „Bootstrap CPL“) byl mnohem jednodušší jazyk založený na CPL, určený především jako programovací jazyk systémů , zejména pro psaní překladačů ; poprvé byla implementována v roce 1967, před první implementací CPL. BCPL pak vedl přes B , na populární a vlivné C programovací jazyk .
Příklad
Funkce MAX formulovaná Peterem Norvigem:
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 §⃒
(Uzavírací symbol, který odpovídá úvodnímu symbolu „§“, je „§“ se svislým tahem. V Unicode „§⃒“, ale to se na mnoha systémech nezobrazuje správně.)
Implementace
Předpokládá se, že CPL nebyl nikdy plně implementován v šedesátých letech, existoval jako teoretický konstrukt s některými výzkumnými pracemi na částečných implementacích.
Peter Norvig napsal (pro Yapps, kompilátor-kompilátor Pythonu ) jednoduchý překladač CPL do Pythonu pro moderní stroje.
Viz také
Reference
Bibliografie
- Shromážděné dokumenty Christophera Stracheye, část týkající se CPL, archivovány v Bodleianově knihovně v Oxfordu; CSAC 71.1.80 / C.136-C.184
- D. W. Barron, J. N. Buxton, D. F. Hartley, E. Nixon a C. Strachey. „Hlavní rysy CPL“ The Computer Journal 6 : 2: 134-143 (1963), k dispozici online .
- J. Buxton, J. C. Gray a D. Park. Příručka pro základní programování CPL, vydání II (Cambridge) .
- University of London Institute of Computer Science and The Mathematical Laboratory, Cambridge. Pracovní dokumenty CPL .