"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), ill. az előadás-fóliák sorszámára (i vagy i-j alakban). Az utóbbi sorszám a Prolog tárgyrész összes fóliájának összegyűjtött változatára vonatkozik (lásd honlap). - Programok szerkezete, eljárás, klóz fogalma 3.1.1, 3.1.3, 3.1.4, 36-37 - A nyelv kifejezés-fogalma (alapstruktúra alak, kifejezések osztályozása) 3.1.1, 3.4.6, 4.7.1, 38-39 - Diszjunkció, mint szintaktikus édesítőszer 3.1.5, 61-62 - A nyelv végrehajtási mechanizmusa (redukciós lépés, visszalépés) 3.2, 58-60, 79 - Prolog végrehajtás szemléltetése keresési fával 3.1-ben, 3.2-ben, 3.4-ben, 77-78, 89 - A Prolog végrehajtás doboz-modellje 3.3, 80-81 - Szintaktikus édesítőszerek: operátorok 3.4.9, 43-46 - Szintaktikus édesítőszerek: listák 3.4.1, 65-66 - Keresés listákban (a select/3 és member/2 eljárások) 3.4.2, 83-84 - Listák összefűzése és szétszedése (az append/3 eljárás többirányú használata) 3.4.3 (eleje), 67, 89-92 - Listák megfordítása (naív és hatékony megoldás) 3.4.3 (vége), 69-70 - Az egyesítési algoritmus 3.4.8, 51-57 - Típusok Prologban 3.6, 41-42, 122-127 - A vágó beépített eljárás definíciója, a vágás alapesetei 4.1.1, 4.1.2 (eleje), 139-142 - Feltételes szerkezet és kiváltása segédeljárással 4.1.2 (vége), 5.2-ben, 106-108, 143-144 - A vágó használata: elkötelezés adott klóz mellett, a vágás alapszabálya 4.1.3 P3 példa, 145-149 - A vágó használata: első megoldásra való szűkítés (memberchk/2) 4.1.3 P4 példa, 150-153 - Determinizmus, indexelés és kölcsönhatásuk 4.2.1, 4.2.2, 85-87, 161-167 - A vágó és az indexelés kölcsönhatása 4.2.4, 4.2.5, 168-169 - A jobbrekurzió fogalma 4.3.1, 171-173 - Akkumulátorok, listák akkumulálása elölről ill. hátulról 4.3.2, 4.3.3, 174-177 - Változó-értékadáson alapuló algoritmusok átírása Prologba 4.4, 186-192 - Megoldásgyűjtő beépített eljárások 4.6, 5.9, 201-206 - Az univ eljárás: struktúrák szétszedése és összerakása 4.7.2, (5.8.1-ben), 212, 215-217 - A functor/3 és arg/3 beépített eljárások 4.7.2, (5.8.1-ben), 213-214 - Konstansok szétszedése és összerakása 4.7.3, (5.8.2), 222-224 - 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 - Elemzés DCG nyelvtannal 4.12.1 (eleje), 253-255 - DCG nyelvtanok fejlettebb elemei 4.12.1 (vége), 4.12.2, 256-260 - A negáció és megvalósítása a vágó segítségével 5.2-ben, 101, 109, 158-159 - Aritmetikai beépített eljárások 5.4, 268 - Listakezelő beépített eljárások 5.7, 269