UDK : 6813.06:51^.682 MIKROPROLOG MATJAŽ GAMSMATJANA ZRIMEC" •INSTITUT „JOŽEF ŠTEFAN, LJUBLJANA" ••FAKULTETA ZA ELEKTROTEHNIKO, LJUBLJANA Podana je primerjava mikroprologa s prologom in izkuSnje pri pouCevanJLi. Hikroprolog hitro postaja ena najbolj razširjenih modernih variant prologa, zato je podana oc-^na sprememb in izboljšav glede na bolj ustaljene inatice. F'iglavitni namen mikroprologa pa je vzgoja, zato so posebej ^niliiirane vzgo­ jne poante tega jezika, zlasti izkuSnje pri dotil jene s pouče­ vanjem najmlajših uCencev in pri izobraževanju odraslih. A comparison is given taetween MICRO-PRDLOG and > iaiLOG and es- pecially experiences with teaching MICRO-PROLOG. MICRO-PRDLOB-. is one o-f the modern wide spread variants o-f PROLOG so it was interesting to evaluate improvements and changei; according to more standard PROLOGs. Since tha main purpose i>f MICRO-PROLOG is-education special čare was c!-?voted to e;;p!.ri;. ices with te- -žching voungest pupils and adults thus evaluitii-.g -full spe- ctrum of learning charaeteristics. 1. Uvod - zgodovina razvoja Idejna zasnova se pojavlja Sf? pot od ideje clo in premočrtna. 2" se je poj avi I.o p implementacij je ki pa je po vel i vanjih kmalu ner-i eden pegi a-vi tn i h prevladuje lisp. vnejSa implem-.-r, c mming in LOGi c ^ ( Ta veja se je rj podobnih ina"n; inaCic in verjetn obstaja v nekolik hi Sne ra-Cunal ni tu.' re 64. Prav t;>ko jskih siste.r.ih, MSD03/PCDCS /Z.'. nimo predvsem >• /3,4,5/. Posebej je položil tt?mi; /1,2/. F.G.McCabe ntator mikroprolo rjal predvsem goSke namene, Computer Language je potekala na I m ni j i od leta 1930 logike kot programskega jezika okrog leta 1V70 /1,2/, vendar realizacije ni bila enostavna s; nb prvih implementacijah pa vn veliko razpotje. Ena prvih Bil PLANNER 'Odnih primc-nh si oglejmo izraCanje v slovenCCini, prologu in mikroprologu, oziroma 81 dodatViu SIMPLE, ki ga dobimo hkrati s kaseto z mikroprologom ea mikroračunalnik sinclair ZX. Slovenščina: Jaka je aCe od Andreja. Prolog : oce(jaka, andrej). Mikroprolog: Jaka oce-od Andrej ' ali oce(Jaka Andrej) ali oce(jaka andrej) Komentar: Pri prologu se konstante zaCnejo. z malo zaCetnico, zato piSemo npr. "andrej". V mikroprologu lahko piSemo konstante z veliko ali malo. V osnovnem prologu imamo pre-fiksno notacijo, v mikroprologu (programu SIMPLE - glej dodatek 1) pa lahko izbiramo med pre-fiksno in infiksno notacijo za enega ali dva argume­ nta. ZaiveC argumentov lahko izbiramo med pre— -fiksno notacijo in in-fiksno z veC argumenti zdruSenimi^v seznam. Slovenščina: Prolog ; Mi kroprolog: Janez ljubi Majdo; ljubi(janež, majda), Janez Ijtibi Majda Komentar: V obeh prologih razumljivo ne moremo sklanjati, spregati itd., 'ie zlasti ne v slove­ nščini. Zato moramo povsod pisati popolnoma enake oblike besed. Slovenščina: Janez prodaja krompir. Janez je,zel je. Janez prodaja paradižnik. Janez je krompir. Prolog : prodaja(janež, krompir). je(janež, zelje). prodaja(janež, paradižnik). je(janez, krompir). Mikroprolog: Janez prodaja krompir Janez je zelje Janez prodaja paradižnik Janez je krompir Slovenščina: Ali Janez je in prodaja zelje? Prolog : JB(janež, zelje), prodaja (janež, zelje). Odgovor : -^VES Mikroprolog: is( Janez je zelje and Janez prodaja zelje) Odgovor : VES Komentar: Konjunkcije (AND) delamo v prologu z vejicami, v SIMPLu z "and". Disjunkcije (OR) obiCajno delamo z veC samostojnimi stavki. Slovenščina: Kdo je in prodaja krompir? Prolog : je(X, krompir), prodaja(X, krompir). Odgovor : X = janež Mikroprolog: whi,ch(X: X je krompir and X prodaja krompir) Odgovor : Janez- Komentar: Spremenljivke so vezane znotraj enega stavka, to pomeni, da mora X znotraj stavka imeti natanko isto vrednost, dva X-a v dveh 5tav^^ih pa nimata neposredne povezave preko imena. Spremenljivke v mikroprologu so !<, . X, y, V, z, Z. lahko pa jim dodamo Se Številko, npr.: Kil. Slovenščina; Prolog Odgovor ; Mi kroprolog: Odyc Janez pripoveduje:" Moja mama je, rodila otroka, pa mi ni ne brat ne sestra. Kdo je to?" mati(mama, janež). .kdo(X) :- mati(mama, X), not bratf.janea, X), not 5estra(X, janež). X = janež moja-mama je—mati—od Janez which(To je X: moj.3-mama je-mati-od X and not -Jat-if-r. jy-brDt-ud X and not X j*;'- ~?;^sitr£-.-crJ Jcsnez. To ( C .7 č»ner . Komentar; Pri takem presli kovanju iz naravnega jezika v katerikoli prolog je seveda treba upo­ števati, da je v prologu zelo malo predprogra- miranega znanja v obliki podprogramov. Zato moramo CloveSko znanje (angl. common sense) zakodirati za vsak primer posebej, npr. v zgo­ rnjem primeru moramo de-finirati relaciji "brat" in "sestra". Čeprav program tokrat pravilno deluje tudi brez tega. V teh primerih smo prviC sreCali i negacijo'- konstrukt "not". Primerjava med prologom in mikroprologom Eno zanimivih vpraSanj o mikroprologu (programu SIMPLE) je, v kolikšni meri so dodatki in spre­ membe boljSe kot v standardnih verzijah prolo­ ga. To' bi nam povedalo, v kolikSni meri lahko pričakujemo nadaljne spremembe v razvoju logi- Cnega programiranja. Odgovor na to je'precej opurtunistiCen, saj spremembe le malenkostno spreminjajo osnovni koncept. DoloCeni dodatki kot moSnost infiksnega zapisa so verjetno smi­ selni tudi za resno programiranje, za uCenje pa so po mnenju avtorjev izredno koristni. Drugi dodatki kot moSnost pisanja konstant z veliko zaCetnico so ugodni, vendar potegnejo za seboj težave pri pisanju spremenljivk (ni mnemoniCnih spremenljivk - glej /8/). Tudi pri pisanju nu- meriCnih izrazov na prvi pogled pridobimo v obrnljivosti in imamo tako eno izjemo manj, saj lahko numeriCni izraz obravnavamo kot obiCajno relacijo in lahko iSCemo katerokoli spremenlji­ vko. V obiCajnih prologih to ni .mogoCe, saj lahko raCunamo le v eno smer, npr. Y is X •*• 5,. v mikroprologu pa bi zapisali BUM(X 5 Y) in bi lahko raCunali X npr. s SUM(X 5 7) ali Y s SUM(2 5 Y). Nekatere druge spremembe kot pisa­ nje presledkov namesto vejic, pisanje "and" za' konjunkcije itd. pa so bolj ali manj oblikovne narave. Omenimo Se nekatere dodatne lastnosti kot ukaze za delo z nizi*, solidno realno aritmetiko (vsaj za jezike umetne inteligence), ukaze za delo z datotekami ... ereprav so doloCene oblikovne razlike, pa lahko v mikroprologu naredimo pral-.tiCno vse operacije kot v prologu, tako lahko uporabljamo tudi na- jmoCnejSe programske prijeme iz obiCajnega pro­ loga celo na najmanjših mikroračunalnikih, ial pa nekateri moduli skoraj ne pridejo v poStev na najmanjših raCunalnikih, recimb ukazi za sledenje izvajanju, saj na najmanjSih mikrora­ čunalnikih hitro zmanjka pomni 1 niSkega prosto­ ra. TehniCne karakteristike mikroprologa so' prav tako med najboljšimi glede na ostale inaCice. V enem stavku bi jih naSteli z: izredno majhen in hiter prevajalnik z nekaj opcijami (osnovni mi­ kroprolog, standardni prolog, SIMPLE...), modu­ larna struktura, izdelana komunikacija s peri— -fernimi napravami. Modularno progra Cji program raz manjSe dele in j izvajanjem lahk Ko potrebujemo k ntralnem pomni In ri-ferne enote (d vno odloifimo, ko lahko izvajamo p pa nam to omogoC omejeni centraln miranje je moCno izraženo. Ve- bijemo na logiCno zakljuCene ih deklariramo za module. Med o izvajamo samo nekaj modulov. akSen modul, ki ga nimamo v ce- iku, ga naložimo z ustrezne pe— iskete, diska, ...) in ga pono- ga ne potrebujemo veC. T-iko recej obsežnejSe programe, kol a pri mikroračunalnikih prece^; i pomniIni k. Tudi komunikacija s peri-fernimi napravami je zelo U'"i nt;ovi ta in enostavna, saj preko vmesni­ ki- R'3232 dosegamo naprave od tiskalnikov do aibl:ih ali trdih disk;ov. 82 '.Literatura o mikroprologu je dokaj solidna, ponekod pa Je nepotrebno prilagojena mlaj Si m uCencem. Oglejmo si primer is /4/ s strani 129: (x y) sums-to 2 if SUM(x y z) Kar preberemo kot: povpreCje od x je y, Ce je vsota elementov iz x enaka z in je x sestavljen iz X elementov in y = z/X. Podprograme "ima-vsoto", "dolg" in "deljeno" moramo sami sprogramiratis O ima-vsoto O (;: '. y) ima-vsoto z i-f v ima—vsoto zl and SUMCzl X z) Komentar: Vsota praznega seznama je 0. Vsota seznama s prvim elementom x in ostankom seznama y je z pri Čemer je y vsota zl in z « z 1 + X . O dolg O (X ! y) dolg z if y dolg zl and SUri(zl 1 z) deljeno(x y z) ii TIMES(y z x) Operacije nad množicami: X presek (y z) if x isall(X: X ON y and X ON z> X razlika (y z) i* x isall(X: X ON y and not X ON z) X C lan X if x ON X Komentar: Npr. presek: mnoSica x je presek mno­ žic y in z, Ce je sestavljena iz elementov, ki so v y in z hkrati. Tu smo sreCali konstrukt "isall", ki zgradi seznam iz elementov, ki ustrezajo logiCnemu pogoju v oklepajih. ZGODOVINA: (zaCetek druge svetovne vojne) datum 1941 In-formbiro datum 194S (konec druge svetovne vojne) datum 1945 which(x se je zgodil leta 1941: x datum 1941) (zaCetek druge svetovne vojne) se je zgodil leta 1941 which( In-formbiro je bil leta.X; In-formbiro datum X) Informbiro je bil leta 1948 Hitler je nacist nacist hoče nadvlado nacist hoče vojno UCenec skuSa odgovoriti na vpraSanje, kaj hoCe Hitler: which(;!: Hitler hoče x) No (more) answers (prvo vprašanje ni rodilo sadov) which(;;: Hitler je x) naciBt which(Hitler hoče x: naci! Hitler hoče nadvlado Hitler hoče vojno .t hoče >'.) S.l. vaje po uCni snovi ^•gle.imo nekaj vaj v mikroprologu (po vzoru i: /4/') najprej po uCni fsmetikii Z gradnjo cbseSnih baz, ki vsebujejo veliko med seboj povezanih podatkov, lahko uCenci povezu­ jejo informacije med seboj in se tako uCijo spoznavati povezave, ne samo gola dejstva. Po­ leg tega je enostavno pisati programe za simu­ lacijo zgodovinskih dogajanj /4/. Ti programi so prav tako primerni za uCenje zemljepisa, sociologije, spoznavanje narave, uCenje kemije ali arheologije /9/. 0 UtEUJE JE:IKOV Za Salo prepiSimo mikroprolog v slovenSCino: dodaj (::) ii adcl(:;) kateri (>,) if which(x) en(x) i-f one(x> vsota(X y s) i^ SUM(x y z) X element y i^ x ON y dodaj(Jane: ljubi Micka) kateri (>:: >; ljubi MickaJ Janez Poskusimo Se s prevajanjem med jeziki: I je jaz you je ti sun je sonce see je vidim hollidays je počitnice sea je morje and je in () angl-sl () (.:< ' X) angl-sl (y '. Y) i-f ;: je y and X angi-sl Y which(:<: x angl—si (jaz vidim sonce)) I see sun . which(;;: (see hollidays and sun and sea) angl -si' :;) vidim počitnice in sonce in morje Komentar: zaradi bogastva slovnjCnih oblik v slovanskih ali germanskih jezikih takSni prime— rCki niso tako uspešni kot npr. v angleSCini ali -francoščini. Seznam vaj iz raCunalniSkega vrtca je v dodatku Po mnenju avtorjev je ena vetjih prednosti pou­ čevanja mikroprologa ravno v obseini zbirki zanimivih vaj, ki so hkrati zanimive in pouCne. Tako se uCimo postavljati vpraSanja (query) v detektivskih nalogah, npr. iSCemo Jacka Razpa­ rala v podatkih o osumljencih, izbiramo miss sveta izmed kandidatk itd. Po drugi strani pa je zaporedje uCne snovi v /4/ nelcoliko prepoCa- =i tempirano za sposobnejše učence, saj prepo­ časi pride do praktičnega programiranja. Ena večjih pomankl j i vD!:ti' predvsem za mlaj Se Licence je poman j Jianje speci'-JI i ziranih konstru— ktov za risanje. Tako v basicu kot v logoju večina začetnega poučevanja temelji na grafiki, v mikroprologu pa kljub podatkom iz literature nismo u = peli dobiti po^sebne grafilje na.sinclai- rju !'•' in učnih' materialov zanjo. Seveda pa lahko sami napi^ioino svoje grafične rutine s po­ močjo izpisovanja l::rmilr:ih znal:ov. IzkuSnj poi ;evanjem v /4/ tnnals tir edst a-/! j a ^ols^.e materiale za britansi.i proj ekt (naj več v cblit;i seznama vaj). (Jčenje je potekalo v običajnih čolskih razredih z onim r a"un.il n i kom in velikim zaslonom. V ra­ zredu je balo 26 učencev v starosti 10-11 let. Pouk je potekal v okviru- rednega pouka in je t^-ajal 2 uri 20 minut tedenska. Učenci so imeli popoldne motnost učenjč' na šolskih računalni — k i h . - V Jugoslaviji je pote(::alD učenje mikroprologa na Institutu "JoSef Ste-fan" v okviru izobraže­ vanje, zaposlenih na Institutu in v ot:viru Raču­ nalniškega vrtca za učence v starosti 10-14 let •'l'"i/. F'oui St i ri na j :3t 1 h TiJ-.-d-^h u-čencev je pote­ gi-'. • ••• • r ličnih TiklGpJh \BD\:^t vo ave uri in 15 m:'^•.''. . 1 r v/'.;;"^* =r^;;'n J v ij-*: "i^; žt i ^- raposlenif' pa v TeSave pri poučevanju: Tečave pri praktičnem poučevanju so izvirale iz, vc;ti vzrok:Dv. Nekaj teiiav .ie izviralo iz opreme, tako npr. je bilo tipkanje na računalnikih Si­ nclair z gumijastimi tipkami izredno zamudno. Pri najmlajših učencih je bilo opaziti tudi probleme z motiviranostjo, saj bi se včasih ra-'.; jSi igrali kakSne" igrice. Pri izobraževanju ra.-, CunalniSko podkovanih kadrov je bilo opazno ra­ zumevanje tudi na globjeiti proceduralnem nivoju, medtem ko so učenci v računalniškem vrtcu osta­ li na nivoju deklarativno-intuitivnega razume­ vanja rekurzije in nekako niso uspeli preskoči­ ti tega praga. Rezultati testiranja: Ne predlog dr. M. Ribariča (idejni pobudnik in vodja celotnega projekta računalniških vrtcev) smo poskusili ugotoviti, ali je osnovni cilj učenja z mikroprologom uspel ali ne. Ker je osnovni cilj učenje logičnega razmišljanja, smo izbrali naloge — logične uganke - iz /11/ in primerjali rezultate testov ob začetku in koncu tečaja iz mikroprologa v računalniškem vrtcu. Učenci so refievali • pismene teste načeloma v sk:upi,nah po dva, tako kot je običajen način de­ la v vrtcu. Obakrat so imeli reSevalci na voljo 25 minut. V tabelah vidimo rezultate prvega in drugega testiranja. Številke na levem robu po­ menijo Številke nalog iz /11/, Številke na zgo­ rnjem robu zaporedno Število izdelka, enice znotraj tabele pa uspeSno reSene naloge. Rezultati prvega testiranja: 12345678 26 1 1 27 23 1 34 37 41 1111 1 1 1 1 1 3, izdelki niso dobili nobene točke Skupno 14 reSenih nalog, 11 izdelkov, število reSenih nalog na izdelek: 14/11 Rezultati drugega testiranja: 1 23 456799 1.27. 29 1 1 1 1 1 1 1 1 30 1,11 36 11111 1 3B 1 1 1 11 39 Sk:upno 22 reSenih nalog, 9 izdelkov. Število reSenih nalog na izdelek: 22/9 = 2.44. Rezultati testiranja nakazujejo pozitiven vpliv učenja mikroprologa na logično' razmišljanje, saj je Število uspeSno reSenih nalog na izdelek narastlo z 1.27 na 2.44. Vendar ti rezultati nimajo neoporečne znanstvene teče, saj je izstop,! lo nekaj učencev, ki jt imelo največ te- čav, tudi zasedba, dvojic ni bila enaka med pr­ vim in drugim testiranjem. Zaradi toga im«jo rezultati le i nt ormati vno vre-Pnost. V obeh te­ stiranjih so bile izbrane približno enako težke naloge, tako da je bila ena očitno pretežka, za ostale pa smo upali, da jih bodo lahko reSl1 i. Glede na dosečene rezultate pa so bile nekatere naloge le pretečk,e, zato bi bilo za veCjo obje­ ktivnost rezultatov smiselno ponoviti testira­ nje z večjim čtevilom lačjih nalog. Učenci BO se večinoma pr i t-DSeval i , da, so bile drugiC na­ loge tej je kot prvič. Kljub vsemu pa testi ka- iejD na to, da obstaja močan positiven učinek učenja mikroprologa na logično razmišljanje, saj se je pa vsem sodeč močno dvignilo povpre- č,'-- isti'', učencev. 84 Poglejmo si Število dvojic uCencev, ki so reSi- li po 1, Z, 2 in 1 nalogo v obeli merjenjih: Nalog PrviC DrugiC 4 1 O 1 ^ " 2 1 5 1 5 O 0 3 0 7. Diskusija Osebne izkuSnje; Pri prehodu s prologa na mi- kroprolog so doloCene težave, tez nekaj ttasa pa se pokaže, da je svoboda izražanja nekoliko ve­ tja v mikroprologu, oblika zapisa pa nekoliko enostavnejša. Tudi poučevanje v mikroprologu je bolj učinkovito. Kljub pogostim trditvam, da je prolog enostaven za uCenje, se avtorja ne stri­ njata povsem s tem. UCenje prologa je predvsem učinkovito in hitro, to pomeni, da lahko uCenci kmalu zaCrtejo pisati zahtevne programe. Pred tem pa morajo narediti zahteven miselen pre­ skok. Ta preskok je dokaj enostaven za tehniCno izobražene kadre, npr. matematike ali za usme­ ritve, ki podpirajo logiCno razmišljanje. Pri drugih izobrazbah pa se pokažejo težave. Pose­ bno rekurzija in proceduralni pomen prologa de­ lajo veliko težav tudi ratunalniSko izobraženim kadrom, ki so navajeni programirati v starejSih jezikih brez rekurrije (cobol, -fortran). Z mi- kroprologom je uCenje potekalo opazno hitreje in bolj uspeSno. Mikroprolog kot programski jezik: S stalifiCa profesionalnega programiranja mikroprolog ne prinaSa velikih sprememb glede na ustaljene inaCice kljub temu, da. ima nekaj dodatkov, ki nekoliko polepSajo logiCno celovitost jezika. Ti dodatki so vCasih celo nekolika dolgovezni s staliSCa izurjenega programerja, zato pa so ve­ liko bolj koristni za uCenje programiranja, saj ne samo olajfiujejo uCenje,. ampak omogoCajo Se nekoliko viSji - bolj deklarativni nivo in s tem dajejo možnost veCjega poudarka uCenju lo­ gičnega razmišljanja. Druga misel, ki se ponu­ ja, pa je, da je osnovni mehanizem prologa zelo moCno orodje, ki ga inaCice niti v peti genera­ ciji ne bodo bistveno spremenile vsaj z logi­ čnega StaliSCa. TehniCno-uporabniSko gledano pa je mikroprolog veliko bliže jezikom za pro-fesi- onalno programiranje, saj ima izdelano komuni­ kacijo z zunanjimi napravami, omogoCa modularno programiranje, prevajalnik sam pa je med najma­ njšimi in najhitrejšimi. Mikroprolog kot uCni jezik: Mikroprolog je ve­ rjetno Se nekoliko primernejši za uCenje glede na ostale inaCice, Se posebej pokaže prednosti pri poučevanju uCencev z ne pretirano predizo- brazbo. Celo primerjava s programskim jezikom loga /4/ pohaže kar nekaj prednosti za uCence, ki 50 stari nad i_0 let. Le za ml a j Se uCence pod 10 let je mikroprolog preteža.k. Poglavitne pre­ dnosti uCenja z mikroprologom so razvijanje lo- giCnega miSljenja, razvijanje kreativnega in samostojnega r&zmiSljanja in uCenja programe­ rskih principov pete generacije računalnikov. B. Literatura 1. KoMalski R.': Predicate logic as programming language, Proč. IFIP 74 Conf., North-Hol1 and 1974 2. k:owalski R. ; Algorithm = Logic + Control , CfiCM, Vol. 22, No.7, 572-595, 1979 Z. Clerl: K.L., McCabe F.G., Ennals J.R.j A Mi- cro-PROLOG Primer, Logic Programming Associ- ater., 1933 4. Ennals R.: Beginning Hicro-PROLOG, Ellis Ho- rwond Ltd., London, 1904 5. McCabe F.G., Clark K.L., Steel B.D.: Micro- PROLOG Programmers .Re-ference Manual, Logic Programming Associates, 19B4 i. Bratko I., Gams M.: Prolog: osnove in pri­ ncipi strukturiranja podatkov, In-formatic* 4/1980, str. 40-46, 1980 7. Bratko I.: EHpert Systems and Prolog, Perga- mon Infotech State o-f the Art Report; Su- percomputer Systems Technology, F. Sumners (ed.) Series 10, No. 6, Pergamon In-fotech Ltd., 1982 B. Gams M.; Osnove dobrega programiranja, Ca­ nkarjeva založba, 1985 9. Ennals R. : Micro-PROLOG across the Curricu- lum, Collected papers 1982-1984, Research Report DoC 84/17, Imperial CoUege, 1984 10.Gams M.: Mikroprolog, seminarski materiali, str. 50, 1985 ll.Smullyan R.M.: Alica v deželi ugank. Državna založba Slovenije, Ljubljana 1984 DODATEK 1 4. Seznam osnovnih ukazov za delo s programom "SIMPLE" Opomba; Nekateri ukazi so vezani na sinclair ZX: "caps shift" "Z" "break space" istoCasno (prekinitev izvajanja) "caps shift" "a" istoCasno (no scrool> accept -za vpisovanje veC stavkov z isto re­ lacijo. Primer: accept ima-rad ima-rad. (Lojze Mojca) ima-rad.(bbb ccc) i me—rad.end add -za dodajanje stavkov bazo podatkov Primer: add(Jure ima-rad Meri) (doda stavek v bazo) add 2 (Mira ima-rad Miha) (doda stavek na tretje mesto med sta­ vke relacije "ima—rad") delete -zbriSe stavek dane relacije r ustre­ zno zaporedno Številko Primer: delete ima-rad 1 edit -eaitiranje in popravljanje stavkov programa. SploSna oblika! edit ime-relacije zaporedna-Stevi1ka- stavka Pri mer: edit ima-rad 1 1 (Lojze ima-rad Mojca) Zdaj se lahko premikamo po stavku s tipkami/puSCicami in ga sproti popra­ vi j amo. kili -uniCi vse stavke za dano relacijo ali cel program. F'ri mer : ki 11 ima-rad (zbriSe vse stavke relacije ima-rad) kili ali (zbriSe ves program) list -izpiSe vse stavke dane relacije ali cel program. Primer: list ima-rad 85 vse stavke relacije which aH one is isall not load de-f i ned ON so de- ko (izpiSe rad") list aH (izpiSe cel program) -ieCe vse raoSne odgovore, -sinonim za "which". -daje samo en odgovor naenkrat, -preveri pravilnost in odgovarja z "VES" ali "NO", -grajenje seznamov. Pri mer s which(s{:x isall (y:y ima-rad Mezi)> (izpiSe se seznam vseh, ki imajo ra­ di Mezija) O' -negiranje pogojev. -naloSi program v raCunalnik z kaseto- •fona. SploSna oblika; load ime—programa save —shrani celotni' program iz računalni­ ka na kasetofon. SploSna oblika: save ime-programa reserved -za iskanje rezerviranih beseda Primer; _which ! reserved) (izpiSe vse rezervirane besede) —(te hoCemo izvedeti, kAtere relacije so definirane. Primer; which (>;::< de-fined) (izpiSe imena vseh relacij, •finirane v naSem programu) -Članstvo v seznamu. Je izpolnjen, je'objekt Član seznama. Primer; is(5 ON (1 2 3 4 5)) VES -doda objekt na prvo mesto znamu. Primer; which(x:C0NS(3 (4 5 6))) (3 4 5 6)- No (more) an5wers -združi dva seznama Pri mer i which(>!: APPEND( (1 2 3 4) (5 6 7 8) x)) (12 3 4 5 6 7 8) No (more) ansMsrs DODATEK 2 Tu so zbirno navedene vaje teCaja iz mikrapro- loga, ki je potekal v okviru rsCunalniSkega vrtca /10/; 0. seznanjanje z raCunalni l;om, seznanjanje z osnovnimi ukazi tipa "add", "1ist","accept", "delete", "kili", "edit" 1. enostavni stavki, opisovanje podatkov/stanj (ukaz "add", vaje na nivoju "Pavle ima—rad Meri", vaje na nivoju opisovanja sedežnega reda uCencev v uCilnici) 2. postavljanje vpraSanj (ukaz "is", enostavne vaje) 3. pretvarjanje stavkov iz slovenSCine v mikro- prolog (trditve, vprašanja, vaje v pretva­ rjanju drugih jezikov) 4. uporaba spremenljivk in ukaza "which" (vaje na nivoju enostavnih družinskih rela­ cij) CONS APPEND danem tretjega. je-oCe- ki 5. sestavljena vpraSahja s konstruktom "is" (tvorjerije logičnih konjunkcij z uporabo ko- nstrukta "and") 6. sestavljena vpraSanja s konstruktom "which" (tvorjenje : logiCnih konjunkcij z uporabo konstrukta "and") 7. vaje - izpraševanje o vpisanih podatkih - kaj je nad, viSje.. B. enostavna aritmetika (LESS, SUM, TIMES in uporaba teh konstruktov za raCunanje) 9. sploSna oblika stavka "which" 10. pravila (A i-f B and C and . .. ) 11. pravila z uporabo spremenljivk (vaje, npr. detektivske naloge tipa iskanje Jacka RazparaCa) 12. predstavitev enostavnih pravil z diagrami/ mrežami ( vaje iz družinskih relacij, npr. Jože je-oCe-od Lojze) 13. predstavitev pravil s, spremenljivkami v obliki semantičnih mrež (vaje iz družinskih relacij, npr. K od y i-f y je-sin-od x) 14. prehod na zapletene oblike pravil, med seboj povezujejo (npr. stric je brat od oCeta ali ...) 15. aritmetične in.logiCne relacije (njar'. kdo je viSji ali starejSi od koga) 16. seznami (npr. pretvarjanje iz slovenSCine v mikro- prolog) 17. dostop do elementov seznama (uporaba vzorcev in operatorja za loCevanje glave od seznama) 18. vaje 5 seznami 19. konstrukt "one" 20. vaje s seznami in bazami podatkov (npr. izbiranje miss sveta, iskanje asocia­ cij, zamenjevanje besed ...) 21. rekurzija (vaje na nivoju družinskih relacij - npr. "prednik") 22. Članstvo v seznamu (konstrukt "ON" in njegova definicija) 23. vaje s seznami (programi za dolžino seznamov, združevanje seznamov) 24. negacija . ° (uporaba konstrukta "not") 25. enomestne*relacije (npr. Nika bere) 26. grajenje seznamov (uporaba konstrukta "isall") 27. naloge s seznami (seštevanje elementov seznamov, • množenje elementov seznamov) 28. nekoliko težje naloge s seznami ( kupovanje najprimernejšega avtomobila , iskanje raznih povpreCij) 29. grajenje verig (npr. iskanje verig potomcev v družinskih drevesih) 30. vaje (npr. potapljanje ladjic, ugibanje skritih informacij, iskanje "kdo je najviSji" itd.) 31. sistemski ukazi O