CPL
Author
Albert FloresCPL (Combined Programming Language - kombinovaný programovací jazyk) je multiparadigmatický programovací jazyk vyvinutý Cambridgeskou a Londýnskou univerzitou v roce 1960. Byl ovlivněn jazykem ALGOL. Vzhledem ke složitosti jazyka se první překladač objevil až v roce 1970. Tento jazyk se nikdy nestal populárním, ale vytvořil základ pro jazyk BCPL.
Popis jazyka
CPL podporuje strukturované a funkcionální programování. Program se skládá z definic a příkazů a je uspořádán do bloků, které mohou být vnořené. Blok začíná i končí znakem §.
Datové typy
integer (celé číslo, velikost je nespecifikována) * real (reálné číslo, velikost je nespecifikována) * complex (komplexní číslo, dvojice reálných čísel) * index (celé číslo, které se vejde do B-registrů (indexové registry)) * logical (binární vzor, velikost je nespecifikována) * Boolean (pravdivostní hodnota) * label (návěstí pro skok) * string (sekvence symbolů CPL abecedy) * array (pole, deklaruje se takto: TypPole PocetRozmeru array NazevPole, pro 1 array je zkratka vector a pro 2 array je zkratka matrix) * list (seznam, podobný jako v Lispu)
Příkazy
Přiřazení: proměnná:=hodnota.
Řídící struktury
Podmínka: if logická hodnota then do příkaz (provede se, pokud podmínka platí) nebo unless logická hodnota then do příkaz (provede se, pokud podmínka neplatí) nebo test logická hodnota then do příkaz1 or do příkaz2 (pokud podmínka platí, provede se příkaz1, jinak se provede příkaz2.
Cyklus while-do: while logická hodnota do příkaz (opakuje se, dokud podmínka platí) nebo until logická hodnota do příkaz (opakuje se, dokud podmínka neplatí).
Cyklus do-while: příkaz repeat while logická hodnota (opakuje se, dokud podmínka platí) nebo příkaz repeat while logická hodnota (opakuje se, dokud podmínka neplatí).
Cyklus for: for proměnná=seznam do příkaz (proměnná nabývá postupně všech hodnot v seznamu).
Seznamy
Přiřazení: seznam:=hodnota, například seznam:=1,2,3,4 nebo seznam1:=seznam2.
Přiřazení seznamu do jiných proměnných: proměnná1,proměnná2,... :=seznam například: a,b,c,d:=seznam.
Paralelní přiřazení: proměnná1, proměnná2,... :=hodnota1, hodnota2,....
Výraz step: step s, n, f (vrátí seznam obsahující každé n-té číslo od s do f), používá se často v cyklu for.
Funkce
Výpočet faktoriálu: function Faktorial[x] = result of § real f = 1 until x = 0 do f, x := xf, x - 1 result := f § Funkce nesmí mít žádné vedlejší efekty.
Rekurzivní funkce
Musí být uveden modifikátor rec.
Rekurzivní výpočet faktoriálu: rec function FaktorialRekurzivni[x] = (x = 0) → 1, x*FaktorialRekurzivni[x - 1]
Příklad
Program Hello World: Write(‘Hello, World!’)
Reference
Externí odkazy
[url=http://comjnl.oxfordjournals.org/content/6/2/134.full.pdf+html]Main features of CPL[/url] (anglicky)