"Elméleti" tételek a Deklaratív Programozás c. tárgy Prolog részéhez A hallgatónak az alább felsorolt témák egyikéről kell 3-5 percben beszélnie, nagyvonalú áttekintést adva az adott anyagrészről, kb 5-10 perces felkészülés után. Bizonyos témák egy vagy két konkrét Prolog eljárásról szólnak (pl. listák megfordítása, append/3), ilyenkor a felkészülés részeként célszerű ezen eljárások közül legalább egynek a kódját felírnia. Az alábbi felsorolásban a téma megnevezését követően hivatkozunk a jegyzet megfelelő alfejezeteire (x.y, x.y.z alakban, esetleg oldalszám megadásával). - Programok szerkezete, eljárás, klóz, kifejezés fogalma, kifejezések osztályozása 3.1.1 - 3.1.3 - A nyelv végrehajtási mechanizmusa (redukciós lépés, visszalépés) 3.2.2 (30-32 old.), 3.5.1 - Az egyesítési algoritmus 3.2.2 (27-29) - Prolog végrehajtási modellek: keresési fa, doboz modell 3.5 bevezető, 3.5.2, - Diszjunkciók és feltételes szerkezetek, kiváltásuk segédeljárással 3.2.3, 3.7.2, - Operátorok 3.1.5, - Listák jelölése, nyílt és zárt végű listák 3.3 bevezető, 3.3.1, 3.4, - Keresés listákban (a select/3 és member/2 eljárások) 3.5.3, - Listák összefűzése és szétszedése (az append/3 eljárás többirányú használata) 3.3.2, 3.5.5 - Listák megfordítása (naív és hatékony megoldás) 3.3.3 - A vágó beépített eljárás definíciója, a vágás alapesetei 4.1.1, 4.1.2 (eleje), - A vágó használata: elkötelezés adott klóz mellett, a vágás alapszabálya 4.1.3 P3 példa, - A vágó használata: első megoldásra való szűkítés (memberchk/2) 4.1.3 P4 példa, - A negáció és megvalósítása vágóval, feltételes kifejezéssel 5.2-ben, I.97-98, - Vezérlési eljárások 5.2, II.27-32 - Determinizmus, indexelés és kölcsönhatásuk 4.2.1, 4.2.2, 85-87, - A vágó és az indexelés kölcsönhatása 4.2.4, 4.2.5, - A jobbrekurzió fogalma 4.3.1, - Akkumulátorok, listák akkumulálása elölről ill. hátulról 4.3.2, 4.3.3 - Változó-értékadáson alapuló algoritmusok átírása Prologba 4.4 - Megoldásgyűjtő beépített eljárások 4.6, 5.9 - Struktúrák szétszedése és összerakása: az univ, functor/3 és arg/3 beépített eljárások 4.7.2, (5.8.1-ben) - Kifejezések szabványos sorrendje, kifejezés-összehasonlító beépített eljárások 4.7.4, (5.6), 225-228 - Egyenlőségszerű beépített eljárások összehasonlítása 4.8, 230-232 - A SICStus Prolog modulfogalma 4.9, (6.1), 234-236 - Magasabbrendű eljárások 4.10, 238-243 - Dinamikusadatbázis-kezelő beépített eljárások 4.11, 245-251