Charles Explorer logo
🇨🇿

Seminář z logického programování 1

Předmět na Matematicko-fyzikální fakulta |
NAIL006

Sylabus

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).

Anotace

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.