SubjectsSubjects(version: 902)
Course, academic year 2022/2023
   Login via CAS
Seminar on Logic Programming 1 - NAIL006
Title: Seminář z logického programování 1
Guaranteed by: Department of Theoretical Computer Science and Mathematical Logic (32-KTIML)
Faculty: Faculty of Mathematics and Physics
Actual: from 2020
Semester: winter
E-Credits: 3
Hours per week, examination: winter s.:0/2 [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
Guarantor: RNDr. Jan Hric
Class: Informatika Mgr. - volitelný
Classification: Informatics > Programming, Theoretical Computer Science
Annotation -
Last update: T_KTI (10.04.2001)
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.
Aim of the course - Czech
Last update: T_KTI (23.05.2008)

Naučit pomocí referátů studenty spracovat a přednést látky a z oblastilogického programování

Literature - Czech
Last update: T_KTI (19.05.2005)

[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

Syllabus -
Last update: T_KTI (19.05.2005)

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.

Charles University | Information system of Charles University |