Declarative Languages (B-KUL-H0N03A)
Aims
The students get a thorough understanding of declarative programming languages.
We focus on the knowledge and the use in practice of two representative declarative languages, namely a logic programming language and a functional programming language.
The most important aims of this course are:
• The student knows the underlying principles of the logic and functional programming languages.
• The student knows the programming techniques typically used in these programming paradigms.
• The student knows the basics of the execution mechanisms of the logic and functional programming languages.
• The student can write programs in a logic and a functional programming language, consult the reference manuals and debug his programs.
• The student can apply the appropriate programming techniques when developing a larger application.
• The student can compare the languages teached in this course with other languages of the declarative paradigm.
• With his acquired knowledge and skills the student can study new advances in the field of declarative languages.
Previous knowledge
The student knows a programming languages and can progam.
The student can write recursive programs.
Identical courses
This course is identical to the following courses:
H04H5B : Studie van declaratieve talen
Is included in these courses of study
Activities
2 ects. Declarative Languages: Lecture (B-KUL-H0N03a)
Content
The follwing topics are studied:
- a logic programming language, e.g., Prolog
- basic concepts: predicates, unification, backtracking, selection strategy, specification of problems using Horn clauses, declarative and procedural meaning of a logic program, multidirectionality
- Prolog: pure Prolog, negation, (recursive) data structures, built-in predicates, meta predicates
- programming techniques: data (facts, terms), accumulators, memoization, failure driven loops, state space search problems, meta interpreters, non-ground data structures with variables
- a functional programming language, e.g., Haskell
- basic concepts: functions, reduction strategies, call-by-need, lazy/strict
- Haskell: algebraic datatypes, higher-order functions, monomorphic and polymorphic types, type classes, currying
- programming techniques: structural recursion, infinite processes, list comprehension, pure functions and monadic input/output
- type inference
- insight in the history of, research on and the landscape surrounding declarative languages
- execution mechanisms for declarative languages and developments
Course material
Study cost: 76-100 euros (The information about the study costs as stated here gives an indication and only represents the costs for purchasing new materials. There might be some electronic or second-hand copies available as well. You can use LIMO to check whether the textbook is available in the library. Any potential printing costs and optional course material are not included in this price.)
Book: Soar with Haskell, T. Schrijvers, Packt Publishing, 978-1805128458.
Own course material.
Format: more information
Flipped classroom.
2 ects. Declarative Languages: Exercises (B-KUL-H0N04a)
Content
There are 10 exercise sessions. Students apply the acquired material by writing programs on PCs under supervision of a teaching assistant.
Evaluation
Evaluation: Declarative Languages (B-KUL-H2N03a)
Explanation
The exam is open book and is made on computer. The exam has a weight of 16/20 in the overall score.
The permanent evaluation contributes a maximum of 4/20 to to the overall score. During the lectures students indvidually formulate a written answer to one short question about a previously announced part of the course notes. Those course notes can be used to answer the question. The weight of each question is 0.5/20.
The permanent evaluation cannot be repeated during the second exam period; instead, the earlier grades will be transferred.
Information about retaking exams
The permanent evaluation cannot be repeated during the second exam period; instead, the earlier grades will be transferred.