Algolo-60

programlingvo de algola familio

Algolo 60Algolo-60[1] estas programlingvo, la plej grava ano de la programlingva familio «Algolo».

Fakte, la siglo ALGOL (ALGOritma Lingvo) kaj la prezento de la lingvo en ĝia difina dokumento[2] emfazas la ideon ke Algolo estas ne programada lingvo (= programlingvo, lingvo por priprogrami komputilojn), sed algoritma lingvo, lingvo por interŝanĝi kaj publikigi algoritmojn inter la homoj.

Historio

redakti

Algolo estis la unua lingvo internacie projektita, kaj la nomo de ĝia unue publikigita skizo, IAL, Internacia Algebra[3] Lingvo (retrospektive ankaŭ konata kiel «Algolo 58»), sonas aparte kortuŝe por la adeptoj de la «Lingvo Internacia». La laboro okazis en la jaroj 1958–1963 sub la aŭspicioj de

Inter la aŭtoroj aparte menciendas

  • John W. Backus, J. Green, C. Katz, John McCarthy, Alan J. Perlis, J. H. Wegstein el Usono;
  • Friedrich L. Bauer, Peter Naur, Heinz Rutishauser, Klaus Samelson, B. Vauquois, Adriaan van Wijngaarden, Michael Woodger el Eŭropo.

La numeralo «60» aludas la decidan konferencon:

Konferenco en januaro 1960 La 13 delegitoj el Anglujo. Francujo, Germanujo, Holando, Svisujo kaj Usono en Parizo de 11 ĝis 16 Januaro 1960. Antaŭ la konferenco Peter Naur verkis tute novan proponon de raporto sin gvidante per la Prova raporto kaj la rekomendoj de la preparaj renkontiĝoj. La Pariza konferenco akceptis tiun novan formon kiel bazon por sia definitiva raporto kaj procedis al la ekzameno de ĉiu parto de la raporto. Ĉi tiu raporto estas la kunaĵo de ideoj de la komitatanoj kaj la komunaĵo de iliaj akordoj.

La Raporton akceptitan dum ĉi tiu konferenco poste reviziis la aprila (1962) konferenco en Romo. Rezultis la «Reviziita Raporto», kiu iĝis la definitiva dokumento pri Algolo 60 por la periodo de ĝia plej aktiva uzado. Ĝi estas disponebla en Esperanto en traduko de Sergio Pokrovskij.[4]

La tri niveloj de Algolo

redakti

Fine de la jaroj 1950-aj mankis normoj kiuj ebligus aparatan datumkomunikadon. Diversaj firmaoj aŭ kaj diversaj landoj uzis siajn, inter si nekongruajn, normojn. Nocio bajto ekzistis nur en kelkaj sistemoj, kaj pri ĝia longo oni hezitis (8 bitoj ŝajnis tro malŝpare). Unua publikigo de Askio okazis en 1962 (do, post Algolo), kaj ĝi diferencis de la nuna. En tiu tempo Fortran II povis esti kompleta lingvo nur kiel firmaa lingvo de IBM, ĝi ankoraŭ estis komputil-dependa lingvo. La universala interfaco inter diverstipaj komputaj sistemoj tiam povis esti nur nomo.

Algolo devis esti sendependa je firmaoj kaj landoj; tial jam en IAL oni lasis certajn aferojn al la bontrovo de la konstruantoj de tradukiloj, laŭ la tradicioj landaj, tipografiaj, aparataj. Samkiel en IAL, en Algolo 60 oni distingas tri malsamajn nivelojn, nome la referencan lingvon, la porpublikigan lingvon kaj diversajn maŝinajn prezentojn. Iliaj ĉi-subaj difinoj estas prenitaj el la Reviziita Raporto:

Referenca lingvo

redakti
  1. Ĝi estas la labora lingvo de la Komitato [prizorganta Algolon].
  2. Ĝi estas la difina lingvo.
  3. Ĝiaj signoj estas elektitaj por plifaciligi interkomprenon, sendepende de la komputilaj limigoj aŭ simbolaroj uzataj de programistoj aŭ en pura matematiko.
  4. Ĝi estas la ĉefa referenco kaj gvidilo por la konstruantoj de tradukiloj.
  5. Ĝi estas la gvidilo por ĉiuj maŝinaj prezentoj.
  6. Ĝi estas la gvidilo por la aliliterigo el referenca lingvo en ĉiun lokan maŝinan prezenton.
  7. La ĉefaj publikaĵoj pri la lingvo mem uzos la referencan prezenton.

Porpublikiga lingvo

redakti
  1. La porpublikiga lingvo aperas kiel variaĵo de la referenca lingvo, konforma al kutimoj de presado kaj matematika manskribado (ekz. subliniaj indicoj, spacetoj, eksponentoj, grekaj literoj).
  2. Ĝi estas uzata por formulado kaj komunikado.
  3. La signoj uzataj en diversaj landoj povas diferenci, tamen oni devas garantii unusignifan interrespondon kun la referenca prezento.

Tuj post la publikigo de Algolo la Usona revo Communications of the ACM adoptis ĝin kiel la lingvon por publikigi algoritmon. Tiun monopolon Algolo tenis ĝis 1966, kiam ankaŭ aliaj lingvoj iĝis akceptitaj.

Maŝinaj prezentoj

