Charles Explorer logo
🇬🇧

Seminar on Logic Programming 1

Class at Faculty of Mathematics and Physics |
NAIL006

Syllabus

Relevant topics are chosen (usually) from following topics.

1. Metaprogramming and metainterpreters, representation of programs and knowledge, simulation of nonprolog selection rules, applications in expert systems

2. Extensions of logic programs, constraint logic programming (CLP). Integration logic and functional programming, languages Mercury, Gödel, Curry, Escher.

3. Termination of logic programs, static analysis and proving of termination, homeomorphic embedding.

4. Transformation of programs, partial evaluation, deforestation, continuation passing style, binary logic programs, Futamura transformations. Supercompilation.

5. Abstract interpretation. Types in logic programs. Extensions of type systems.

6. Advanced programming techniques, structural recursion, DCG grammars. User defined input and output, distfix operators, development using skeletons and techniques. Monads, polytypic programming, staged programming, folding of data structures.

7. Applications. Parser combinators, domain specific (embedded) languages.

8. Implementation techniques, extensions of WAM. Garbage collection. Extensible unification.

9. Ideas from functional programming: Monads, monads transformers, arrows. Polytypic programming. Staged programming. Folding of data structures.

Annotation

Selected topic from Prolog, logic and functional programming based on published papers. The topics include interpretation and metainterpretation, representation of programs, extensions of LP (contraints, integration with functional languages), new languages and their implementation, transformations and partial evaluation.