Logic programming2016VT
|
|
Course plan
No of lectures
30 h
Recommended for
PdD students in computer science
The course was last given
2011
Goals
Provide a solid introduction into logic programming.
Together with a companion course on functional programming, the courses present
two programming paradigms, which differ from that of mainstream programming
(i.e. procedural and object oriented).
The latter can be seen as still related to the architecture of computer
hardware. Its main concept - a mutable variable - is an abstraction of a RAM
memory cell. In such languages, roughly speaking, programs are descriptions of
sequences of computational steps. The role of the steps is to modify the state.
In contrast, programs in (pure) logic or functional programming describe the
tasks of the computations. There is no state and mutable data; this makes it
easier to reason about complex programs.
Logic programming (LP) employs (a subset of) the language of the standard first
order logic as a programming language. In principle, a program is a set of
axioms describing a problem to be solved; the computed results are logical
consequences of the program. In practice, programs also describe how the
results are computed; this can be modified by the programmer without changing
the logical meaning of the program.
Hence reasoning about the meaning of programs and their correctness
(declarative semantics) can be separated from that about program execution
(operational semantics). Efficient implementations of LP exist.
Prerequisites
Some mathematical maturity, for instance given by introductory courses on
logic, discrete mathematics, and formal languages and automata theory.
Some experience of programming; familiarity with some programming languages.
Organization
Lectures.
Exercises and project work.
Contents
- Definite clause logic programs, their declarative and operational semantics.
- Prolog as an implementation of LP.
- Programming examples, LP as a declarative programming paradigm.
- Reasoning about logic programs (formal & practical).
- Constraint logic programming.
- Negation in LP, including Answer Set Programming.
Literature
Articles, handouts, book chapters.
U. Nilsson and J. Maluszynski. Logic, Programming and Prolog (2ed).
Lecturers
Examiner
W. Drabent
Examination
Home assignments and a minor project together with its presentation.
Participation in the course
Credit
3p + 2p for the project
Comments
Page responsible: Director of Graduate Studies