|
|
|
||
Referativní seminář o Prologu, logickém a funkcionálním programování.
Probíraná témata zahrnují: interpretace a metainterpretace, reprezentace programů, rozšíření (např. omezující podmínky, přístup na www) , integrace (s funkcionálním prg.), částečné vyhodnocování a transformace programů, nové jazyky a jejich implementace.
Poslední úprava: G_I (08.06.2001)
|
|
||
Naučit pomocí referátů studenty spracovat a přednést látky z obvlasti logickéhoprogramování Poslední úprava: T_KTI (23.05.2008)
|
|
||
[1] R.A.O'Keefe: The Craft of Prolog, MIT Press, 1990
[2] Journal of Logic Programming, obzvlášť vol. 19/20 (Special Issue: Ten Years of Logic Programming), 1994
[3] N.D. Jones, C.K. Gomard, P. Sestoft: Partial evaluation and Automatic Program Generation, Prentice Hall, New York, 1993 Poslední úprava: T_KTI (19.05.2005)
|
|
||
Referáty jsou na vybraná témata (obvykle) z následující nabídky.
1. Metaprogramování a metainterprety, interpretace mimologických predikátů, simulace změn databáze, reprezentace programů a znalostí, simulace neprologovských výpočtových strategií, metaprogramování jako nástroj rychlé prototypizace, použití v expertních systémech.
2. Rozšíření logických programů, programování s omezujícími podmínkami. Jazyky Mercury, Gödel, Curry, Escher. Integrace s funkcionálními programy.
3. Konečnost logických programů, testování zacyklení počas výpočtu, porovnávání síly testů, statická analýza a dokazování ukončení, homeomorfní vnoření.
4. Transformace programů, odstraňování pomocných proměnných a mezivýsledků, simulace výpočtu zdola nahoru, tail-rekurzivní forma, zexplicitnění informace o pokračování, binární logické programy, částečné vyhodnocování, Futamurovy transformace, kompilace jako speciální případ transformace. Superkompilace.
5. Abstraktní interpretace - metoda pro získávání globálních informací o programu, abstraktní a konkrétní domény, konečnost abstr. interpretace, použití informací při kompilaci, odvozování vstupně-výstupních modů, typů, determinismu a sdílení proměnných a struktur. Typová informace v logických programech, typová kontrola, odvozování typů, typy vyšších řádů, predikáty jako parametry a predikát call. Rozšiřování typových systémů.
6. Pokročilé programovací techniky, strukturální rekurze, porovnávání se vzory, návrh ortogonálních datových struktur, DCG gramatiky a jejich rozšíření, uživatelsky definovaný vstup a výstup, distfixní operátory, vývoj pomocí technik a skeletonů.
7. Aplikace. Kombinátory parserů, doménově specifické (vnořené) jazyky.
8. Implementační techniky. Rozšiřování WAM o podporu CLP. Zpráva a čištění paměti. Rozšiřitelná unifikace.
9. Myšlenky z funkcionálního programování: Monády, monadické transformátory, arrows (šipky). Polytypické programování. Vícestupňové (staged) programování. Svíjení datových struktur (folding). Poslední úprava: T_KTI (19.05.2005)
|