INFORMATICA 3/1982 IZKUŠNJA S PROLOGOM KOT J E Z I K O iVi ZA SPECIFIKACIJO INFORMACIJSKIH SISTEMOV DAMJAN BOJADZOJEV, NADA !GOR UDK: 381.3.0.8:007 INSTITUT JOŽEF STiFAN, JAMOVA 39, UUiUANA ViooRonlvoJoKi prosrnmdlU JosiH PRfH.on omn proizKusili Kot opoflifiKnniJolto erodJo pri pasveju znlUouno «pJiknn*Jfl. BIRTIOK nnJpreJ opifuiJR prohlem speniPiKopiJo KofHPloKonih PPeapamolUh paitofcev. Nato obrnunnv« prndnoBtJ upnrRhs losikfi lint formalnooa opooiPiKaoiJoKooa JaslKa 2n PROLOBa Itofc enootaunoaa izv»d)JJvflBo JoaJflnsss formaliimB gppcJFJknciJ. OPioano ao naflo isKuflnJo Pfi pponoou ISAC opooif lKaoi J rniuma] ni 9llo podporo konkretneas sk]adJ8Hneoa oiat.omn v PROLOOou preopara In povratni uflinoK tostirmnJa PROLOaoueoa prnorBmH no gprofneniinJanJo in PoalablJonJo opooiPiltaoiJ.. Podano JB na«a onena PROt.Onn Ko» soJn uporsbnoaa gp»nJf i Kaoi JoKooa JosiKa - ob tow nauaJatiio nJoaovo Konkrotno uaotoulJono prednngti in slabosti. EXPERIENCE WITH PROI.OO AS AN INFORMflTION SVSTEMS SPECIFICATION LANGUAOE. Wo hcvo uood tho hioh-louol proaradimlna lanauaao PROLOG as a speoificatJon tooJ for the dovelopment of 'a aompio« applieation s/etGM. The article first dosoribea thQ prohlem of speoiFi-ino OOMPIOK proorara pnoKaaoa. Thon it deaoribes the advantases oP usins losio ss a formal spaciFioation lanouaao and PROLOG in partioulor as a siMPle runn«bje Formaljsm. He desoribe our GKPerianoe with tranoPorraino tho ISAC aPGcifioationfl of B coniputerised uarehouse sratem into s PROLOG proaram. WQ also acntion tho PoodbacR from tcjotins and demonstratina the PROI.OG prosram to the chanae and further development oF SPQOifioation. The advantaaes and some ueaknesses of PRDLOG as a speoifir.stinn Jansuaae are prescntedr supportino our opinion that PROLOG is a very useFul and eFFinient specifioation tool. 1. UMODNI OPIS PROBLEMA ProaramsKi JeziK PROLOG smn preizKusili Kot speoifiKaciJsko orodJe pri razuoJu rafiunalniSKesa sistema za podporo poslovanJa skladiS6no prodaJneaa oentra SloueniJaJes u firnuflah. Sproa smo se loti])' proaramj ran Ja poenostaul Jenesa modela sKJ ad) Sttnesa posjnuan.is «j PROLOGu zaolj iz lelje PO -testtranJu hitros.tl proaramironJa ter obnaSanJa PRni..ORoyeaa proaranta pri simulaoiJi neKesa reaJneaa procesa. Ker pa se Je irliazalo, da lahko PROLDCi uporabimo kot zelo uKinKouJt jppcif ifcao Jslii Jezik (s staliStia hitrosti proaramiranJa) • smo nadaljevali s prosramiranJem vse realneJSesa rnodela skladiSfia. PrifiaKuJemo, da nam bo Podrobno razdelani proaram u PROLOGu trdno vodilo pri implementaciJi sistema v izbranent prosramskem Jeziku da se ne bi bilo treba uraSati na preJ*tnJe. M praksi pa ne moremo douolJ podrobno usebinsko preveriti formalnih spociFikaciJF da bi uaotouili. Be ustrezaJo uporabnikouim zelJam. speciFiKaoiJe namrefl ponauadi niso izuedlJiver roBno preuerJanJe pa Je muKotrpen posel. Zato raJe zaflnefno s proaramiran jera lilJub zauesti. da speoiFlkacije naJbrz 9e niso doKonftne, V primeru sprememb to pouzrofii preprosramiranJe sistemai Kar uteane biti zelo zanudno in neustuarJalno opravilo. DeJansko Je naJteSJa in naJkreatiuneJi!a Faza v razvoju proaramskeaa šistema prau izdelaua spreJemlJiuih Formalnih speniFiKaciJ iz intuitiune interpretacije problema. Zato Je Koristno izbrati tako orodJei s katerim Je konstruiranJe in preuerJanJe speciFikociJ fiimbolj olaJSano. To prouerJanJe seueda ne oiare pomeniti dokazovanja pravilnosti spec i f j l;ac > j slede na našo intuitiuno sliko, temuet! Je uaotaulJanJe ali se na testiranih primerih obnaSaJo tako, kot smo si Seleli in preduideli. 3. POMEN FORMALNIH IN I2VEDLJIVIH SPECIFIKACIJ Uporaba Formalnih speciFikaciJ [103 nauaJa naSrtoualca sistema ' k odstranJovanJu neJasnostii duoumnosti in skritih protisJouij pruotnih speoiFikacij, podanih u poaooornem Jeziku. Zato ni fludno, da loaika ze dalJ (asa sluzi kot preuerjeno FormaJno speciFiKsniJsKo orodje. LoaiKa Je lahko razum]Jivar opisns in s suojim mehani zmotn dokazouanJa izrekou omosolia odKriuanJs protislovijr Ki so se ohraniJa u formalnih speoiFikaoiJah. 55 Hs Je i»peoiPikaolJ«ki JezJk tudj direktno <§trojno> izuedlJiu. lahko brez dodntnih naporov preusrimOf KaKo se bo sistem obnaSal u posamaznih primerih. TedaJ p.oatane »etoda "pa PoaleJmo!" zar«s oporaHun«r preverJanJa . intuitivneaa razuMtuanJa problema in Korektnosti predlaaane reOitue v KomuniKaRiJi z uporabmKom pa dobi KonKretnOf "otiplJivo" izhadiSee. IzvedlJiuoat »peo iFi kani J tako omaaoea limulaoiJo obnaSanJa ilstena pred nJesovo doKon(!no> "zaresno" intplcoienlaoUo, Kar prinese yrsto oBitnih prednosti. V primeru speoif ikaoi J, podanih v kallHnem loaiBnem Formalizmu, J» nJihoua izuedlJivost dana z MehanizMOM doKazovanJa izrekov 151. MpratanJ«! kakilno bo obnaSanJe. sigteraa • -•,.«/ posameznem primerur si nsiiireb preuade na vpraSanJ«, ali Je Pormalni zapi« prvotneaa upralfanJa izrek loaiBneaa sir. tema, Kateresa tvorlJa speoiPiKaciJsKi stauKi. Tako lahKo preverimo• ali se bo sistem u dolnHenem primeru res obnaSal taKo, kot si to zeliftio: (Ali) vhodu 1 ustreza izhod 1 ? Na enak naflin lahKo jiuimiii KaKSno obnalanJe praduideuaJo speoifikaoiJe pri dnJoHeneM uhodu! (Kateri so izhodi X. da) uhodu 1 ustreza X ? TaKo lahKo enostavno odkrijemn nepraujlno«t all nepopolndst speaifikaoiJ in Jih ustrezno fpremenimo.. Opisani riattin prever.ianja specifikaoij Je aotouo hitreJSa in ufiinKauiteJSB alternatiua obiSaJnemu preuerJanJu proaraniou, saJ - od uporabniHa dobimo pouratne inForMaciJe douolJ zaodaJ - omeJimo se zaolJ na vsebinske spremembe - pri tem se nan ni potrebno ozirati na uflinkovitoat. K»r «e v komuniKaoiJi z uporabniKom prepriHamo v uatreznost (popraulJene.) Pormalne reSitue, narri pri preuerJanJu pravtlnosti Kontinoaa proaramar v nasprotJu z oh i tiaJnjni preuarJanJem prosraniai preostane le Se odltriuanJe proaramerskih napaK. Uporaba UaiSnih PorMalizmov ne narelluje lzbire proaramskeaa JeziKa pri KonKni iraplementaciJi. Dovolj podrobna loaiCna spec i F i KiioiJa ge sioer 9 stalifiCa UPorabniKa razljKuJn od KonBne verziJe sistema nadelno samo po uBi nllovi tost i. DrusaOe reHeno. loaiKna tpeoiFiKaoiJa Je Ze lahko znosno uBinKovita proaramska reSiteu naCrtouaneaa sitlema. Izoed)Jivost losienih speaiPikaoiJ taKo zabrite tradici»nalno razliko ned speoiPJkaRlJn in ustreznim proaraMon C43. tllj. zamfca; p :-. PI, P2. Pn. U posebnem primeru n»0 ao to brezpoaoJnB trditue ali deJstua. Kar st u PROLOOouein zapisu izrazi s P. PROLOGoua omeJltev na Hornou« stauk« Ji Koriatna predu*em zato. ker ob enottavni kontrolni »trukturi omoaofla " uflinKovito izuajanje »Klepou. ki »ledjjti iz postaul .leni h trditev., S tent pridobl Hornou« Inaika status vlsoKo-nivoJskesa. deKlaratluneoa proaramskesa jezika. Loaika Hornoujh stavllov Jt» tudi bliUJa ftandardnim f ormal 1 zmoni raKunal nl 0k» znanosti. PO »uoJi prooeduralni i nterprotatii Ji . Ker namrefl Horno»i stauHi- rodunirn.io • r»»et>n!>Je problema P na relavanJe podprnb]emov Pl....»PnFi lahko v PunkoiJi Pi-Jev n izdaJe blaaar inuenturo, obraunauan Je reltlamaoiJr uodenJe zaloa (KolifilnaKo in proetorsKn pp paletah) tpr Komurti kaci Jo s oentrom. Pri razuoJu sistema SMO naleteli na prenakatere tezaue. Omenimo gano tlabo definiranost nattina poslouanJa bodotleaa aKlad4«t)a » strani uporabnikSf Kar Je poteanilo za seboJ ueliko, Stevilo spremenib speolPikaoiJ. Zato smo ie poj neKaJkratnem spreminJanJu speoiPikaniJ zaButili potrebo PO poenoataulJanem in lahko fpremenlJivem modelu poalouanJa «KladiHHa. V zafietni Pazi speoiPioiranJa problama srao Kot orodJa uporablll I3AC mstodoloaiJo. Ta metodoloaiJa ae Je izkazala kot Koriatna pri Komuni Kac l Ji z uporabnikom zaradi mniSnOBti araPiane predetauitve problema. ISAC araPi namrefl omoaoCaJo struKturiran prealad nad aktiunostml ter pretoKi materialnv in inPormaciJ u iisternu C90. 4. PROLOG KOT SPECIFIKACIJSKI JEZIK LoaiBni Formalizmi, med nJimi atandardno pradlkatni raflun» so bili, i/aa.i do pojava PROLOGar »lrSe apraJeti predusem kot speai- PikaoiJaki JeziKi. Moznoat direktne uporabe npr. predikatneaa rafiuna knt proaramskeaa Jezika Je u praKni ostala naizknri««ena zaradi neudinkoui tbat i ustreznih doliaznualcev izreltou. Ta aituaolJa »e Je «premeni]a * po.iauituijn PROLOGa C2Jr ki implementira »ibkeJHi, a izrazno dovolJ naraven in upnraban podJazik predikatneaa ratuna. Predikatni raliun Je w PROLOGu oneJen na tim. Hornoue uavKe. ki izra*ajo poaoJne trditue < l«ip] i Kaoi Je ) tipa (le Pl in P2 in ... in Pn, potera P kar •• npr. u DEC-10 PROLOnovi aintakai TBJ BliKa prikazuJe del ISAC arsfa, It i poeno- atauljeno modellra preuzeM' blaaa. V arafu sntn •jporabili naalednJe - za uhodno - izhodne datoteka liatina 56 V aKciJi A skladiSKniK proKo torminala uness SiPrg prevzetih artiKlou. Na osnoui onoooniti podatllou V akolJl B oisteoi predJaaa pajmna nn39ta> na Katera noJ ae blaao vsKladidei. IzplBe oe doltumen« UflHIadiflflnica. na podJaai kateresa se hlaso fiziHno vskladi8()j. (Je iz hakfli razlooov MOKladiHUenJ» na produidana palettia mesta ni biJo moanHe. se spremembe reaistrirajo v aKoiJi 0. Ma podlaai «al(o poprawlJono usKladiS«nioe «o automntsKo aSurlrata slnnJe zaloa (kuraulatiuns Kolifline artiKlou) io fllonjo oKladiBiia (KaliHine artiKlov PO paJetnh). senorira in izpifio ae prouzaanioa. 57 - za aK t i unos t i ". 2 usebino problema> saJ reSevanJa te posKrbJJeno. POStOPflll - | / - | I Zaradi nenehneaa uporaba ISAC Kreativnesa 8o doKumentiranjem aut oniat i zem interakciJa fi 1 ovek-stroJ roflno spremj n.ian Ja SPBO if i Knc, j J je metodoloaiJe zahteuala polea oaromno roKnnaa de)a . z razvoJa v razliKnih besedi.l j.h. • tabelah in arafih. Poles teaa nam s talio predstaul Jeno probJematiKo nj USPOJO poaltibiii BpeoiFikaciJ od ne(ie3a nivoja da!JR. V teJ Fazi razvoJa sistema smo zafiutiji r»otrebo po druaafini oistematizaoiJi funKciJ in sradniKov sistema. Ob dojoflitvi aradnikov amo uaotovilir da se FunkciJe Jahlio realiziraJn z razliflnimi KombinaoiJami teh aradniKov. Ker se Je izKazalor da Je u PROl.O(ju ennstavno realizirati in sestaulJati osnovno gradnikei smo se lolili proaraoiiran ja- •• efi gradnJKoy in sestavlJanJa poenostavljenesa modela sistema. Za pisanJe proarama. Ki Jfl obspaal prjhj]2nn 150 vrstic PROLOGove Kode, r,mo porahiji piK)a dva dneva. Zaradi hitrosti jn preprostostj proaramiranJa "y PROLOGu smn mndel razvi.iali naproJ. Osnowt>e POstopKe sirio pril)JiSaJi rnalnjn zahtevam ter uvedli 5c prenpt alo funkoijo sistema. V naslednJi fari smo y prosranni uporabili 'tatio oraanizacijo podatKnu^ KalirSnn bo realizirana z.izhranim sistenna za deln s podaiKovnimi bazami (TOTAL). ',' Knnutn i liao i J j z uporabnikoAi SMO se pri hj i !•.-»].i bndnRi renlni verziji in razdelali SPVRM! JaJofte pndiof: J nnien tac i J ) WOC!P).A liodnHesia aK lad i flKneaa sistema so se poKazale marslUatcro dohrc Ustnosti PROLOG.M C9.1 . V ueliKi meri snin r.n nas 1 an .ia J ) Ki slediJo iz natelne deK 1 ara t i un Dsa opj.tia prnti J nmny. otiioaotia POMsem deKlarativno croar inia Se vsra.ienn isnntrnlnn »oinostii da onioJimo sinor izoaJanJe proarama, PRO| flfi nt Kontrolnih Kons tnjf; t o>; (npr. 50 pri d f? f i n ] r.) .h' ^l^nritmov na uandnostir zadostnoati PROt-Ofi n.Thiroh roarHnu r^ri.ie r Kor stn.isti.iro. Razen neflo t. r>rm j rii s t i Bnn potrnbu.is nohenili iiornni ,ic). Talifi lahKn ut; v.Ti^iamo le Ker delovanJe PRDLClfi proarnma temelJi na unifikaoiJi. eKsplioltnl prireditveni KonstruKti niso potrebni (razpn pri yrednnten.iu ari tniet iBnih izrazov>> Kar omoaofta hitreJSe pisanJe Jasnih in Jerfrnatih proaramou. K jedrnatosti proaramov prispeva tudi deJstuo» da deKlaraciJe podatKounih strulttur nisn potrebne CU. ObliKa zapisa ter»nu Se sama implioitno deFinira onpaa od spJoSnih podatkovnih tipout za dinarniftno dodelJeuanJo pomni lnilia Med izvaJanJe proarama pa sKrbi Kontrolna struKtura. S FunKtorji lahKo terme pouezujemo med sebnj y liomplelisnn podatltnvno strukture. Ker ni potrebna vnaprejSa dePinioiJa tipou podatKovr lahKo z uporaho Funlltor.iev struKture polJubno pnalahJJamo« ne da hi nam bilo zato potrelino spremin.iat) uiSJe nivoJe proaramo'.' in ne da bi bilo trnl>a struKturo prodvideti y podrobnosti vnnpreJt Kar Je za hitro proaramiranJe histuensaa Jedrnatos t PROLOG prnsramou in f I nKr. j b i 1 nos t omenJanJa podatkovnih. striilltur ponarar.ia prepis •irafa na sliKi 1 <> proaram: prevzem .- 'jnos-Preuzemnice predlo3_praznih.palet (ArtiKel. Kolicina, Palete.kolicine. Prazne.palete.Oi Prazne.palete-1) • brisi (stanJe_;Kladisca r vpisi (stanje.skladisca (Prazne_palete_t) )> ssneriranJe.uskladiscnice (PreuzeMmcat ^aKla Ker 50 K PROLOGu use sprpmen1Jiuke lokalno stauKur v Katereni se nahaJaJo. Je prealednost in berl jivost posaftteznih proraramo*/ ustreirnn vetlja kot u Monueno ional n i h proaranull i h Jeziliih. £tayki onp proceduro so med sehoJ neodvisnii Kar pomeni. da J) h JahKo dnda.iamo in odMzemamOf nc da bi morall spreriii n Jat. i preostale, Seueda pa. to ne velja, (Je imamo pri prosramiran ju poiinnif?zn) h staukov prnopdMrfl ?e y mislih nJihono pastopkouno ) n» prprptan ) ,ln . Ta naCin , prosirantiranJa smo n i cnr postnst. o 'uporablJalir saJ si z nJim prihr.Tnimn dndntno pisanje in pounflnmo pmn) ectnnr-1 proaramou. Zaradi prealednosti prnarflmov in JokaJnosti sprBmenl Ji Kateresa amo upnrablJoJ1r Jo to mozno le do neKe imero. OmeJene uhodno-izhodno moSnosti PROLOGa nao niso oMirale pri i-eal i zrao i J i modelor nanprotnor 'i zafietni Fazi smo lzKorietlli možnost preprosteaa izpiaovanJo polJubnn Konp) oltsni h podatkovnih struKtur. Podatllovne gtrultturc otno namreB preteSno reaMzirali u obJiUi tormour Kl so direktno lzplsliiui. Omenimo 3e nekatsrs latstnosfl PROLOGa, Ki so eo pri nafiern delu. izHazale Rot neuaodno. fiisti PROLOO, Kot roBenOf nina slobalnih spremenlJivK (Kar smo mu zsoraJ Qtoli u dobro)r douoljuje pa njihoi/o simulaoiJo z dodalnimi meta-loaifinlMi KonotruHtl. ZaneslJiua uporaba teh KonstruKtov zahteua doloBffno rasro natanCncsa P03topkouneaa razoiB1JanJar Hi lahfto postane deliHatno zlasti pri realizsoiJi podatkavnih struKtur u obliKi mnoSloo doJstou (namesto eneaa "seznamsKeaa" deJstva). ZasledovanJe izuaJanJc proarama pri odKriuanJu napall je uHasih nellnllKo teSJe Kot alodenJo izuajanja proarama v druaih proarausKiti JeziHih zaradi nJeaoveaa nadote^minizma. Pri ronlnih apliKaoiJah bi se Kot PROLOGouo hlba izliazalo doJatvo. da PROI..DG ne podpira realnih ^teuil. ImplomsntaoUar Kotero sno uporablJali (RT-11 PROLOG). pa ne podpirs nitl nesativnih celih fltevilf.Har Je zahteualo neKaJ dodatnesa dela pri jjmp) emi?n taniJi modpln. 7. ZAKLJUBEK Iz povedaneaa Je razuidnor da so naSe pri uporabi PROLOGa Hot speoifiKaoiJaKeaa JeziKa zelo pozitlvne. Proarramiranje u PROLOGu je hitro in lanimivo. PROLČGou model omoaoRa uodeno poalablJanJe spsoiFlKaoiJ, slmulaoiJo obnaSanJa sistema nattrtoualou in upOrabniKu ter Jasno zasnouo realne prnarnmsKe fsBitue. Pri bodoflih apliKaoiJah se botno aotouo ttinoao prpJ lotlli proaramiranJa modela y PROLOOu« Itar bo omoaoailo ultinHovi to JSo , i nteraKo i Jo z UPorabnlKom in hitreJHo dafinicijo probloma. 8. LITERATURA 1. I. Brafclto. prtnoipi f). OoraoS Proloa: Oonouo Sn podaUt®«? lo«nilt 1980 2. W. F. CloKoinr C. S. Mollioh: ProsrataaJna Jn Pralos. Sprinaop-Voplaa. J8SZ 3. R. E. Daulo! Runnablo opsoifioacion oo a Dooian ToolF Proaoodinno oP *ho Loaia Prosraraaina Horhohop. Debrooon. HU.HJCITV. 1980 4. R. KOHOIOKI: Loato ao a CotnputBr Lanauoao» Dopt. op Coaputinar Irapes-ial Colloaor London. 3981 3.- R. KoualoHi: Loalo for Prablera SoluinaJ AI Sorlos, Elsauior Nor«h Hollond, 1879 8. L. M. Popairar F. Poroiro. D. Warrc?n: Uaor'a Oulds Por DEC-10 PROLOOi Dopt. oP Arti?ioiaS Intol1iaonooF Uniuoroitv o? Edlnburah, iS7S 7. E. 8antano-Toth. P. SzarodK PROLOO applioations in Hunoor/! Proceodinoa oP ttt»o Loalo Proararaiai no MorKahop. Dobrooon. Hunaar/r 1880 8. P. Szorodl. K. Baloobr E. 8ontQne-Tot,ts i 2o. LDM - a Loolo Baaod So