Lectures:
Declarative programming languages, functional and logic programming fundamentals.
Lambda calculus, lambda conversion, fixed-point operator, recursive functions.
Functional data representation; logical values, tuples, collection, numbers.
Data types of the Haskell language, the definition of user-defined data types, abstraction.
Definition of functions, unification patterns, lazy evaluation.
List data structures, using recursion definition, infinite lists.
Proving in functional languages, structural induction.
Imperative features of functional programs, monads, computation-state representation, input-output, exceptions.
Application of functional programming - denotation semantics.
Aplication of functional programming - analysis of a text.
Principles of logic programming; substitution, resolution, unification.
Prolog data types; lists, tuples. User-defined data types, trees.
Basic programming techniques of logic programming. Search and ordering.
Meta-programming, work with clauses.
Programming with restrictions, language like CLP.
Projects:
Projekt No 1: Functional specification of the solution of a given problem, and its implementation in the Haskell language.
Projekt No 2: Specification of the solution of a given problem using the clausal form of predicate logic, and its implementation in Prolog.
Projekt 2: Specifikace řešení zadaného problému ve formě klauzulí predikátové logiky a jeho implementace v jazyce Prolog.
Declarative programming languages, functional and logic programming fundamentals.
Lambda calculus, lambda conversion, fixed-point operator, recursive functions.
Functional data representation; logical values, tuples, collection, numbers.
Data types of the Haskell language, the definition of user-defined data types, abstraction.
Definition of functions, unification patterns, lazy evaluation.
List data structures, using recursion definition, infinite lists.
Proving in functional languages, structural induction.
Imperative features of functional programs, monads, computation-state representation, input-output, exceptions.
Application of functional programming - denotation semantics.
Aplication of functional programming - analysis of a text.
Principles of logic programming; substitution, resolution, unification.
Prolog data types; lists, tuples. User-defined data types, trees.
Basic programming techniques of logic programming. Search and ordering.
Meta-programming, work with clauses.
Programming with restrictions, language like CLP.
Projects:
Projekt No 1: Functional specification of the solution of a given problem, and its implementation in the Haskell language.
Projekt No 2: Specification of the solution of a given problem using the clausal form of predicate logic, and its implementation in Prolog.
Projekt 2: Specifikace řešení zadaného problému ve formě klauzulí predikátové logiky a jeho implementace v jazyce Prolog.