Programozási paradigmák Államvizsga-kérdések 1998-ban 1998. június 3. SZP/HP ------------------------------------------------------------------ PL-jegyzet: Szeredi Péter: Programozási paradigmák: Bevezetés a logikai programozásba. Oktatási segédlet, 2. változatlan kiadás, 1997. Letölthető: SML-jegyzet: Hanák D. Péter: Programozási paradigmák: Funkcionális programozás SML-lel. Oktatási segédlet, 2. változatlan kiadás, 1997. ------------------------------------------------------------------ A. kérdések: A1. A logikai programozás alapelvei (PL-jegyzet 1. fejezet) A2. A Prolog vezérlési szerkezete (PL-jegyzet: 2.1.) A3. A Prolog adatszerkezetei, egyesítési algoritmus (PL-jegyzet: 2.2.) A4. Szintaktikus édesítőszerek Prologban: operátorok, listák (PL-jegyzet: 2.4.-2.5.) A5. Vezérlési eljárások Prologban, a vágó eljárás (PL-jegyzet: 4.1.-4.2.) A6. Meta-eljárások Prologban: adatbázis-kezelés, kifejezés-kezelés (PL-jegyzet: 4.3, 4.6.-4.8.) A7. Fordítóprogramírási technikák Prologban (PL-jegyzet: 5.1.-5.4.) A8. Szintaktikus elemzési módszerek Prologban, DCG nyelvtanok (PL-jegyzet: 5.5.) A9. Párhuzamos logikai programozás: az Andorra modell (PL-jegyzet: 7.2.) A10. A constraint logikai programozás alapelemei (PL-jegyzet: 7.4., kiegészítő anyag: ) A11. Értékek és függvényjelölések az SML-ben A12. Típusok és típusoperátorok az SML-ben, típuslevezetés, típusmegkötés. A13. Párok, ennesek, rekordok, vektorok, tömbök az SML-ben A14. Listák megvalósítása és kezelése az SML-ben A15. A datatype deklaráció és alkalmazásai az SML-ben A16. Lusta kiértékelésű operátorok az SML-ben: if-then-else, andalso, orelse, case; az fn jelölés A17. Minták, mintaillesztés az SML-ben A18. Magasabbrendű és részlegesen alkalmazható függvények az SML-ben A19. Polimorfizmus az SML-ben: többszörös terhelés, paraméteres polimorfizmus A20. Lusta listák és megvalósításuk az SML-ben ------------------------------------------------------------------ B. kérdések: B1. A Prolog 4 kapus nyomkövetési modellje (PL-jegyzet: 2.1.3.) B2. Jobbrekurzió, akkumulátorok Prologban (PL-jegyzet: 3.1.) B3. Az append Prolog eljárás használata lista-szintű mintaillesztésre (PL-jegyzet: 2.5, P8 példa) B4. Listák megfordítása Prologban: naív illetve hatékony megoldás (PL-jegyzet: 3.2, P14 példa) B5. Gráfok ábrázolása Prologban (PL-jegyzet: 3.3.) B6. Különbséglisták Prologban (PL-jegyzet: 3.4.) B7. Függvényalak megvalósítása Prologban (PL-jegyzet: 4.8. P24 példa.) B8. Összes megoldás keresése Prologban (PL-jegyzet: 4.9.) B9. Modulfogalmak Prologban (PL-jegyzet: 6.1.) B10. Szótárak megvalósítása Prologban (PL-jegyzet: 4.12. P27 Példa, 5.2.4.) B11. Az int, real, bool, char és string típusok és könyvtári megvalósításuk SML-ben: explode, imlode, tokens, fields, konverziók stb. B12. A list típus könyvtári megvalósítása SML-ben: take, drop, append, flat, split, combine stb. B13. Magasabbrendű függvények az SML-ben: secl, secr, map, filter, app, foldl, foldr, partition, takewhile, dropwhile stb. B14. Listák rendezése SML-ben: beszúró és kiválasztó rendezés, gyorsrendezés, összefésülő rendezés, simarendezés stb. B15. Bináris fák megvalósítása datatype deklarációval SML-ben. Elem keresése, beszúrása, törlése. B16. Listából bináris fa, bináris fából lista előállítása; műveletek bináris fákon: mélység, levelek és élek száma, leghosszabb út stb. B17. Iteratív függvények SML-ben: terminális rekurzió, gyűjtőargumentum. B18. Halmazműveletek megvalósítása SML-ben: eleme, unió, metszet, különbség, hatványhalmaz, listából halmaz előállítása stb. B19. Kivételkezelés az SML-ben: exception, raise, handle, az exn típus. B20. Lokális és egyidejű deklarációk az SML-ben: let, local, and; láthatóság és hatáskör.