redakti
  1. Ĉiu el ili estas variaĵo de la referenca lingvo, reduktita konforme al la aro da signoj de la disponebla enigilo.
  2. Ĉiu el ili uzas la signaron de aparta komputilo kaj estas la lingvo akceptata de tradukilo por tiu komputilo.
  3. Ĉiu el ili devas esti garnita per speciala aro da reguloj por traduki el la porpublikiga aŭ referenca lingvo.

Fakte la sekcio 2.1 de la Reviziita Raporto permesas ne nur redukti la signaron, sed ankaŭ ĝin pliriĉigi.

Naciaj versioj

redakti

Nuntempe oni povas facile komuniki algoritmojn elektronike, sur la normigitaj datumportiloj aŭ per la Interreto. Tamen la porpublikigaj tradicioj de Algolo plu vivas en diversaj pseŭdokodoj, interalie tiuj uzataj por instrui programadon. En tiaj pseŭdokodoj oni ĉiam (aŭ preskaŭ ĉiam) plu uzas la tradicion de la porpublikiga varianto de Algolo (kaj apenaŭ oni uzas tiucele la tradicion de Kobolo, lingvo unu el kies celoj estis ebligi al la estroj facile legi kaj kompreni la programojn de siaj programistoj).

Tiaj pseŭdokodoj kutime uzas nacian leksikon en siaj ŝlosilvortoj; vd la ekzemplojn pri pseŭdokodo en la Vikipedio ĉeĥapola. Tamen historie ekzistis ankaŭ nacilingvaj tradukiloj, ekz‑e en Francio kaj Sovetio.

B. Vauquois skribis enkonduke (p. 9) al franca lernolibro pri Algolo 60[5]:

La originala versio de Algolo 60 uzas 24 simbolojn prenitajn el la angla lingvo; ni opinias, ke disvastigon de Algolo en la landoj franclingvaj faciligos uzo de ekvivalentaj formoj francaj. La maloportunoj de vort-al-vorta anstataŭigo ja estas bagatelaj (cetere, plimulto da tradukiloj konstruitaj en Francio egale akceptas ambaŭ lingvojn).

Ĉi-suba tabelo donas tradukojn de la ŝlosilvortoj algolaj en Esperanton (laŭ la menciita traduko[4]) kaj en la lingvojn francan (pp. 10, 88 de la ĵus citita lernolibro[5]) kaj rusan (laŭ la resuma propono de A.P. Erŝov[6]. La kursiva parto en la ŝlosilvortoj rusaj estas forĵetebla, kiel klarigite en la artikolo Ŝlosilvortigo.

Angle Esperante France Ruse
array tabelo tableau массив
begin starto debut начало
Boolean bulea(j) Booleen логический
comment komento commentaire примечание
do faru faire цикл
else alie sinon иначе
end fino fin конец
false malvero faux ложь
for por pour для
go to al aller a на
if se si если
integer entjera(j) entier цел
label marko etiquette метка
own persista(j) remanent собственный
procedure proceduro procedure процедура
real reela(j) reel вещественный
step paŝo pas шаг
string ĉeno chaine строка
switch komutilo aiguillage ключ
then tiam alors то
true vero vrai истина
until ĝis jusqua до
value valore valeur значение
while dum tant que пока

La lingvodifino

redakti

La sintakso de Algolo 60 estas difinita tute formale per la formo de Backus–Naur. Tiaj formalaj difinoj iĝis normo de post Algolo, kaj la nunaj generacioj de programistoj estas edukitaj per tiaj formalismoj. Ĝenerale la Reviziita Raporto pri Algolo 60 nun aspektas kiel verko tre eleganta, mallonga kaj klara. Nun oni malfacile komprenas, kial la samtempanoj opiniis ĝin tre komplikita kaj malfacile komprenebla.

La novaj konceptoj

redakti

Algolo 60 enkondukis tutan serion da novaj nocioj, pluraj el kiuj de tiam iĝis nepraj trajtoj de ĉiuj programlingvoj kiuj lin sekvis. Inter ili estas la nocioj de bloko kaj regiono de la deklaroj, pasigo de proceduraj parametroj per valoro, la rekursiaj proceduroj, dinamikaj tabeloj, riĉaj iteracioj.

La tradukiloj verkitaj por Algolo influis la komputilajn arkitekturojn, precipe ili inspiris kreadon de aparataj stakoj.

La ĉefa malavantaĝo de Algolo 60 estis manko de normigita eneligo kaj de influa industria subteno.

Piednotoj

redakti
  1. Vd NPIV, «²Algolo».
  2. «Reviziita Raporto pri la algoritma lingvo Algolo 60».
  3. «Algebra lingvo» ĉi tie estas komparebla kun «formula tradukilo» en la nomo de Fortrano: temas pri uzo de tradiciaj matematikaj esprimoj kontraste al la maŝinaj komandoj de asembla lingvo. Alivorte, la epitetoj algebra, formula havis la signifon de la nuna altnivela (programlingvo).
  4. 4,0 4,1 «Reviziita Raporto pri la Algoritma Lingvo ALGOL 60». Legi en HTML. Elŝuti en PDF.
  5. 5,0 5,1 E. Boliet k.a. Un nouveau langage scientifique algol. Manuel pratique. Paris, 1964.
  6. Алгоритмический язык Алгол 60. Модифицированное сообщение. М.:Мир, 1982. — С. 10, 17.