|
|
|
||
Přednáška podává přehled o logickém programování. Probírá implementační a
optimalizační techniky, rozšíření a pokročilé metody tvorby programů.
Zahrnuje části věnované: WAM - Warrenův abstraktní stroj, binarizace, abstraktní interpretace, částečné vyhodnocování, typy, programování s omezeními.
Poslední úprava: ()
|
|
||
Naučit vybrané techniky používané v Prologu a jeho implemenacích. Poslední úprava: Hric Jan, RNDr. (07.06.2019)
|
|
||
Na ústní zkoušce s přípravou prokázat znalost přednesených témat. Poslední úprava: Hric Jan, RNDr. (07.06.2019)
|
|
||
[1] H. Ait-Kaci: Warren's Abstract Machine - A Tutorial Reconstruction, MIT Press, 1991
[2] N.D. Jones, C.K. Gomard, P. Sestoft: Partial evaluation and Automatic Program Generation, Prentice Hall, New York, 1993
[3] J.Jaffar, M.J.Maher: Constraint Logic Programming: A Survey; in: Journal of Logic Programming, 1994, vol. 19/20, pp. 503 - 581
[4] R.A.O'Keefe: The Craft of Prolog, MIT Press, 1990 Poslední úprava: Zakouřil Pavel, RNDr., Ph.D. (05.08.2002)
|
|
||
Překlad logických programů, Warrenův abstraktní stroj [1], technika návrhu abstraktního stroje a jeho instrukční sady. Implementace vestavěných predikátů, optimalizace.
Abstraktní interpretace - metoda pro získávání globálních informací o programu, abstraktní a konkrétní domény, zhromažďující sémantiky. Abstraktní interpretace pro Prolog, použití odvozených informací při kompilaci.
Transformace logických programů, částečné vyhodnocování [2] (partial evaluation) jako optimalizační technika, Futamurovy transformace, automatizovaná tvorba kompilátorů a generátoru kompilátorů. Částečné vyhodnocování pro Prolog, řešení nedeterminismu.
Myšlenky logického programování s omezujícími podmínkami [3] (Constraint LP), používané jazyky, domény a řešiče, připojení a implementace řešiče a techniky řešení, řešení kombinatorických problémů v konečných doménách, příklady a aplikace.
Pokročilé programátorské techniky, tvorba programů postupným zjemňováním, metoda technik a skeletonů, vztah k OOP a virtuálním procedurám. Poslední úprava: T_KTI (14.05.2015)
|