INFORMATICA 3/1984 PROGRAMSKI JEZIK PASCAL II. UDK: 519.682.8 M. GAMS(1), I. BRATKO(2,1), V. BATAGEU (3), R. REINHARDTd), M. MARTINECd), M. SPEGEL(1), P.TANCIGd) V' fUlnLu 1O Htljpiuj OpisUlifl |li;iv p.i-.(.-.il.l in itcciii kiitik v liHricitu [KI :anln>!.i i.eluhlo unolijo. (1) Inrtitut ,.JOŽEF STEFAN", (2) FAKULTETA ZA ELEKTROTEHNIKO, UNIVERZA E. KARDEUA (3) FAKULTETA ZA NARAVOSLOVJE IN TEHNOLOGUO |l!|>Ri|U pil.K||llli|i| '»U:di opt* piinie Kmolu Vecji du! i':li,inkci je ^j<>wiičen slubostim m.*pi iinernih podiočij uporobc, /uključna ocena Pi OIJI u mni i ng Languaije fustol II (detuiled unulys!s uf Pascal's shorfcomings). fitsr we ver/ shortly .loiciilje wlial is "ijood" prcHjiumniiiuj in Pascal and tlian we devote special care to Poicals ihortcomingi ond tfitics in liteialuie. Fincilly v,v desciitie whicli piuljlem Jofnoins ure iuitable fof Poscol ond vvhich not. I .' livud Viaksmu jeziku luhko očilomo kopico po/nunjkljivosli. Tudi Paicol ni izjeina. Nekalorim Jloboslim jo da izognili z do- iladnim prografniianjem, nekatere slabosri pa so neprijetne za upoiubniku. Zato tmo najprej navedli pravila lepaga pro- gia.inicoii{a v Puscolu. iole nato imo skuiali zbrati vie imi- lalna pripombe in jih ocsniti. Na koncu so zbrani rezullali unk«ie o Pascalu, Vie tkupaj naj da uporabnikom dodatno tmrij« a teni, kdaj uporobili Poical in kdaj ne, tnovalce no- vili jazikov pu noj opozori na nekaloie nopuka, ki naj jih pil .dkimiiijam itanju roduiKilriiike znanosli ne bi imeli ponav- l)ufi. Vit lo rozkrlvanje napak pa na| n« vrže »labe Iu4i na Puicol, ta\ tl la Izvntnl jezik zasluzl ved pohval kol kritik In najbri anaga prvih m«i) mcd algoritmlinimi jaziki/13/. Rodi bi i« zahvolill yi«m, kl to todalovall pri popravl|an|u tlanka, predvtam po: Jonazu Žarovniku, Morku Bohoncu, Hanriku Ktnacu, Oamjonu Bojadiljavu in Igorju MozsHiu 2. Piovila lapaga pfogianiicnnja v Potcalu Vtuk jazik bol| podpiia (iu vtiljuj«) nokolere ifile programi- canja. 2 uporubo ilovaku bolj naiavnego itlla programiranja I« pov»io produklivticHt ptogramarja. Program veikrof baramo, kol po ya piiainu. Viok jailk, ia putabaj po iploino riaman- iki jatlk, j» moyo£a "jloiobiH", to ja uporobill no naprim«- iai< imčio. Npi. proyiam«i jl, kl i Fortiana praidajo no Patcdl, pogmto braz poliaba jporabljajo "gofo" itovak. Po- dobno luliko zlorubimo Poicul t iiopiBmiiljono uporabo global- nlh •piciiMnljivk . 1/ 2.1. Strukturironje Pascal omogoča učinkovito jtrukfurironja, Ij. provilno struk- luro zapisa algoritma. Osnovni io frija principi ttrukturirone gradnjo programov: a) od zgoraj navzdol (top-down) b) od spodaj navzgor (bottom-up) c) kombinacija a in b. Princip "od igoraj navzdal" gradnje programov je v tem, da obsezna haterogane ko»e delimo no monji« In bolj kompoktno dale. ManjSe dela ložja obvladomo, pregladnojt raiie. Princip "od spodoj navzgor" gradnja programov ja v tem, do ta nekatera ojnovna opravila - atomarna funkcije - pogotto ponovljo. Te aromorna operaclja nojpra| zakodiramo, nalo pa čimveč otralih podprogramov grodimo i 4lmved kllcl i» kodlra- nlh podprogromov. Toko lohko reallzlromo program* z mon| ko- de, "mod" koda naratta. V piakii ia najbolj pogojro treiujamo i uporabo obah itilov, tako do jproti razbijamo yo4je ko>a v man|ie, kadar pa nole- limo na cunoven podprogram, ga takoj zakodiromo. Med kodi- ranjem vedno preverjomo, ali lohko kakino nalogo reiimo toko, da uporabimo te zakodlran (molca popravljan) podprogrom. Podprogrom m| bo dolg okoll ana ilronl In noj viebuje nojved 7 podpiogromov. Podprogrom moro Imatl omajen pretok Informo- ci| preko iimmanj paramelrov. Za globalna ipramenljlvke gU| pravilo itevilka 2.2 Kador bo program obiaisn, moramo prad kodiror.]iiin vedeH, kaj vf bo mfovljolo an modol (za over- \aya uli iu vsebimko pov»»m \oi*n» modula), drugača po pod- programov rojii ne gnezdimo, ampok |ih gradimo "od tpodaj navzgor" all v obliki produkcljsklh liitemov /2,3/. Slika 1: Slrukturiranje "od zgoraj navzdol": vcčje module razbijamo v monjSe toko, da med moduil n! povezav. "Idealna" konfrolna itruktura je drevo brez prekriva- n|a llstov, gradlmo ga od zgoroj navzdol. Sllko 2: Strukturiranje "od spodoj navzgor": osnovne podpro- grame čimprej zakodiramo in ostale podprogiame gro- dimo s pomodjo ie kodiranih podprogramov, ki to dostopni vsem podprogromom. Konlroloa itruktoro je neplonaren uimor|en graf, prekrivanja |e precej. Viok Izmad naiinov kodironja imo ivoje prednost! In ilabosM. Bolj pogojto irečamo kodiranje od zgoraj novzdol, ker lažja razbijamo vellk problem na iažje podprobleme In zato ja pra- gladnost obidjano zelo dobra. Strukturiranje od ipodaj navz- gor omogoda veliko izkoriičonost kode, vendar ni primemo za v»a podroija. Kljub lemu je po mnenju nekaterih ob pazljivi uporabl lo izredno učinkovita metoda. Pofllejma ti rezultole ttrukturiranja na primeru iz literature/4/: Ko to obstojedi progiam v joziku PL/1 prooblikovoll iz ne- itrukturirane oblike v ttrukturirano, so lesrirane oiebo za ia- zumavanje neihukluriranega piograma potcobovale dvokrat voč dosa kot za razumavanje itrukturlrana varzija. Tudl drug) fak~ torji kot ciklomatldno komplekinott (uitreza Intultivnemu poj- mu zaplotonojt! ciklov) IO »e biitveno Izboljiall prl prokflčno IIH hirroati Izvajanja. Pai pa te |e blstveno (za polovloo) po- daljialo itavilo vntlc programo, največ na račun dekloraclj procodur. 2.2. N« uporabljoj goto ttavkov in globolnih spramenljlvk, če to nl nujno potrebno. 2.2.1. Pogosto uporabo komtrukto "goto" zelo pojlabja iitljivost kode /4/, zato ga uporabl|a| la v izjemnih primarlh, npr. pri nonodnl prekinifvi izvajan|a ali pri tkoku Iz zank«. 2.2.2. Globalne tpremenljivke uporabljaj I« takrat, kadar io pogosto uporabljane v večjem irevilu podprogramov, all kadar IO podatkovne jtrukkire obsežne. V komanfarju ob kllcu pod- programa In v glavi komentorja navedl, kat«re globalne spr«- menljlvke nastopojo v podprogramu \n kdaj (kako) spremonijo vrednost znotraj podprograma. 2.3. Zamlkaj Stile zamikanja >! lahko ogledamo v literaturl. Prl zamtkanju n« obstaja en tploino veljaven prlnclp in vsak programer Ima tvojo Inačico oblikovanja programa. Smiiel zamikanja je y tem, da z obliko nakaiemo itrukturo programa, oziromg algo- rltma. Lepo zamikanje močno povača čitljivoit programa. 2.4. Uporabljaj mnemonična imena za spremanljivka, tip«, Imano podprogramov, Itd. Tako se močno poveia čltljlvott in samodokumentlranost pro- groma. Mnemonlčnih imen ne uporabljamo le za podtjtk«, ki nimojo temanridnega pomena, npr. tabela "TAB" oli "A" no- iropa v podprogramu za sortiran|e, all za pogosto rabljana ipremenljivka kof npr. "I" zo Jtevec v žonkl. Le iz|emomo - ali iploh ne - krajtamo mnemonidna imena npr. "Stevllo vritlc" v "irvr". Samojtojne besedo združujemo v eno imo lako, da prvo £rko lamojtojne bateda piiamo z vellko zatelnico, npr. "JtBviloVntic" all "ŠteviloVr»»ic". 2.5. Komantlraj, dokumantlraj Obvezno opiii vlogo viakega podprogroma, ka| dola, kakian vhod in izhod Ima in v»e pojebnojri. S komenror|am teil pod- progrome oli ob»ezne stavke, npr. tako, da Ima prvl "begin" In pripadajočl "and" pripUano im« podprograma ali Im* kon- ifrukta. V»ak podprogram na\ imo VKJ| an »fov«k komanrarjo. 3. Anollia krlrlk Paicala 3.1. Uvod : V Mrokovnl llteraturl xa vtak prograrakl |*zlk na|demo v*o| > noka| krlHčnlh člonkov. Blitven problam inovalcav vtakoga ! prograimkego Jazlka |e na|H pravo rQvnotai|a tned ipo»ob- nottjo tn prapro*tog»|o. Tudl to |a adan od razlogov, ekj na- , ben |oilk n« more bitl primaran za v»a podroijg In za vi« ttlla programlranja. Krltlko |c upravlisna zlaitl takrat, ka- dar opozorl na očlrno ilaboit all kador predlaga boljio railfav. - Progromskl |ezlk |« obi£a|no daflnlran na Itlrlh nlvojlhi • a) abttraktna ilntakia (za Paical ena A4 t(ran) b) konkretna ilntakia (za Paical itlri A4 »tranl »Intaktlčnlh diagramov) c) prlročnikl In ostala llteratura o itandardnem jeziku (Paical : Uor Manual ond Report Ima 167 itranl) d) pravajalnlk za itandardnl |szlk (okoli 150 -200 itranl : liitlngo). Obliajno tudl valja, da i« kontakitno ivobodna gramotika konča z b) In v c) opiiemo kontekitno obiutljlvo gramatlko. Z nlvo|em noraičo kollčlna Informaclj in doloienojt jazlka. . i Iz abitraktn« ilntaba |a.npr. že rozvidna možnost itransklh i ofektov prl funkcijah. 5 konkretno sintakso IO določeno »tva- * rl kot hierarhija operatorjsv, obllka kontrolnlh konstruktov, Itd. Izjeme, kl |!h < konkretno tintakio nl mogoie lepo opl- ! wri, IO oplsana v prlročntklh. Tak prrmer |e IF - THEN - . IF - THEN - ELSE konstrukt, za kateroga Iz tlntaktiinih ' dlagramov nl jaino, all zadnji ELSE pripada prvemu all dru- gomu IF-u. Zaialjeno |e, da |o tokih Izjem £im man|. Slabo \», kadar o>rane|o take lz|eme neopltana all prapuiženc Im- piamentator|u. V Patcalu |a to prlmar za evaluacijo (ovred- not«n|«) Boolovlh Izrazov, ko nl |asno, ali »e v loglincm Iz- rcizu "pl and p2 and p3" vadno ovrednor!|o vil trl|o pogofl , all celoten Izraz dobl vradnott "falja", kadar npr. "pl" do- bl vrodnojt "falie". Kot poilodlca tega Imajo nakaterl prtva- ' jalnlkl en in drugl drug načln evaluacije, fo pa poslabia pra- | no»l|lvoit programov. • ' Večlna krltlk v lltaraturl |a povzata v nadaljavonju članka. Polag kritik |e narejena anallza In ocana upravUenotti krl- (Ike. Krlflko IO v vellkl merl privzete po /5/, pradvtam pa •• ikllcu|amo ia na /6,7,8,9/ In /10/. Prl tem onalblromo lira ilabotH Paicala, I« da t« oceno vdaslh razllku|ajo. : 3.2. Probleml na nivoju kodiran|a 3.2.1. Nezaključan komentar. Prl komontlranju pogatta na- redlmo napako, da pozoblmo zaključltl komanlor, Recimo; I := I - lj (*nak komantar pozablmo zakl|učitl ??) | i=l » (*drug komanfar*) . TQ nopoka |a pogo»to noprl|atno, M| |e pravajalnik na odkrl- |a In lahko ta zgodi, da progrdm dela pravllno, rozen za po- lebno komblnocl|o vhodnth podatkov. ' Komentan Predlagano rajltev z vrttlinlml komenh3r|l kot v Forfronu |e ilabia kot natladnj! dva možnojtl: - dobar HiHng programa nom pokaže, koterl itavkl »o koman- tortkl - prevajolnlku bl lohko dodall opozoillo, kador b| znotro| komantar|q nalatall no »Imbol "(." . Obe raiitvl |a mogoče enojtavno reallzlratl. 3.2.2. Flkilran red deklaracl) - CONST, TYPE, VAR. Neko- terl avtorj! »rdljo, da |e bol| tmlialno dodotl moinoit poljub- nega ponavljanja teh freh deklaraclj. Komantor: Smlsolno bl bllo dodatl poljuben vntni red deklaraclj. To zahteva mlnl- malna popravka prevajolnlka, olajio pd probloma prl ločanam pravajanju oll delu i kn|!žnlcaml. ' 3.2.3. Nopoke zaradt "default-a". Naprljetna napaka |a npr. pozabljenl "var" prl deklqrlran|u parometerov all fo, da pozablmo deklorlratl »premenljlvko znotraj podprograma |n po-, itane globalno. Prlmeri procedure Increinenr ((*var*) I: integer); (*var I : Integorj *) begln I := i + 1 end ) Komentar: Mpgoče bi bllo imitelno Izločltl "default" prlnelp.. Toko bl za globalna ipremenljlvko vedno deklarirall npr. "glo-> bal" In za lokalne parametro npr. "value". , 3.3. Problemi t tlpl 3.3.1. Vrednoit funkcija ja lohko la nakdj itrogo določenlh , tlpov. Komantar: Brez vačjih noporov bl lahko ipremenll! pre- va|alnik tako, da bl imale funkclje po||uban tlp In nokatere Izvederike Paicola io te Imaio. Omejltov vrednojtl funkcl| po nl zolo n«prl|erno, to| il tahko pomagamo i kllcem procadur«. 3.3.2. Množica. Komantan Mnoilca IO zalo uporaban podot- kovnl tip. Na zalott pa IO vezana na dolžlno besedo In na|- v«4|a mozno dolilna množlc |a tako no|pogo»te|e vazaha no konkroten raiunalnlk, kar zolo ohaikoča prenotljlvo« progro- mov. Dokaz za boljio implamantacl|o mnozlc najdamo npr. v izpal|ankl Pajcala "P+" /5/. Mozno rallrav bl blla, {o bi y standardnem Patcalu dovollll daklaracljo dolilna mnoilca no načln kor pri dlnamlčnlh tabalah. Druga ilabost mnoilc |e, da (O v Pascalu lahko alementi množlco lamo stoflčnl objekti, tora| »e njihova vseblna i iaiom n« moro spreminjotl. Zaradi toga to množlco učinkovito implemantlrana, ia\ pa lo do»t!-. krot onemogoia udobno programiranja. Zato bi bilo mogoč« tmltelno dodafi poteben konstrukt, imonujmo ga "LIST", ki bi omogočal tud! konitrukte tipo "množica zapltov" (iet of record). Tak komtrukt pa |e razumljivo implementacl|iko pre- ce| počatnejil od stcindardnih množic. 3.4. Monjkajoč! korutrukH 3.4.1. Man|kajočl Inverzni koratrukt "ORDu". Razen za znake (chr) inverzni kontfrukt "ORDu" no obita|a. Komsn- tar: Smisslno bi bilo dodatl Inverzn! konstrukt "ORDju", taj n6 zahteva veliko popravkov prevajalnika. Tako bl za vsak enostaven Hp T = (vO, vl,v2, ..., vn) imell funkcljo ORD: I := ORD(vi) in funkcijo za inverzno transformacijo: vt := Croata(T,l). Brez te inverzne funkclje npr. ne mora- mo preprosto poiskati srednjega elementa za neceloštevllčne Indekse: srednji Element : = Creafe(T,(ORD(loviElement) -t- + ORD(desniElemenO) dlv 2)); Tak konstrukt je enostavno dodati v prevajalnlk. 3.4.2. Manjkajoči "LOOP" In "EXIT" koratrukt. Nekaterl avtorji predlagajo "LOOP" koratrukf, podobno kot v COBO- LU, in s prekinltvijo zanke z "EXIT" konstruktom (ta obsfaja v nekaterih verzljah Pajcala). Komentar: V Pasca- lu je zadovoljiv konstrukt WHILE true DO BEGIN IF alarm THEN EX|T (*all 'GOTOlll'*)j END> 111: "LOOP" konstrukr |e po mnenju večine nepotroben. 3.4.3. Manjkajoči "ELSE" v "CASE" itavku. Komentor; Smiselno bi bilo dodati "ELSE" ali "OTHERVVISE" korutrukt v "CASE" stavek, taj zahtova malenkoitan popravek provajalnl- ka. Novejii prevajalniki ga večlnoma Imajo. 3.5. Slabosti 3.5.1. Vrstni red evaluacije Boolovih izrazov. V poglavju 3.1 . imo omenili, da ni |asno, ali se ovrednotijo vti pod- Izrazi v Boolovem izrazu tlpa "pl and p2", ali te vrednote- njs prekine £im prevajalnik ugotovi, da je "pl" falte. V naslednjih treh primerih vidimo pradnosM avaluacija t prakl- nltvljo: WHILE (l<= MAX) AND (o[l)<> 0) DO ... VVHILE (pOnll) AND (pt.vieblnaO likgna Vteblnp) OO... VVHILE NOT «of(f) AND NOT (ft = '«') DO ... Komonfar: V prlročniku bi morall določtri način ovradnoren|a Boolovih Izrozov. Precej boljje |s ovrednotenjo t pr«klnllvl|o. 3.5.2. Datoteko. Standardni Paica! nlma dafinlranego pova- zovanja loglčnlh datotek z ddtotekam! v oparacljikem »Ijtomu. Nima ilnfakso za branje In pisanje po dafotekah z diraktnlm dostopom. Nlma Indeksno tekvencialnlh datotek. Okanc« v datofekah je vedno Inicializirano na tekoče masto v datotekl, kar otežkoia interaktivno delo. Prl branju numarlfnlh podat- kov je ofeikočano teitlronjo konca datotake. Komontar: Opl» odpiranja datotek all branja po datotekah z diroktnim dosto- pom |e moino vezan no operacljiki tistem, zato so slntakHč- no mo4no razllkuje. Večino teh problamov je zadovoljivo re- iena na konkretnem prevajalniku. Hujia pomanjkljivost je po- manjkanje indeksno sekvenclalnih datotek na vačini prevajal- nlkov. Le redke verzi|e Pascala (Paicol R) jlh Imajo. Na iploino pa >o datotoke ilbka točka Paicala. 3.5.3. Prlrejanje začetnih vrednosti. V Patcalu n« moremo uporabitl naslednjih Izrazov: CONST n = 10, m = 20, I = n * m; VAR a: array[ 1.. n*m| of Integer, BEGIN a := (3,4,5, ...) Prav tako no moromo deklarlratl začetnih vrednostl iprsmen- Ijivkam pri dekloracijl, ne obtraja ekvlvalent "DATA" »tavku Iz Fortrana. Komentar: Prirejanja začetnih vrednosH bl lahko zelo enastavno dodali v prevajalnlk. Nekatorl provojolnlkl Imajo dano to možnost. 3.5.4. Nezmožnost dirokfnega dosoga roiunalniških eno». Pajcal nima posebnlh konsrruktov za stttemsko delo kot npr. Modula ali C. Komentar: To naloga lahko realizirai z zbirnl- kom, kar pa šo vedno ni enakovredno jezikom za slsterrsko dolo. 3.5.5. Pomanjkanjo "lastnih" spremonl|ivk. Patcal nima lott- nih spremenljivk, torej podprogram na mora ImMi ivoja spra- menljivko, ki bl obdrzala vrednost do ponovnega klico podpro- grama, ne da bi bila vldna viam ostollm podprogramom • kof npr. globalne ipromenljivke. Komentor: Zaradl valHcaga poma- 47 , na slcrltih ipremenljlvk za ločono prevajanje In knjlžnlce b! , bilo imiselno dodatl lastna ipremenljivke. To n« bl zahteva- lo velilco popravkov prevajalnika in.pogosto najdemo rovntne | možnasti v novejiih prevajalniklh. 3.5.6. Neučinkovitosr knjižnlc. Knjižnlce 10 neužinkovite zarad! Jtroge kontrole prenosa parametrov (t/pe checktng) In pomanjkpnja skritih spremenljivk. Zato je v večinl obstoječih •• prevajalnikov npr. nemogoče napisati funkcijo, kl bl izraču- nala dolžino poljubnega niza (pocked array (MINX .. MAXX) of char). Novl ISO standard /9/ \o slcer omogočo, vendar »amo za tabele. Problemi z dinomičnimi JlTukturami (seznami, drevesa) pa ostajajo nerešeni. Komentar: Pri ločenem preva- jonju in pri klicanju podprogramov v zbirniku nl kontrole H- ; pov, vendar fo ne omogoča sploino uporabnih podprogramov npr, za procesiranje dreves. To je precejšnja slabost, ki pa |e nl mogoče enostavno rejiti. Nekateri prevajalniki kof Pascal 2 pa omogočojo prenose fudi brez konlrole tipov. : 3.5.7. Nezmožnost ločenega prevajanja in procesiranja v realnem času. V standardnem Pascalu ni govora o ločenem prevajanju ali o komtruktih za nadzorovanje procesov v re- : olnem času. Komentar: Večinia prevajalnikov pmogoča ločeno ' prevajanje, vendar vsak na svoj način. Nezmožnojf ločenega prevajanja je ena večjih jlabostl Pascala. S pomočjo podpro- gramov v zbirniku lahko na večini računalnikov procesiramo v realnem £asu fako, da podprogrami v zbirniku kličejo pod- programe v Pascalu. Ta niožnost pa zahfeva globlje poznava- nje zbirnika, pascaiskega prevajalnika in operacijskega siife- 4. Anketa o Pascalu • V revlji Slgplon Noticej so objavili rezultate ankete o Pasca- lu /11/. Tu itavilke pomenijo Uevilo pozitivnih odgovorov. ; Prednostl Poscala: 30 kontrolne strukture 26 podatkovni Hpi 20 stroga kohtrola tipov ' 14 preprostost • 8 prenosljivost ' 5 dobra čitljlvost 4 rekurzija 4 kontrola mej : Slaboiti Pascala: . 7 nezmožnosl ločenega prevajanja ' 6 omejeno branje/čitanje 5 stroga kontrola tipov 3 slabe možnosti procesiranja nizov Zakaj uporabljdte Patcal 13 ker je prenosljiv * 12 ker je enostaven za uporabo 10 ker omogoča dobro itTukturironje 6 ker omogočd itrogo kontrolo tipov : . 8 "ne uporabljajo Pascala, ker obstaja boljSi jezik (na[- pogosteje omen[eni |o C) (opomba - verjetno so vprašanl miilill na uporabo jezi- ka na sistemskem področju. C je verjetno bolj uporaben za sijfemsko delo, manj. pa za ostala področja). 5. Prlmerna in neprimerna področja uporabs Standardni Pascal brez dodorkov je primeren za: - pisanje prevajalnikov - procesiranje tekstov - pisanje uporabniških programov, npr. edltorjev - procesiranje nenumeričnih podatkov .--•"" - procesiranjo dreves, seznamov in drugih kompleksnlh po- dafkovnih tipov .'•''. - nekatere matemaHčne probleme - za učenje - za ptsanje splolno prenosljivih progromov. Brez dodotkov je manj primeren za: - sisfemsko programiranje . - apllkacije v realnem času in kontrolo procesov - paralelno procesiranje - konstrukcijo yelikih programov - numerično analizo - oplikacije, ki zahtevajo jndeksno lekvenclalne datoteke - nekatere poslovne aplikacije. , Velja poudaritl, da lahko ža večino mpni primernih področlj učinkovito izboljšamo lastnosH Pascala, tako da uporoblmo pod- programe v zbirniku ali Fortranu. Poleg tega lahko uporablmo - bolj specializirano usmerjene verzi|e kot USCD Pascal zo ml- ' kroročunalnjke, Pascal PLUS za diskretne timulac!|e ln Con- current Pascal za aplikacije v realnem času. Novejši Pascall uspeino rešujejo veilno fu omenjenlh problemov 6. Zakljudna ocena Nekaj slabostl Pascala bi lahko z minlmalnim frudom odpravlll, tako da bi Imel prevajolnik malo popravkov, funkcijsko pa bl bil Pascal precaj močnejši. |n nojbrž bl moroli vsokomu Pascalr ikemu provajalniku dodatl indeksno sekvencialne datoteke. Pre-» cej kritik je nemogoče rozrešiH, ne da bi se prevajalnik In jezik pretirano roziirMa. Večino omen|enlh problemov imajo novejši Pascali običajno dokaj elegantno reSanih. Kljub viemu pa je Pascal po svojih lastnostih vorjetno eden najboljiifi pred- itavnlkov algorltmlinlh iploino nomaniklh jazlkov. Jazlkl ko» FORTRAN, COBOL, BASIC all PL/1 «o v splošnam ob- |«ktlvno naka| tlabil, čeprav to prlmern«|il *a dolo£ana po- droč|o. V»l|o na»ledn|a: Paical (in podobni (azlki ko» MODULA-2 all Inačlc« AOE) |* ver|ofno «dtn najboljiih iploino nameruklh jozlkav, iaprav ikora| na vtakam ožjam podroifu lohko najdemo j»zlko, kl $o boi|JI kot Paicol, Uilnkovitcut novejilh Pascollklh prevajalnlkov tako glada dolžlni koda generlranega programa In hltrottl tzvajanja ko- d« je priblUno taka kot prl novejjlh Fortransklh prava|alnl- klh /12/, tore| oblča|no neprlmorno boljia kot prl BASICu, COBOLu all PL/1 . Vellka »labojr Poscola o»ta|a ilabo pro- gramariko okol|a. Programer vellko iaia porabi za to»llran|« programov. Jozlkl (bolje reieno programjko okol|e), ki omo- godajo lodeno prevojanje, uspeino testiranj« (debuggar) in lma|o interpraler !n preva|alnik, ter vis to Infegrirano In Ijtočosno dojlopno, to blitveno bol|ie orodje zd teitiran|e, kot pa npr. Paical. Tudl Pascaltke knjlžnlce t iploino upo- rabniml podprogram! 10 lo redkokdaj komorclalno dosegljiva in jlh mora uparabnik pitati tam, ie zlostl kadar bl rad od- pravll kokino pomanjkl|ivo*t Pascala t podprogramom v iblr- iiom jeziku. Ravno to pa je področjo, k]or lahko v naslad- n|lh lotih pričakujomo najvačjs korako napre|, 7. Literaluta 1. E.B.Lev/: Tho Caia Against Pascal as a Tsachlng Tool, ACM SIGPLAN Notlcej, Vol. )7, Num. II, itr. 39- 42, hovember 1982 2. D.A. Watormon, F. Hoye»-Roth: An Overv!ew of Pattern-Dlrected Inference Sy»tenu, Acodemlc Prajj, 1978 3. M. Goms: Pomen in vloga znanja v littemih za inter- okcijo z uporabnikom, magish-iko delo, junij 1982 4. J.L. Elihof, M. Marcot(y: Improvlng Computer Program Road!bllily to Aid Modification, CACM, Vol. 25, Num. 8, itr. 512-521, avgu»t 1982 5. R. Callllau: How ro Avold Getrlng SCHLONKED b/ Paacol, ACM SIGPLAN NoHcos, Vol. 17, Num, 12, Ur. 31 - 41, decomber 1983 6. R.E. Sumner, R.E. Gleovei: Modu\a-2 — A Solutlon ro Pascal't Probleim, ACM SIGPLAN Notlcat, Vol. 17, Num. 9, itr. 28-34, tepramber 1982 7. R. Coilllalaut A L«tt*r to Edltor, ACM SIGPLAN NoHcai, Vol. 17, Num. 12, itr. 10- 11, dacambar 1982 6. K. Jaman, N. VVIrthi Poicnl, Uiar Manual and Raport, Sprlnger Varlag, 1978 9. Sacond draft propoial ISO/DP 7185 - Spaciflcation for tha Computar Programmlng Languaga - Patcat, Paical N«w», Num. 20, dacamber 1980 10. N. Wlrth: Tha Doilgn of a Paical Compller, Softvvar« Practlc« and Exparianca, 1, itr. 309 - 333, 1971 11. K. Mogol: A Raport on o PASCAL OuatHonatre, ACM SIGPLAN NoHcoi, Vol. 17, Num. 10, itr. 23-33, oktober 1982 12. Benchmark test na Oulcktortu, Spoclal Softvvar« Llmltad, Informatlca 3, itr. 77, 1982 13. M. Goms, I. Brotko, V. Ba»agel|, R. Rolnhardt, M. Martinoc, M. špagal, P. Tanclg: PASCAL I (prlmerjava z oirallm! |ezikt), Informatlca I, itr. 22-26, 1984 Novic« is Institut* "Jolof Stt»f »n " enok*i-tiCni tip» HEC Pod vadatvom M.H.Milstič* Jtf bil rtzvit snoknt- tični Mlkror»eun«lnil< MMA-li z rCCovim iA-bit- nlm KiikroprocvuorJem T-ll. ki upor*blj*» op, Pno»r««i J« v P«- kotu z puttn*mi z* izrimov«nj» »hom. fllmov in lid«l«vo tr«kov z« nuuritno kr«illj»ni vrt«lni •troJ. A. p. 2»l«znik«r