ALGOL

programovací jazyk From Wikipedia, the free encyclopedia

Tento článek je o programovacím jazyku. O hvězdě pojednává článek Algol.

ALGOL (zkratka pro ALGOrithmic Language)[1] patří do skupiny imperativních počítačových programovacích jazyků. Byl původně vyvinutý v polovině 50. let 20. století, výrazně ovlivnil mnoho ostatních programovacích jazyků a byl standardní metodou pro popis algoritmů, používaný ACM v učebnicích a akademických pracích na dalších více než 30 let.[2] Uvažujeme-li, že většina současných jazyků je „algol-like“, byl Algol ze čtyř tehdejších vyšších programovacích jazyků (ještě Fortran, Lisp a COBOL) pravděpodobně nejúspěšnější. Byl navržen tak, aby se vyvaroval některých vnímaných problémů ve Fortranu a nakonec pozdvihl mnoho dalších programovacích jazyků, včetně jazyka B, Pascalu a jazyka C.

ALGOL zavedl kód v blocích a párování klíčových slov begin a end pro jejich ohraničení, byl také prvním jazykem, který uměl definovat vnořené funkce (nested function) se statickým rozsahem (lexical scope). Kromě toho to byl první programovací jazyk, který přitáhl pozornost k formálnímu definování jazyka a via Algol 60 Report zavedl Backusovu–Naurovu formu, určující principy zápisu konstrukce jazyka.

Několik verzí

Na tuto kapitolu jsou přesměrována hesla ALGOL 58 a ALGOL 60.

Oficiální názvy verzí ALGOLu jsou odvozené od roku, ve kterém byly prvně publikovány.

tři hlavní specifikace
  • ALGOL 58 – původně navrhovaný název IAL (International Algorithmic Language),
  • ALGOL 60 – první zavedení jako X1 ALGOL 60 v polovině roku 1960 – přepracovaný roku 1963,[3][4]
  • ALGOL 68 – přepracovaný v roce 1973 – zavedl nové prvky jako dynamická pole, řezání, paralelismus, identifikaci operátorů a další rozmanité možnosti rozšíření.

ALGOL W

Na tuto kapitolu je přesměrováno heslo ALGOL W.

Před tím, než prof. Niklaus Wirth vyvinul Pascal, založil svůj ALGOL W na ALGOLu 60. Algol-W (pro IBM S/360) měl být novou generací ALGOLu, ale komise pro ALGOL 68 se raději rozhodla pro design, který byl více komplexní a pokročilý, než čistý a zjednodušený ALGOL 60.

ALGOL 68

Na tuto kapitolu je přesměrováno heslo ALGOL 68.

Algol 68 je podstatně odlišný od Algolu 60, a nebyl dobře přijat, takže obecně „Algolem“ myslíme Algol 60 a jeho odvozeniny. Části ALGOLovité („algol-like“) syntaxe jsou občas stále používány jako pseudokód.

Ukázka kódu

Při zápisu programů v Algolu v knihách je zvykem zvýrazňovat klíčová slova:

procedure Absmax(a) Size:(n, m) Result:(y) Subscripts:(i, k);
    value n, m; array a; integer n, m, i, k; real y;
comment The absolute greatest element of the matrix a, of size n by m
    is transferred to y, and the subscripts of this element to i and k;
begin
    integer p, q;
    y := 0; i := k := 1;
    for p := 1 step 1 until n do
        for q := 1 step 1 until m do
            if abs(a[p, q]) > y then
                begin y := abs(a[p, q]);
                    i := p; k := q
                end
end Absmax

Skutečný způsob zápisu klíčových slov byl závislý na implementaci – v některých implementacích se zapisovala v uvozovkách.

Standard jazyka Algol 60 nedefinuje žádné nástroje pro práci s textovými řetězci ani vstupy a výstupy, proto není možné uvést tradiční příklad programu „Hello world“ ve standardním Algolu. Jedna z implementací používá následující zápis:

BEGIN
  FILE F(KIND=REMOTE);
  EBCDIC ARRAY E[0:11];
  REPLACE E BY "HELLO WORLD!";
  WRITE(F, *, E);
END.

Hello world v ALGOLu 68:

begin
  printf(($gl$,"Hello, world!"))
end

Reference

Literatura

Externí odkazy

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.