# ALGOL

ALGOL deitzen zaio (edo Algol) Programazio-lengoaia bati. Hitza ingelesezko Algorithmic Language hitzen (lengoaia algoritmikoa) akronimoa da.
Oso popularra izan zen unibertsitateetan 60ko hamarkadan, baina ez zen gauzatu gero erabilera komertzialerako lengoaia gisa.
Hala ere, geroago asko zabaldu ziren zenbait lengoaiatan Algolek eragin sakona izan zuen, adibidez, Pascal, C eta Ada.
1965ean bi korronte bereizi ziren Algol lengoaiaren bilakaeran. Emaitza gisa bi lengoaia berri definitu ziren: Algol W lengoaia minimalista, azkar inplementatua eta zabaldua, eta bestaldetik, Algol 68, garai hartan programatzeko lengoaien eta lengoaia ikergaien arteko mugan kokatzen zena.

## Programa adibide bat Algol 60 lengoaian

    procedure Absmax("a") Dimentsioak:(n, m) Emaitza:( y) Azpindizeak:( i, k);
       value n, m; array a; integer n, m, i, k ; real y;
    comment Matrizetik balio absolutu handiagoa duen elementua hartzen da eta y-n sartzen da. Elementuaren azpindizeak i eta k-an jartzen dira;
    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

## Algol W

Niklaus Wirth-ek eta Tony Hoare-k diseinatu eta inplementatutako lengoaia da, IFIP-eko ALGOL taldearen lanetan oinarrituta. Lengoaia laburra da, inplementatzeko erraza, Algol lengoaiaren akats ezagun guztiak saihesten ditu eta haren bere ezaugarri gehigarriak sartzen ditu. Hala ere, Algol taldeak ez zuen hartu Algolen ondorengo gisa eta horetan nahiago izan zuten Algol 68. Erabiltzaile kopuru handiek erabili zuten Algol W eta Pascal lengaiaren jaiotzarako bidea prestatu zuen.
Hizkuntzaren ezaugarrien artean azpimarratzekoak dira: doitasun bikoitzaren aritmetika, zenbaki konplexuak, string-ak eta datu-egitura dinamikoak, balioaren araberako ebaluazioa, baita balioren, emaitzaren edo balio-emaitzaren araberako parametroen transferentzia ere.

## Algol 68

Hizkuntzaren definizioa IFIPeko ALGOL komitearen 1965eko bileran aurkeztu zen. Diseinua berraztertzen hainbat urte pasa eta gero, behin betiko bertsio batera iritsi zen 1968an. Adriaan van Wijngaarden da egile nagusia.
ALGOL 68 lengoaiaren helburu nagusiak honakoak dira: algoritmoen arteko komunikazioa baimentzea, algoritmoen exekuzio eraginkorra lortzea arkitektura diferenteetan eta irakaskuntzarako tresna izatea.
ALGOL 68 lengoaiaren ezaugarri interesgarri bat da bere semantika bi mailatako gramatikak formalismoaren arabera formalki definitu zutela inplementatu baino lehen.

### Programa adibidea Algol 68 lengoaian

| Algol68 liburuen edizioa int sum sq:=0; for i while sum sq≤1000 do sum sq+:=i↑2 od | Kodea 7-bit/ascii konpiladorearentzat INT sum sq:=0; FOR i WHILE sum sq<=1000 DO sum sq+:=i**2 OD | Kodea 6-bits/byte konpiladorearentzat .INT SUM SQ:=0; .FOR I .WHILE SUM SQ.LE 1000 .DO SUM SQ.PLUSAB I.UP 2 .OD |

## Kanpo estekak

* (Ingelesez) Grafiko luze bat programazio-lengoaien bilakaerarekin.
* (Ingelesez)Revised Report on the Algorithmic Language Algol 60.
* (Ingelesez) Algol 68 Genie - a GNU GPL Algol 68 interpreter.
* (Ingelesez)Orthogonal design and description of a formal language Adriaan Van Wijngarden.
* (Ingelesez)Historic Documents in Computer Science Karl Kleine.
* Programen egiaztapena eta eratorpena. Xabier Arregi Iparragirre, Paqui Lucio Carrasco, Arantza Diaz de Illarraza Sanchez. UEU 1993.
* Ada lengoaia eta metodologia. Watt D., Wichmann B. eta Findlay W. UPV-EHU 1993.

## Bibliografia

* (Ingelesez) A contribution to the development of ALGOL, Niklaus Wirth and C. A. R. Hoare, Comm ACM 9(6), 413-432 (1966), ISSN:0001-0782
* (Ingelesez) The Emperor's Old Clothes - the ACM Turing Award lecture by Tony Hoare, 1980, Comm ACM 24(2), 75-83 (1981)
* (Ingelesez) ALGOL W Implementation, H. Bauer et al, TR CS98, Stanford U, 1968