Deklaratív programozás - Logikai programozás
Ez az oldal a korábbi SCH wikiről lett áthozva.
Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!
Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.
"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.
(Szomorú tapasztalatom szerint ezt az utolsó sort úgy kell érteni, hogy ha nem tudod felírni akkor bukta. -- Merlin - 2005.06.27.)
Kidolgozott tételek
- Programok szerkezete, eljárás, klóz, kifejezés fogalma, kifejezések osztályozása
- A nyelv végrehajtási mechanizmusa (redukciós lépés, visszalépés)
- Az egyesítési algoritmus
- Prolog végrehajtási modellek: keresési fa, doboz modell
- Diszjunkciók és feltételes szerkezetek, kiváltásuk segédeljárással
- Operátorok
- Listák jelölése, nyílt és zárt végű listák
- Keresés listákban (a select/3 és member/2 eljárások)
- Listák összefűzése és szétszedése (az append/3 eljárás többirányú használata)
- Listák megfordítása (naiv és hatékony megoldás)
- Típusok Prologban
- A vágó beépített eljárás definíciója, a vágás alapesetei
- A vágó használata: elkötelezés adott klóz mellett, a vágás alapszabálya
- A vágó használata: első megoldásra való szűkítés (memberchk/2)
- A negáció és megvalósítása vágóval, feltételes kifejezéssel
- Vezérlési eljárások
- Determinizmus, indexelés és kölcsönhatásuk
- A vágó és az indexelés kölcsönhatása
- A jobbrekurzió fogalma
- Akkumulátorok, listák akkumulálása elölről ill. hátulról
- Változó-értékadáson alapuló algoritmusok átírása Prologba
- Megoldásgyűjtő beépített eljárások
- Struktúrák szétszedése és összerakása: az univ, functor/3 és arg/3 beépített eljárások
- Kifejezések szabványos sorrendje, kifejezés-összehasonlító beépített eljárások
- Egyenlőségszerű beépített eljárások összehasonlítása
- A SICStus Prolog modulfogalma
- Magasabbrendű eljárások
- Dinamikus adatbáziskezelő beépített eljárások
- DCG nyelvtanok, használatuk elemzésre