VISUOMENĖ
2024.01.25. Niklausas Virtas ir Lietuva
Dr. Gintautas Grigas
2024 m. sausio 1 d. iškeliavo anapilin žymus Šveicarijos mokslininkas, Paskalio ir daugelio kitų programavimo kalbų kūrėjas, Niklausas Virtas (Niklaus Wirth). Jo darbai turėjo didelę įtaką Lietuvos programuotojų elitui. Viskas prasidėjo nuo Jaunųjų programuotojų mokyklos (JPM) kūrimo apie 1979 metus.
Reikėjo pasirinkti mokymui tinkamą programavimo kalbą. Tuo metu dominavo Algolo 60, Kobolo, Fortrano kalbos. Sparčiai plito nauja kalba PL/1. Jos transliatorių turėjo tuo metu populiarios mažesnės „Vieningos sistemos“ (VS) elektroninės skaičiavimo mašinos. Buvo dėstoma Kauno politechnikos institute.
Niklauso Virto darbai turėjo didelę įtaką Lietuvos programuotojų elitui
Programavimui mokyti rekomenduojama Paskalio kalba buvo dar mažai žinoma. Sovietų Sąjungoje gaminamoms skaičiavimo mašinoms nebuvo jos transliatoriaus.
Todėl nuspręsta kol kas naudoti PL/1 kalbą, o kai atsiras Paskalio transliatorius, galbūt pereiti prie jo.
1977 m. vasarą pradėjau rašyti JPM pamokas naudodamas PL/1 kalbą. Nesisekė. Ryškėjo šios kalbos pedagoginiai trūkumai. Galų gale perėjau prie Paskalio.
Nėra transliatoriaus – ne bėda. Padarysime. Tokiems planams turėjau pagrindą – vadovavau dviejų neeilinių gabumų VU studenčių Valentinos Piekaitės (Dagienės) ir Almos Baliūnaitės (Petrauskienės) kursiniams ir diplominiams darbams.
Nusprendėme daryti interpretuojantį transliatorių. Jis transliuoja programą į tarpinę kalbą, artimą mašininei (kompiuterio) kalbai. Tarpinės kalbos programą vykdo interpretatorius. Interpretuojantis transliatorius veikia lėčiau negu kompiliuojantis, bet jį paprasčiau padaryti.
Iš N. Virto gavome interpretuojantį Paskalio poaibio transliatorių Paskalis-S, skirtą studentams, parašytą Paskalio kalba. Bet tam, kad jis būtų sukompiliuotas, reikėjo turėti visos kalbos kompiliuojantį transliatorių. VS kompiuteriuose jo nebuvo, bet buvo PL/1 kalbos transliatorius. Ja ir rašėme Paskalio transliatorių, pasižvalgydami į Paskalio-S transliatorių.
Mūsų manymu, programavimo mokymui labai naudingi Paskalio kalboje gavę pradžią duomenų tipai –vardinis ir aibė – nebuvo įtraukti į Paskalį-S. Klausėme Virto, ar tikslinga mūsų projektuojamame Paskalio poaibyje šiuos duomenų tipus palikti. Virtas mūsų idėjai pritarė. Apsidžiaugėme ir palikome.
Transliatoriaus sintaksinę dalį paėmė Valentina, semantinę – Alma. Liko interpretatorius. Tačiau suprogramuotas PL/1 kalba jis sulėtintų programų vykdymą. Todėl reikėtų jį programuoti asembleriu. Bet nė vienas mūsų neturėjo darbo su asembleriu patirties. Kalbinome asemblerio žinovą Vladą Tumasonį. Jis vadovavo studentui Remigijui Petrauskui ir jam pavedė interpretatoriaus programavimą.
Mūsų studentai sėkmingai apgynė diplominius darbus iš atskirų transliatoriaus dalių projektavimo. Alma ir Valentina buvo paskirtos į tuometinį Matematikos ir kibernetikos institutą ir tęsė transliatoriaus projektavimą. Remigijus buvo paskirtas į Vilniaus universitetą ir išsiųstas stažuotis į Maskvą. Interpretatoriaus programa liko nebaigta. Nusprendėme laikinam darbui jį suprogramuoti PL/1 kalba. Tai galima padaryti greitai, bet veiks lėtai. Kai atsiras galimybė, bus galima tęsti Remigijaus pradėtą darbą – lėtą interpretatorių pakeisti spartesniu. Interpretatorių PL/1 kalba suprogramavo šių eilučių autorius.
Nedidelę, maždaug puslapio apimties moksleivišką programėlę, PL/1 kalbos transliatorius sutransliuoja ir įvykdo maždaug per 4 minutes. Skaičiavimo mašinos minutės kaina buvo apie rublį. Nepigu. Kažin kiek kainuotų analogiškų programėlių praleidimas per mūsų sukurtą Paskalio transliatorių?
Vos pradėjus veikti transliatoriui, pamatavome laiką. Ogi tik apie20 sekundžių! Vadinasi, mūsų transliatorius apie 12 kartų spartesnis už PL/1 transliatorių. Kur šuo pakastas?
Mūsų transliatorius buvo orientuotas į nedideles programas ir visus duomenis laikė operatyvioje atmintyje, o PL/1 transliatorius daugelį jų laikė diske. Nuolatinis duomenų persiuntimas tarp operatyviosios atminties ir disko užimdavo daug laiko. Bet jis galėdavo apdoroti didesnes ir didesnį duomenų kiekį turinčias programas. Mūsų transliatorius turėjo kiekybinių ribojimų, bet nepastebėta, kad mokymo procese tie ribojimai būtų pasiekti. Jo sparta (apie 20 sek. programai) buvo puiki ir jo interpretatorius nebuvo perprogramuotas.
1981 m. sausio 27 d. pradėjo veikti Jaunųjų programuotojų mokykla, kurioje buvo naudojama Paskalio kalba ir jos transliatorius. Pamokos buvo spausdinamos dienraštyje „Komjaunimo tiesa“. Metais ar dvejais anksčiau panašios mokyklos buvo įkurtos Lenkijoje (naudojamas Beisikas), Estijoje (Malgolas, žurnale „Horizont“), Rusijoje (Rapira, žurnale „Kvant“), JAV ir Kanadoje (PL/1 kalbos poaibiai).
Mokymas buvo pakartotas tik Rusijoje ir galbūt JAV. Mūsų JPM mokymo kursas buvo kartojamas kas antri metai daugiau negu 20 metų. Nors pradėjome vėliau, negu čia paminėtose šalyse?, bet jas pralenkėme kurso stabilumu. Tai lėmė N. Virto sukurto Paskalio tobulumas bei konsultacijos su jo autoriumi.
V. Dagienė su N. Virtu (2007)
Paskalio kalba buvo sukurta taip, kad ja parašytas struktūrizuotas programas galėtų ne tik vykdyti kompiuteris, bet ir lengvai suprasti žmogus. Šią jos savybę išnaudojome ir mokėme programavimo kultūros, algoritminio mąstymo, kūrybiškumo. Mokinių parašytas programas vertinome ne tik pagal iš kompiuterio gaunamus jos vykdymo rezultatus, bet ir pagal programos tekstą – ar lengva jį skaityti ir suprasti. Uždavinynuose teikėme ne tik programų rašymo, bet ir programų skaitymo uždavinius.
Parašėme nemažai knygų, kurių pagrindas buvo Paskalis. Trys knygos: „Programavimo pradmenys“ (tiražas 257 tūkst. egz.), „Šimtas programavimo uždavinių“, „Paskalis. Programuotojo vadovas“ buvo išverstos į rusų kalbą. Taip mes ir Paskalis tapome žinomi Rusijoje.
Prisimindami N. Virtą daugiausia rašėme apie mūsų, o ne jo darbus. Bet, jeigu nebūtų buvę Virto, nebūtų buvę ir mūsų darbų, kuriais galime didžiuotis.
Atgal