Deklaratív programozás - Prolog

A VIK Wikiből
A lap korábbi változatát látod, amilyen Szikszayl (vitalap | szerkesztései) 2014. február 15., 17:09-kor történt szerkesztése után volt. (Szikszayl átnevezte a(z) "Elméleti" tételek a Deklaratív Programozás c. tárgy Prolog részéhez lapot a következő névre: Deklaratív programozás - Prolog)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)
Ugrás a navigációhoz Ugrás a kereséshez

Ez az oldal a korábbi SCH wiki-ről lett áthozva. Az eredeti változata itt érhető el.

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


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

_A hivatalos oldalon lévő link._