CPL

multiparadigmatický programovací jazyk

CPL (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.[1] Tento jazyk se nikdy nestal populárním, ale vytvořil základ pro jazyk BCPL.

CPL
Paradigma imperativní (procedurální), strukturovaný, funkcionální
Vznikl v 1960
Ovlivněn jazyky ALGOL
Ovlivnil jazyky BCPL

Popis jazykaEditovat

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é typyEditovat

  • 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říkazyEditovat

Přiřazení: proměnná:=hodnota.

Řídící strukturyEditovat

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).

SeznamyEditovat

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.

FunkceEditovat

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í funkceEditovat

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říkladEditovat

Program Hello World:

Write(‘Hello, World!’)

ReferenceEditovat

  1. progopedia.com [online]. progopedia.com [cit. 2016-06-11]. Dostupné online. (anglicky) 

Externí odkazyEditovat