Algolo 60 aŭ Algolo-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.
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
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]
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:
- Ĝi estas la labora lingvo de la Komitato [prizorganta Algolon].
- Ĝi estas la difina lingvo.
- Ĝiaj signoj estas elektitaj por plifaciligi interkomprenon, sendepende de la komputilaj limigoj aŭ simbolaroj uzataj de programistoj aŭ en pura matematiko.
- Ĝi estas la ĉefa referenco kaj gvidilo por la konstruantoj de tradukiloj.
- Ĝi estas la gvidilo por ĉiuj maŝinaj prezentoj.
- Ĝi estas la gvidilo por la aliliterigo el referenca lingvo en ĉiun lokan maŝinan prezenton.
- La ĉefaj publikaĵoj pri la lingvo mem uzos la referencan prezenton.
- 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).
- Ĝi estas uzata por formulado kaj komunikado.
- 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.
- Ĉiu el ili estas variaĵo de la referenca lingvo, reduktita konforme al la aro da signoj de la disponebla enigilo.
- Ĉiu el ili uzas la signaron de aparta komputilo kaj estas la lingvo akceptata de tradukilo por tiu komputilo.
- Ĉ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.
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ĥa aŭ pola. 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 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.
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.