"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). Ha az előadás-fóliákon a jegyzetet kiegészítő információ is található, akkor a szóbanforgó fóliák sorszámát is jelezzük (I.k az első rész, II.k a második rész k. fóliája, lásd a honlapot). - 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, I.75-87 - Diszjunkciók és feltételes szerkezetek, kiváltásuk segédeljárással 3.2.3, 3.7.2, I.93-96, I.99-103, II.16 - Operátorok 3.1.5, I.50-58 - Listák jelölése, nyílt és zárt végű listák 3.3 bevezető, 3.3.1, 3.4, I.113-118 - Keresés listákban (a select/3 és member/2 eljárások) 3.5.3, I.126-128 - 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 - Típusok Prologban 3.1.4, 3.9 - A vágó beépített eljárás definíciója, a vágás alapesetei 4.1.1, 4.1.2 (eleje), II.12-15 - A vágó használata: elkötelezés adott klóz mellett, a vágás alapszabálya 4.1.3 P3 példa, II.18-21 - A vágó használata: első megoldásra való szűkítés (memberchk/2) 4.1.3 P4 példa, II.23-25 - A negáció és megvalósítása vágóval, feltételes kifejezéssel 5.2-ben, I.97-98, I.102, II.31 - 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, II.34-40 - A vágó és az indexelés kölcsönhatása 4.2.4, 4.2.5, II.41-43 - A jobbrekurzió fogalma 4.3.1, II.50-52 - 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 - DCG nyelvtanok, használatuk elemzésre 4.12.1, 4.12.2