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 
 proc absmax = ([,]real a, ref real y, ref int i, k)real:
 comment Matrizetik balio absolutu handiagoa duen elementua hartzen da  eta y-n sartzen da x       
   Elementuaren azpindizeak i eta k-an jartzen dira; comment
 begin
    real y := 0; i := ⌊a; k := 2⌊a;
    for p from ⌊a to ⌈a do
      for q from 2⌊a to 2⌈a do
        if abs a[p, q] > y then
            y := abs a[p, q];
            i := p; k := q
        fi
      od
    od;
    y
 end # absmax #

 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 
  Grafiko luze bat programazio-lengoaien bilakaerarekin.
 Revised Report on the Algorithmic Language Algol 60.
  Algol 68 Genie - a GNU GPL Algol 68 interpreter.
 Orthogonal design and description of a formal language Adriaan Van Wijngarden.
 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 
  A contribution to the development of ALGOL, Niklaus Wirth and C. A. R. Hoare, Comm ACM 9(6), 413-432 (1966), ISSN:0001-0782
  The Emperor's Old Clothes - the ACM Turing Award lecture by Tony Hoare, 1980, Comm ACM 24(2), 75-83 (1981)
  ALGOL W Implementation, H. Bauer et al, TR CS98, Stanford U, 1968

Kategoria:Informatika
Kategoria:Lengoaia konpilatuak
Kategoria:Informatikako akronimoak
Kategoria:Softwarearen historia
Kategoria:Programazio lengoaiak
Kategoria:Informatikako akronimoak