SubjectsSubjects(version: 901)
Course, academic year 2021/2022
Methods of Logic Programming - NAIL022
Title: Metody logického programování
Guaranteed by: Department of Theoretical Computer Science and Mathematical Logic (32-KTIML)
Faculty: Faculty of Mathematics and Physics
Actual: from 2019
Semester: winter
E-Credits: 3
Hours per week, examination: winter s.:2/0 Ex [hours/week]
Capacity: unlimited
Min. number of students: unlimited
Virtual mobility / capacity: no
State of the course: not taught
Language: Czech
Teaching methods: full-time
Additional information:
Guarantor: RNDr. Jan Hric
Class: Informatika Mgr. - Teoretická informatika
Informatika Mgr. - Matematická lingvistika
Classification: Informatics > Programming, Theoretical Computer Science
Annotation -
Last update: T_KTI (10.04.2001)
The lecture gives an overview about logic programming. The covered topics are WAM - Warren Abstract Machine, binarization, abstract interpretation, partial evaluation, types and constraint logic programming.
Aim of the course -
Last update: RNDr. Jan Hric (07.06.2019)

To learn theory and techniques used in Prolog and its implementations.

Course completion requirements -
Last update: RNDr. Jan Hric (07.06.2019)

Oral exam on topics from lecture.

Literature - Czech
Last update: RNDr. Pavel Zakouřil, Ph.D. (05.08.2002)

[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

Syllabus -
Last update: T_KTI (14.05.2015)

1. Compilation of logic programs, Warren Abstract Machine [1], method for development of abstract machines and their instructions. Implementation of built-in predicates, optimizations.

2. Abstract interpretation - method for extraction of global information about programs, abstract and concrete domains, cumulative semantics, using of extracted information in compilation.

3. Transformation of logic programs, partial evaluation [2], Futamura projections. Partial evaluation for Prolog, solving of nondeterminism.

4. Ideas of constraint logic programming [3] (CLP), domains and solvers.

5. Advanced programming methods.

Charles University | Information system of Charles University |