ALGOL
Artikulu hau itzulpen automatikoaren laguntzaz sortu zen 2012an, OpenMT-2 wikiproiektuaren barnean. Artikulua hobe dezakezu, noski. |
ALGOL | |
---|---|
Jatorria | |
Sorrera-urtea | 1959 |
Ezaugarriak | |
Programazio paradigma | procedural programming (en) , programazio egituratu eta Programazio inperatibo |
Deskribapena | |
Honen eragina jaso du | FORTRAN |
Ekoizpena | |
Diseinatzailea | Friedrich L. Bauer, Hermann Bottenbruch (en) , Heinz Rutishauser (en) , Klaus Samelson, John Backus, Charles Katz (en) , Alan Perlis (en) , Joseph Henry Wegstein (en) , 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
- begin y:= abs(a[p, q]);
- if abs(a[p, q]) > y then
- end Absmax
Algol W
[aldatu | aldatu iturburu kodea]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
[aldatu | aldatu iturburu kodea]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) 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[Betiko hautsitako esteka]. 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
[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