Edukira joan

ALGOL

Wikipedia, Entziklopedia askea
 ALGOL
Jatorria
Sorrera-urtea1959
Ezaugarriak
Programazio paradigmaprocedural programming (en) Itzuli, programazio egituratu eta Programazio inperatibo
Deskribapena
Honen eragina jaso duFORTRAN
Ekoizpena
DiseinatzaileaFriedrich L. Bauer, Hermann Bottenbruch (en) Itzuli, Heinz Rutishauser (en) Itzuli, Klaus Samelson, John Backus, Charles Katz (en) Itzuli, Alan Perlis (en) Itzuli, Joseph Henry Wegstein (en) Itzuli, Peter Naur, Bernard Vauquois, Adriaan van Wijngaarden, Julien Green eta John McCarthy

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

[aldatu | aldatu iturburu kodea]
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

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.

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

[aldatu | aldatu iturburu kodea]
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

[aldatu | aldatu iturburu kodea]
  • (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