High Efficiency Declarative Programming Laboratory

Nagyhatékonyságú deklaratív programozás laboratórium
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
Subject name (Hungarian, English)
Nagyhatékonyságú deklaratív programozás laboratórium
High Efficiency Declarative Programming Laboratory
Subject code BMEVISZMB01
Subject type
Training Level
Course types and hours (weekly/semester)
Course type lecture tutorial laboratory
hours (weekly) 0 0 3
type (linked/independent)
Assessment type félévközi érdemjegy
Credits 4
Subject coordinator
Név:
Responsible department
Számítástudományi és Információelméleti Tanszék
Faculty Villamosmérnöki és Informatikai Kar
Subject website http://cs.bme.hu/~szeredi/ndp/
Primary curriculum type
Direct prerequisites – Strong prerequisite none
Direct prerequisites – Weak prerequisite none
Direct prerequisites – Parallel prerequisite none
Direct prerequisites – Milestone prerequisite none
Direct prerequisites – Exclusion none

Objectives

Programme
  1. CLP fundamentals (the CLP(X) scheme, examples), advanced Prolog concepts necessary for implementing CLP (blocking, the concept of coroutining, handling coroutines in Prolog, examples of coroutines, customized output of terms)
  2. CLP(MiniNat) case study (a quasi-CLP language for handling natural numbers), implementation of CLP(MiniNat) with the learned advanced Prolog constructs, announcement of 1st homework exercise
  3. The clpq and clpr libraries of SICStus Prolog, their usage and the basics of their operation, examples for the usage and operation of the libraries, case study: perfect rectangles
  4. Theory of constraint logic programming (CLP syntax, declarative semantics, procedural semantics, the inference process). The clpb library of SICStus Prolog (usage and operation of the library, examples)
  5. Fundamentals of CLP(FD), introduction to using the clpfd library of SICStus Prolog, theoretical background: constraint satisfaction problems (CSP), simple and composite constraints, membership constraints, arithmetic constraints, examples of using the clpfd library
  6. Levels of consistency and pruning, constraint execution, classic CSP problems (zebra problem, n queens problem, magic sequences), redundant constraints. Announcement of homework assignment
  7. Reification, propositional constraints, entailment of constraints, global arithmetic constraints, clpfd reflection predicates, FD sets, labeling (labeling predicates, labeling options, customizing labeling), announcement of the 2nd homework exercise
  8. User-defined constraints: global constraints and FD predicates. Details of defining global constraints, syntax and semantics of the hook predicate for pruning. Announcement of the 3rd homework exercise
  9. FD predicates: indexicals and ranges, further FD clauses necessary for reification, interpretation of indexicals, translating constraints to indexicals, announcement of the 4th homework exercise
  10. Built-in combinatorial constraints of the SICStus clpfd library: counting and distinctness, defining arbitrary relations (with the help of pairs, graphs, tables, automata), graph constraints, scheduling, packing. Examples for using the available constraints
  11. Debugging CLP(FD) programs with the help of the FDBG library (usage, customizing, developing custom visualizers)
  12. Advanced CLP(FD) case studies (square packing, torpedo, dominoes): modeling, selecting the variables and the constraints, efficient search
  13. CHR (Constraint Handling Rules): a generic constraint programming library, definition and execution of CHR rules, examples for using CHR
  14. Summary, buffer
Further development of the knowledge gathered in the BSc course "Declarative Programming," extending it to the area of constraint logic programming (CLP). Understanding the theoretical foundations and practical implementations of CLP, learning and exercising the methods of constraint programming.

Learning outcomes

Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:

Knowledge

No learning outcomes recorded.

Skills

No learning outcomes recorded.

Attitudes

No learning outcomes recorded.

Autonomy and responsibility

No learning outcomes recorded.

Oktatási módszertan

Lectures + lab work. In the lectures, the above topics are presented and discussed. In the lab part, students solve theoretical as well as programming exercises related to the current topic.

Tanulástámogató anyagok

Online források
Szeredi; Péter, Benkő Tamás: Nagyhatékonyságú logikai programozás, Kézirat.; http://cs.bme.hu/~szeredi/oktatas/docs/nlp02_jegyzet.pdf; Course material:; http://cs.bme.hu/~szeredi/oktatas/docs/nlp02_jegyzet.pdf (in Hungarian); Literature:; Kim Mariott, Peter J. Stuckey. Programming with Constraints: an Introduction. MIT Press, 1998.; Pascal Van Hentenryck. Constraint Satisfaction in Logic Programming. MIT Press, 1989.; M. Carlsson, G. Ottosson, and B. Carlson. An open-ended finite domain constraint solver. In: Programming Languages: Implementations, Logics, and Programs, pp. 191–206, 1997.; A. Bockmayr and J. Hooker. Constraint programming. In: Handbook of Discrete Optimization, K. Aardal, G. Nemhauser, and R. Weismantel, Eds., pp. 559–600, 2005.

Recommended preliminary knowledge for completing the subject

Knowledge type competencies
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
Basic knowledge of the Prolog programming language
Skill type competencies
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Recommended (non-compulsory) preliminary competencies
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
nincs
General rules
Requirements: During the lecture period: Solving the 4 homework exercises and the homework assignment. Each homework exercise counts 15%, the assignment counts 40% towards the final grade. Solutions to the homework exercises are due in two weeks after the announcement of the exercise; the solution of the assignment is to be submitted by the last day of the lecture period. During the exam period: None Additional possibilities: Belated homework may be submitted by the end of the week after the lecture period, for a score reduced by 20%.
Assessment methods
In-term assessments

No detailed assessments provided.

Weight of in-term assessments

No weights provided.

Exam-period assessments

No detailed assessments provided.

Weight of exam elements

No weights provided.

Grade calculation

No grade thresholds provided.

Attendance requirements

No attendance requirements provided.

Rules for retake and resubmission

Not provided.

Short description

Not provided.

Detailed description

Not provided.

Recommended courses
Declarative Programming
Workload to complete the subject

No workload breakdown provided.

Validity of subject requirements
Requirements valid from:
Requirements valid until:
Curriculum placement

No curriculum placements recorded for this subject version.