(Arvatavasti) Korduma Kippuvad Kysimused K: Mis on SPS? V: Skeemprogrammeerimise syteem, STS alamsysteem, mis on orienteeritud programmitekstide toimetamisele. K: Mis on STS? V: Skeemteksti systeem; vo~imaldab arvutile esitatavaid tekste, nn. arvutitekste inimesele loetavamaks (vahetult tajutavaks) struktureerida kaasaegseid arvutigraafika vahendeid kasutades. K: STS taust ja yldine kontseptsioon? V: Inimesele on looduse poolt antud vo~imas visuaalse taju mehhanism - na"htava pildi ylikiire too"tlemise ("haaramise") vo~ime. Sellest tulenevalt on ka info edastamise y h e k s heaks vahendiks pilt: liiklusma"rk, osutitega kell (kus isegi numbrid pole eriti olulised), hieroglyyf jne. Info pildilisel kujutusviisil on ka puudusi, peamisteks ebalakoonilisus (suur pindala, aegano~udev joonistamine) ja raskused abstraktsema info puhul (millised pildid voiks esindada nt. mo~isteid 'Isa', 'Isamaa'?). Alternatiiviks on loomulikult teksiline kujutusviis, kus on tegemist info kokkuleppelise kodeeringuga. Viimane on ylimalt lakooniline ja sobiv ka kuitahes abstraktsete mo~istete jaoks. Teksti mo~istmine aga pole kaugeltki nii kiire kui pildi "haaramine", no~udes teatavat dekodeerimist. Tegelikkuses kasutatakse kombineeritud esitusviisi, kus lihtsam info antakse tekstina, struktuursem aga pildina - joonised, skeemid. Viimastes omakorda esineb tavaliselt mo~ningaid lihtsamiad tekste. Ka pikemat "puhast" teksti ennast ei esitata kunagi lihtsalt kirjama"rkide jadana. See esitatakse alati tasapinnale laotatud fragmentidena (lihtsamal juhul ridadena, taandega lo~ikudena, peatykkidena), nii et fragmentide paigutus soodustaks teksti (struktuuri) vahetut mo~istmist. Sisuliselt on tegemist tekstiosadest koosneva pildiga, mille struktuur on inimesele loomupa"raselt kergesti ja kiiresti tajutav. Muuseas kehtib see ka arvutile esitatavate tekstide korral, kui samas on oluline nende arusaadavus inimesetele. Yldtuntud on programmi teksti esitamine ridade taanete abil nii, et programmi yldisem struktuur oleks kergesti arusaadav. Seejuures mitte ko~iki lekseeme ei paigutata omaette ridadesse, vaid fragmentideks on va"hem struktuursed tekstilo~igud, nagu avaldiste/lihtdirektiivide ja"rjendid, funktiooni/klassi pa"ised, kommentaarid jms. Pildina (kahedimensionaalse e. diagrammilise kujutisena) tuuakse esile just keerukamate konstruktsioonide ylesehitus (funktsioonid/klassid, juhtimisdirektiivid jms.). Praegusel ajal on prevaleerivaks arvutitekstide fragmnetide ryhmitamine mitmesuguste sulgude (kaasaarvatud vo~tmeso~nad BEGIN/END, IF/ENDIF jne) ja nende tekstide struktureerimine symbolite '\n', '\t' ning tyhikute abil, mis tegelikult pa"rineb nn. alfabeetilis-numbrliste sisend/va"ljundseadmete ajastust. STS yldiseks kontseptsiooniks on: pakkuda arvutitekstide kasutajatele nimetatutest ma"rksa kaasaegsemaid vahendeid ja vo~imalusi teksti struktuuri kujutamiseks. K: Kas on tegemist graafikasymboleid sisaldavate uut tyypi programmeerimis- keeltega, yldisemalt - uut tyypi arvutikeeltega. V: Ei. Eeska"tt on tegemist on toega arvutiteksti toimetamisele. STS tuuma funktsioonid on universaalsed ega so~ltu baaskeelest, st. on so~ltumatud sellest, miskeelset teksti parajasti toimetatakse. (Nagu siiani on reeglina baaskeelest so~ltumatu ka symbolite '\n', '\t' ning tyhikute kasutus arvutitekstide liigendamisel.) STS tuumava"listestes kihtides leidub teatavaid konkreetseid baaskeeli toetavaid toimetamisfunktsioone. Kyll aga pole va"listatud, et luuakse baaskeelte kompilaatoreid/interpretaatoreid, mis vahetult kasutavad skeemteksti arvutisisest esitust (nii syntaksanalyysi lihtsustamiseks kui ka veateadete seostamiseks sellise esituse mingi konkreetse vaatega). K: Mis on vaade? V: Skeemi (arvutisisesele esitusele vastav) kujutusviis ekraanil. Ekraanipilt allub toimetamisfunktsioonidele, nende kaudu sooritataksegi skeemide toimetamist. Skeemi vaade on muudetav - antud skeemi vaate vo~ib asendada mingi teisega (olemasolevate vaadete hulgast). Skeemtekstis sisalduvatel skeemidel vo~ivad olla erinevad vaated. K: Vahekord HTML-tekstiga? V: HTML-tekst on yks arvutitekste (esitamiseks nt. lehitsejale). Seega STS saab ka siin olla vahendiks HTML-teksti inimese jaoks ylevaatlikumaks muutmisel. K: Mis on skeemtekst? V: Skeemtekst on skeem. K: Mis on skeem? V: Skeem on skeemi baaskeeleks oleva konkreetse arvutiteksti kujutis skeemteksti mudelile, kusjuures on maa"ratud skeemi poo"rdkujutus arvutitekstiks. K: Mis on skeemi baaskeel? V: Skeemi baaskeel on (arvutiteksti esitamise) keel, milles on kirjutatud skeemi poo"rdkujutamisel saadav tekst. K: Mis on skeemteksti mudel? V: STS mudel on skeemi struktuuri yldine, baaskeelest ja vaatest so~ltumatu kirjeldus, mille po~himo~tteline ylesehitus on ja"rgmine. [Termin 'ja"rjend' ta"histab lineaarselt ja"rjestatud (tyhja vo~i mittetyhja) hulka.] Mudeli terminaalseteks osisteks on p r i m i t i i v i d - tyybiga varustatud tekstid. T e k s t on kommentaariga varustatud ridade ja"rjend. R i d a on reaelementide ja"rjend, reaelemendiks on kas symbol vo~i pilt. K o m m e n t a a r on rida. Mudel defineerib s k e e m i kui mittetyhja harude hulga, mis on varustatud kommentaari, skeemi tyybi ja pa"isega. P a" i s on primitiivide ja"rjend. Skeemiga on seotud viide skeemi baaskeelele ja skeemi vaatele. H a r u defineeritakse kui liikmete ja"rjend; ka haru on varustatud kommentaari, haru tyybi ja pa"isega. L i i k m e k s h a r u s on primitiiv vo~i skeem. Kuna haru ja skeemi struktuur on sarnased, siis ka"esolevas konkreetses realisatsioonis ka"sitletakse haru skeemi mo~iste laiendusena: h a r u on skeem, mille liikmeteks on 0 vo~i enam (kindlas ja"rjekorras olevat) skeemi vo~i primitiivi. Seeto~ttu puuduvad ka eraldi harutyybid - haru tyybiks on haruks oleva skeemi tyyp. Skeem, mis pole yhegi teise skeemi liikmeks, on tasemega 0. Skeemi liikme l t a s e l.tase = s.tase + 1, kus s on skeem, mille liikmeks on l. Seega haruks oleva skeemi tase on alati paaritu arv. Pa"ises esinevaid primitiive nimetatakse l i h t p a" i s e t e k s, nende tyype p a" i s e t y y p i d e k s. Harus esinevaid primitiive nimetatakse l i h t l i i k m e t e k s, nende tyype l i i k m e t y y p i d e k s. - Tyypide vaa"rtusteks on short-tyypi konstandid. STS tuum toetab 3 erinevat skeemityypi (konkreetselt nimedega SIMPLE | LOOP | MODULE), 10 erinevat pa"isetyypi (PLAIN | LOOP | SWITCH | CASE | DEFAULT | TRY | CATCH | FORK | PARALLEL | JOIN) ja 32770 liikmetyypi (CONDITION | PLAIN | 0 | 1 | 2 | ... | 32767). Lihtliiget, mis ei ole tyypi PLAIN vo~i CONDITION (st. tyybi vaa"rtus >= 0), nimetatakse n o o l e k s. Noole tyybi vaa"rtust nimetatakse noole o t s a t a s e m e k s. Noolt nimetatakse t u g e v a k s, kui otsatase on paarisarv ja n o~ r g a k s vastasel korral. Toetatakse vaid nooli, mille otsatase on va"iksem kui noole enda tase. Kokkuvo~ttes, mudel on formaalne struktuur. Tuuma funktsioonid toetavad selle alusel koostatud skeemide too"tlemist. Kuidas mudelit kasutada konkreetse baaskeele tekstide struktureerimiseks, selle peab maa"rama vastav kujutusviis (mis on ka aluseks skeemistamise algoritmile), mis annab mudeli poolt pakutavatele elementidele vastava semantika. K: Milleks on mudelis (mo~ned) tyybikonstandid mnemooniliste nimedega? V: Vist asjatult. Tekitavada ainult segadust ja liiga varajast sidumist vaatega. Kui neist loobuda (nagu Aulisel), saaksime yldmudeli ehk abstrakse mudeli: Eeldefineeritud, terminaalsed mo~isted: t a" i s a r v s y m b o l p i l t h u l k v a a d e b a a s k e e l Metaterminid: j a" r j e n d - lineaarselt ja"rjestatud hulk. + - ja | - vo~i Mudelis defineeritud mo~isted: P r i m i t i i v - tyyp+tekst. T y y p - ta"isarv. T e k s t - ridade ja"rjend+kommentaar. R i d a - reaelementide ja"rjend. R e a e l e m e n t - symbol | pilt. K o m m e n t a a r - rida. Y l d s k e e m - liikmete hulk+tyyp+pa"is+kommentaar+vaade+baaskeel. (A b s t r a k n e s k e e m - yldskeem.) L i i g e - primitiiv | skeem. H a r u - yldskeem, mille liikmete hulk on ja"rjend. S k e e m - yldskeem, mille liikmete hulk ei ole tyhi ja sisaldab ainult haru(sid). P a" i s - primitiivide ja"rjend. S k e e m t e k s t - skeem. ---- selle koha peal vo~iks vist abstraktsele mudelile punkti panna Midagi tuleb edasi konkretiseerida, et yldse saaks kasutada? Na"iteks, alustuseks: L i h t p a" i s - pa"ises esinev primitiiv. L i h t l i i g e - haru liikmeks olev primitiiv. N o o l - lihtliige, mille tyyp on mittenegatiivne. O t s a t a s e - noole tyyp. N o~ r k n o o l - nool, mille otsatase on paaritu. T u g e v n o o l - nool, mille otsatase on paaris. Jms. ....