Subject » BMEVISZMB01
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) |
|
||||||||||||
| 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
- 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)
- 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
- 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
- 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)
- 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
- Levels of consistency and pruning, constraint execution, classic CSP problems (zebra problem, n queens problem, magic sequences), redundant constraints. Announcement of homework assignment
- 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
- 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
- FD predicates: indexicals and ranges, further FD clauses necessary for reification, interpretation of indexicals, translating constraints to indexicals, announcement of the 4th homework exercise
- 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
- Debugging CLP(FD) programs with the help of the FDBG library (usage, customizing, developing custom visualizers)
- Advanced CLP(FD) case studies (square packing, torpedo, dominoes): modeling, selecting the variables and the constraints, efficient search
- CHR (Constraint Handling Rules): a generic constraint programming library, definition and execution of CHR rules, examples for using CHR
- 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.