![](https://assets.isu.pub/document-structure/210701055120-ed1d841f2fdf155c3c52abc89168137f/v1/5e73cc47b0468ee4ad9d6b53d794b705.jpeg?width=720&quality=85%2C50)
8 minute read
Tarmo Uustalu loob uut arvutikeelt
Tarmo Uustalu
loob uut arvutikeelt
Advertisement
Tallinna Tehnikaülikooli juhtivteadur ja Reykjavíki Ülikooli professor Tarmo Uustalu arendab ja täiustab oma töögrupiga EXCITE projekti all uusi programmeerimiskeeli ning teoreemitõestajaid. Tehnoloogiapessimistina püüab Uustalu luua korda maailmas, mis on muutumas kiiremini kõigest, mida inimkond seni kogenud.
„M ingis mõt tes on in fotehnoloo gia kum malises sei sundis. Olukorras, mida ükski muu valdkond maailmas kuidagi ei aktsepteeriks. Meile ei ole ju kuidagi vastuvõetav, et televiisor või auto end päeva jooksul kaks või kolm korda täielikult välja lülitab ja vajab taaskäivitamist. Samas on arvutiprogrammidega sellised juhtumised ju pigem igapäevased. Kultuuriliselt on ka aktsepteeritud, et arvuti töö katkestab. Keegi ei imestagi selle üle,” räägib Uustalu.
Professor lisab aga, et arvestades, kui kiiresti ja palju maailm ning kogu elu IT-seerub, muutub olukord igal pool ainult kriitilisemaks. „Kui räägime näiteks energeetikast – elektrijaamadest ja jaotusvõrgust –, ka keemiatööstustest, meditsiiniasutustest, siis on neis sektorites kõik IT-alased vead täiesti lubamatud. Palju probleeme tekitab seegi, kui meie X-tee, digilugu või ID-kaardi süsteem ei toimi õigesti ja nii, nagu peaks,” selgitab Uustalu.
Vigu tuleb vältida
Uustalu toob oma sõnade selgituseks lihtsa näite. „Andsin mõni aeg tagasi digiallkirja ning ühel ja samal hetkel olid ekraanil nii punane märguanne, et allkiri ei kehti, kui ka roheline silt, et allkiri on edukalt antud. Kui selline olukord tekib näiteks olulise lepingu allkirjastamisel nt telesillas teise osapoole ja notariga, tekivad kohe ju küsimused, et kelle allkiri on antud ja legaalne, kelle oma mitte. Kuigi allkiri võib olla õige, nagu minu juhul oli, tõuseb segadus ning pingelises situatsioonis võib tehing läbi kukkuda. Minu digiallkirja tarkvara oli ilmselt vananenud, kuid sellelt saadud diagnostikat see asjaolu kuidagi ei õigusta,” räägib professor ja lisab, et kindlasti on normaalne ja õige küsimuste küsimine ka e-valimistekohta, tarkvara tuleb alati auditeerida.
2021. aastal oleme IT-sektorist palju enam sõltuv kui kunagi varem, seda nii meditsiinis, riigivalitsemises, hariduses kui ka meelelahutuses. Tugineme enamikus valdkondades juba läbivalt IT-süsteemidele ja sellele, et need süsteemid toimiksid õigesti, kiiresti ja vigadeta. Uustalu koos oma töögrupiga tegelebki EXCITE projektis sellega, et vältida vigasusi programmides, koodides. Neid vigu püütakse vältida mitte juhtimisalaste võtetega töötajate peal, vaid uuemate programmeerimisvahendite kaudu, milleks on programmeerimiskeeled ja programmeerija tööriistad nende ümber, muu hulgas teoreemitõestajad.
Tarkvara kirjutab „igaüks”
„IT valdkond jaguneb kaheks: riistvara ja tarkvara. Valdava osa riistvarast toodavad suurkorporatsioonid, kuhu on koondatud üle maailma mõnikümmend tuhat kõige helgemat pead, kes disainivad maailma parimaid kiipe. Neid kiipe saab üldjuhul usaldada, nendele on rakendatud väga kõrgel tasemel kvaliteedikontroll. Tarkvara kirjutab ju aga piltlikult öeldes igaüks. Küsimus on hariduses ja kogemuses, mida on üsna võimatu adekvaatselt hinnata ja hallata,” selgitab Uustalu.
Koos Jaan Raikiga, kes tegeleb rohkem riistvaraga, ja Niccolò Veltriga, liigutaksegi selles suunas, et muuta ka programmeerijate töö ühelt poolt lihtsamaks, universaalsemaks ja hallatavamaks. Selleks kasutatakse olemasolevate koodide jaoks programseid tööriistu nende analüüsimiseks ja kontrollimiseks, teisalt aga luues põhimõtteliselt paremaid keeli, milles neid programme üldse kirjutada. „Loome täiesti uusi keeli, kus osaliselt on täiesti uued alusprintsiibid võrreldes tänaste peavoolukeeltega. Need printsiibid on üleni suunatud sellele, et tabada eksimisvõimalusi juba eos, koodi kirjutades. Nagu sõjaväes, kus on reeglid, protseduuriline raam, protokollid, millest ei tohi üle astuda. Kõik see on uude keelde sisse kirjutatud. Ühelt poolt on see ehk mõneti piirav, kuid teiselt poolt ja kokkuvõttes programmeerijatele abistav,” selgitab Uustalu.
![](https://assets.isu.pub/document-structure/210701055120-ed1d841f2fdf155c3c52abc89168137f/v1/f53116687dbc3719d2e0340dc47f94e9.jpeg?width=720&quality=85%2C50)
![](https://assets.isu.pub/document-structure/210701055120-ed1d841f2fdf155c3c52abc89168137f/v1/c41a38b7c266dbb88673890f9dffcf37.jpeg?width=720&quality=85%2C50)
Täiesti uued programmeerimiskeeled
Kokkuvõtvalt võib uued programmeerimiskeeled võtta kokku fraasiga correct by construction, mis tähendabki, et keel kontrollib programme selle kirjutamise ajal. Oluline on, et kood, mida kirjutatakse, vastaks reeglitele ja toimiks nii, nagu vaja. „Keelde on sisse kirjutatud reeglid, mida kood peab järgima või seda ei saa käivitada. Me omakeskis teeme nalja, et koodi saab kirjutada selliselt, et see ei tee midagi halba, või siis selliselt, et see teeb ka midagi head. Kõige minimaalsem, mida programmilt nõuame, on see, et see midagi halba ei teeks või ära ei laguneks. Eesmärk on aga ikkagi, et kood käituks nii, nagu meile vaja ja teeks head,” selgitab professor.
Kas uutes keeltes on sees ka teatav annus tehisintellekti? „On olemas programmide automaatse parandamise süsteemid – programme analüüsitakse ja parandatakse kas enne käivitamist või nende täitmisel käigupealt. Idee seisneb viimasel puhul selles, et kui programmi käituses tekivad eri-
![](https://assets.isu.pub/document-structure/210701055120-ed1d841f2fdf155c3c52abc89168137f/v1/30e0f201b9fb0f7fae2bde5278f00a49.jpeg?width=720&quality=85%2C50)
nevad probleemid ja tõrked, siis koodi sisse kirjutatud „mõistus” tunneb need vead ära ja oskab käigupealt „ümber orienteeruda”. Kaugemale minev asi on aga süntees, mille idee on masinõppimisele ja tehismõistusele lähemal. Koodikirjutamine toimub õppides näidetest, millele programmeerija lisab juurde ka oma tarkust. Sünteesiga tegeletakse Eestis vähe, kui üldse. Küll aga tegeletakse automaatse parandusega. Oleme ka ise sellega tegelenud,” räägib professor.
Uued keeled leiavad rakendust kogu IT-sfääris
Keeled, millega Uustalu töögrupp tegeleb, on funktsionaalkeeled või väga väljendusvõimsate tüübisüsteemidega keeled (rich types). „Keeled, millega meie tegeleme, löövad juba praegu kõige enam läbi pankade ja kindlustusseltside nendes osakondades, mis arvutavad välja skeeme, kuidas „maja alati võidaks”. Nendes osakondades töötavad sageli füüsika doktorikraadiga spetsialistid, kes jagavad ühtviisi hästi nii vajaminevat matemaatikat kui ka mõistavad, kuidas seda kodeerida. Funktsionaalkeeled võimaldavad kirjutada väga elegantset koodi nendeks keerulisteks simulatsioonideks,” räägib Uustalu.
Kui aga tulla normaalellu, tavainimese perspektiivi, näeb professor kahte suunda, kus tema arendatavad keeled saaksid olulist rakendust: turvalisuse ja privaatsusega seotud süsteemid. „Turvaapsakad, mis inimese suhtluses nii riigi kui ka korporatsioonidega toimuvad, on tegelikult ju ülitõsised ja sageli jäävad kinni mitte selle taha, et protokoll oleks valesti välja mõeldud. Vead tehakse just nende protokollide läbiviimisel.
Appi ID-kaardile
Toome näite. Alles hiljuti kaitses Tartu Ülikoolis oma doktoritööd Arnis Paršovs, kes võttis vaatluse alla Eesti ID-kaardi. Paršovs, kes on ka varem ID-kaardile mitu korda „ära teinud”, oli ka oma doktoritöös suht hävitav, sest pärast kõiki intsidente kaardi 20-aastase ajaloo jooksul ei saa riigiasutused aru probleemide tõsidusest. See on kindlasti koht, kus saab parem tarkvaratehnoloogiaga välja aidata,” selgitab Uustalu.
Teine näide tuleb lähemalt, Uustalu oma töögrupi seest. „Poole kohaga tehnikaülikoolis ja teise poolega Eesti ühes ükssarvikus, ajatembeldusfirmas Guardtime, töötab mees nimega Denis Firsov. Erinevalt teistest, kes Guardtime’is töötavad – kellel on pigem infoturbe taust –, on Denisil programmeerimiskeelte ja teoreemitõestamise taust. Ta läks tööle ja avastas üsna kohe, et valdkonnas laialt kasutusel olev teoreemitõestaja Easycrypt – programm, millega kontrolliti ajatembelduse protokolle –, sisaldas ise vigu. Võibolla ta nägigi need ära, kuna tal oli formaalmeetodite taust, oskas vaadata asju teise nurga alt, teadis kohti, kust vigu otsida. Samas peaks uus keel ja selles kirjutamine sellised vead välistama,” selgitab professor.
Teine probleem, mille Firsov avastas, on seotud konkreetselt ajatem-
beldusega ja selle ühe turvaomaduse definitsiooniga. Paarkümmend aastat on kõik seda definitsiooni kasutanud, sellest on tuletatud palju järeldusi. Järeldused ise on kõik õiged, kuid definitsioon osutub vea tõttu väärtusetuks – kui definitsiooni lugeda süvitsi, selgub, et see ei taga turvalisust, mida tegelikult on silmas peetud. Ning see tähendab, et kõik turvatõestused, mis on sellele algsele rajatud, on palju nõrgemad, kui arvatakse. „See konkreetne olukord, kus süsteemis on viga sees, puudutab meid kõiki aga otseselt: kui hästi siis ikkagi on turvatud meie andmed ja tegevused veebis ning muudes programmides, kuigi seda küpsiste lubamisel, sissepääsu lubade andmisel meile kinnitatakse. Nii muutuvad juba eos kõik load ja kaitsemehhanismid probleemseteks. Näiteks Facebook, kus on olnud ka rumalaid infrastruktuurilisi lekkeid, siis suurem probleem ongi olnud fundamentaalsete vigadega ligipääsuõiguste haldamise süsteemides, mis tegelikult kedagi ei kaitse. See tähendab, et pole olnud vaja Facebooki häkkida, sest sisse saab jalutada nii-öelda lahtisest uksest,” räägib Uustalu.
Suund on aina rohkem tehisintellektile
Uustalu arvab, et aina enam hakkavad levima tehisintellektipõhised või meie eest asju otsustavad algoritmid. Kuid kuidas tagada, et tõlgendatav tehisintellekt teeks õiget tööd, käituks nii, nagu meie tahame, et selles poleks vigu ja ta poleks inimesele kahjulik? „Praegu juba näeme näiteks näotuvastusi riigipiiridel. Kuid aina enam võtame ühiskonnana vastu otsuseid, et selliseid süsteeme on vaja, mis tähendab, et neid ka arendatakse ja lähitulevikus on need üsna reaalselt meil erinevates kohtades olemas. Küsimus on, kuidas me tagame, et need süsteemid töötavad nii, et neist on kasu, õigesti ja vigadeta. Aga võtame laiemalt. Tehisintellekt teeb aina enam meie eest ära tööd näiteks panganduses, kus analüüsib laenu võtmisel kogu inimese eluloo, tema senise käitumise ning teeb selle alusel otsuse. Sellises olukorras on vaja, et süsteem oleks õiglane ja töötaks ausalt,” selgitab Uustalu.
Kuid professor ütleb ka, et uus loodav keel ei ole kõikvõimas, vaid vajab ikkagi inimese kalibreerimist ja „õpetamist”. „Päriselt me ei saagi sellist keelt luua, mis võimaldaks inimese mingil hetkel täielikult võrrandist välja lülitada. Me saame anda keele kaudu koodile tingimusi ning lasta siis koodil ise õppida ja probleeme lahendada. Aga inimest on ikka vaja. Samas on tulemas suur hõõrdumine keelte jäikuse, kindlas rööpas olemise ja isemõtlemise, paindlikkuse
vahel. Peame aga suutma isemõtlemist hästi analüüsida. Peame tehisintellekti niimoodi programmeerima, et sellel oleks aruandluse võimekus ja kohustus,” selgitab Uustalu ja lisab, et isegi kui suudame täielikult töötada välja automaatse keele või kirjutada selles automaatselt toimiva koodi, ei ole võimalik inimese abita seda ikkagi toimima panna nii, nagu suudaks inimene. „Kriitiline piir tuleb ette siis, kui peame andma kogu kontrolli ära. Seda ei ole mõistlik teha isegi siis, kui automatiseerimine on rentaablim. Kahjuks ei saa ühtegi süsteemi lõpuni selliselt usaldada, et loobuda kontrollist,” selgitab professor.
MIDA TOOB TULEVIK ISALE JA TÜTRELE?
Isa Toomas (30) ja tütar Emma (5)
Põhimõtteliselt olid jutu alguses mainitud teoreemitõestajad ja võimekused uut programmeerimiskeelt kirjutada olemas juba 80ndatel. Läbilöök neis kahes suunas tuli aga siis, kui arvutid muutusid riistvaraliselt võimsaks. Viimased 10–15 aastat on olnud nende kahe suuna jaoks imeliselt hea aeg. Saavutatud on mingi momentum, ühine arusaam nende kahe suuna vajalikkusest.
Seda, mis juhtub tema valdkonnas 50 või ka 100 aasta pärast,
ei oska Uustalu kuidagi hinnata. „Mulle tundub 50 aasta kaugusele edasi vaatamine hirmuäratav ja see aeg on ikka jube pikk. Ma olen tegelikkuses tehnoloogiapessimist. See, kuidas on interneti levik ja hilisem sotsiaalmeedia plahvatus meie elusid ja sotsiaalset olukorda muutnud, on kardinaalne. Me veel ei tea, kas see muutus on kokkuvõttes üldse hea. Rääkimata sellest, mis võiks olla reaalsus poole sajandi pärast,” ütleb Uustalu.