Functional and Logical Programming
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
MIE-FLP | Z,ZK | 4 | 2+1 |
- Přednášející:
- Josef Kolář
- Cvičící:
- Josef Kolář
- Předmět zajišťuje:
- katedra teoretické informatiky
- Anotace:
-
Students will be acquainted with principles of functional and logic programming. They will be able to write their programs in Lisp and Prolog programming languages.
- Požadavky:
-
Basic knowledge of imperative programming.
- Osnova přednášek:
-
1. Declarative programming languages. Lambda calculus as a formalism for functional programming.
2. Basic data types and functions in Lisp, lists.
3. Variables, type predicates, recursion and iteration in Lisp.
4. Mapping functionals, control statements.
5. Input and output, macros.
6. Structures, vectors, arrays, hash tables.
7. Implementation of Lisp.
8. Predicate logic, Horns clauses and SLD resolutions as an introduction to Prolog.
9. Predicates, clauses, facts, operators in Prolog.
10. Control of the computation in Prolog, lists.
11. Data structures, input, output.
12. Implementation of Prolog.
13. Logic programming and proof trees - relation to attributed grammars.
- Osnova cvičení:
-
1. Recursive programming, solving simple problems in an imperative programming language using recursion.
2. Introduction to the use of Lisp programming environment in computer lab.
3. Simple functions for processing lists in Lisp.
4. Assignment of semestral works.
5. Recursive and iterative solutions, efficiency of recursion.
6. Mapping functionals.
7. Arrays, hash tables, input and output.
8. Macros, structures.
9. Consultations on semestral works.
10. Introduction to the use of Prolog programming environment in computer lab.
11. Recursion in Prolog, arithmetic and list predicates.
12. Input and output, control of the computation.
13. Checking semestral works.
- Cíle studia:
-
The module deals with functional and logic programming. It explains basic principles and focuses on programming in Lisp and Prolog programming languages. Students learn the principles of implementation of Lisp and Prolog programming languages.
- Studijní materiály:
-
1. Shapiro, S. C. Common Lisp: An Interactive Approach. W. H. Freeman, 1991. ISBN 0716782189.
2. Seibel, P. Practical Common Lisp. Apress, 2005. ISBN 1590592395.
3. Clocksin, W. F., Mellish, C. S. Programming in Prolog (5th Edition). Springer, 2003. ISBN 3540006788.
- Poznámka:
-
Rozsah=prednasky+proseminare+cviceni2p+1c
- Rozvrh na zimní semestr 2011/2012:
- Rozvrh není připraven
- Rozvrh na letní semestr 2011/2012:
-
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po Út St Čt Pá - Předmět je součástí následujících studijních plánů:
-
- System Programming, in English, Version for Students, who Enrolled in 2010 and 2011 (povinný předmět oboru)
- Computer Science, Presented in English, Version for Students, who Enrolled in 2010 and 2011 (povinný předmět oboru)
- Knowledge Engineering, Presented in English, Version for Students, who Enrolled in 2010 and 2011 (povinný předmět oboru)
- Master Informatics, Presented in English - Version for Students who Enrolled in 2010 (VO)
- Master Informatics, Presented in English - Version for Students who Enrolled in 2011 (VO)
- Master Informatics, Presented in English - Version for Students who Enrolled in 2012 (VO)
- System Programming, Presented in English - Version for Students who Enrolled in 2012 (povinný předmět oboru)
- Computer Science, Presented in English - Version for Students who Enrolled in 2012 (povinný předmět oboru)
- Knowledge Engineering, Presented in English - Version for Students who Enrolled in 2012 (povinný předmět oboru)