Deklaratív programozás - Logikai programozás

A VIK Wikiből

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

  1. Programok szerkezete, eljárás, klóz, kifejezés fogalma, kifejezések osztályozása
  2. A nyelv végrehajtási mechanizmusa (redukciós lépés, visszalépés)
  3. Az egyesítési algoritmus
  4. Prolog végrehajtási modellek: keresési fa, doboz modell
  5. Diszjunkciók és feltételes szerkezetek, kiváltásuk segédeljárással
  6. Operátorok
  7. Listák jelölése, nyílt és zárt végű listák
  8. Keresés listákban (a select/3 és member/2 eljárások)
  9. Listák összefűzése és szétszedése (az append/3 eljárás többirányú használata)
  10. Listák megfordítása (naiv és hatékony megoldás)
  11. Típusok Prologban
  12. A vágó beépített eljárás definíciója, a vágás alapesetei
  13. A vágó használata: elkötelezés adott klóz mellett, a vágás alapszabálya
  14. A vágó használata: első megoldásra való szűkítés (memberchk/2)
  15. A negáció és megvalósítása vágóval, feltételes kifejezéssel
  16. Vezérlési eljárások
  17. Determinizmus, indexelés és kölcsönhatásuk
  18. A vágó és az indexelés kölcsönhatása
  19. A jobbrekurzió fogalma
  20. Akkumulátorok, listák akkumulálása elölről ill. hátulról
  21. Változó-értékadáson alapuló algoritmusok átírása Prologba
  22. Megoldásgyűjtő beépített eljárások
  23. Struktúrák szétszedése és összerakása: az univ, functor/3 és arg/3 beépített eljárások
  24. Kifejezések szabványos sorrendje, kifejezés-összehasonlító beépített eljárások
  25. Egyenlőségszerű beépített eljárások összehasonlítása
  26. A SICStus Prolog modulfogalma
  27. Magasabbrendű eljárások
  28. Dinamikus adatbáziskezelő beépített eljárások
  29. DCG nyelvtanok, használatuk elemzésre