
CS591-ECE595 (Sections 061-068)
Multiparadigm Programming
Fall 2005

Functional, Logic, and Constraint Programming languages have proved
very successful for developing complex applications ranging from
electronic circuit design to machine learning, complex scheduling
problems, agents, or the semantic web. Recently, multiparadigm
programming systems have been developed that allow the use of features
of all these programming paradigms in a combined way, and some include
also features from imperative, object-oriented programming. Also,
significant progress has been made in the context of these languages
for a) automatic verification and debugging, and b) developing
concurrent applications and for the automatic exploitation of
parallelism and resource control in high-performance computing
systems.
The objectives of the course include:
- Becoming familiar with the logic programming, constraint
programming
(and also functional programming) paradigms, and, specially,
their combination.
- Acquiring significant practical experience with multi-paradigm
programming environments that support at the same time these
three models of programming, as well as including features from
functional- and object-oriented programming.
- Becoming familiar with the techniques used in the context of these
paradigms for:
- Automatic verification and debugging.
- Automatic
exploitation of parallelism and resource control in
high-performance computing systems.
It is fundamentally a practical programming course, involving
programming exercises with a multiparadigm programming system, but
also theoretical foundations will be addressed where relevant.
The course is taught by:
- Manuel Hermenegildo
<herme@unm.edu>
-
Class times:
Tuesday and Thursday, 9:30-10:45
-
Class venue:
Woodward 149
-
Office:
ME 407
-
Office hours:
Tuesday and Thursday 2:00-4:00 p.m., or by appointment.
Please note that these pages are all under permanent
construction/change. Comments, questions, raves, rants, etc., as well
as administrative questions on e.g. grading, changes in the
schedule, etc., regarding this course should be directed by email to
<herme@unm.edu>
.
Syllabus:
The CS591-ECE595 (sections 061-068)
mailing list:
-
Archives:
contain all email messages to date, including instructions,
homework assignments, grades, etc.
- All CS591-ECE595 (Sections 061-068) students must
subscribe to this list.
Course Slides to date (note that these notes may be
improved during the course):
- Introduction and Motivation.
[pdf,
pdf-2perpage,
ps,
ps-2perpage,
html]
- Logic Programming.
[pdf,
pdf-2perpage,
ps,
ps2perpage,
html]
Code.
- Multi-Paradigm Programming:
- Constraint (Logic) Programming.
[pdf,
pdf-2perpage,
ps,
ps-2perpage,
html]
Program Examples (in Ciao).
- Advanced Topics:
- Intro to Prolog Implementation: The WAM, from Hassan
Ait-Kaci (presented by Michel Ferreira).
[slides pdf,
book pdf,
book website]
Manuel Hermenegildo's 1989 original slides.
[pdf,
pdf-2perpage,
ps,
ps-2perpage]
- The YAP Database Interface (presented by Michel Ferreira).
[pdf]
- Abstract Interpretation-Based Program Development.
[pdf,
pdf-2perpage,
ps,
ps-2perpage,
html].
- Automatic Program Parallelization.
[pdf,
pdf-2perpage,
ps,
ps-2perpage,
html]
- Additional Material:
- First Order Logic and Logic Programming Theory (only partially
covered in class):
- Other Topics:
- Acknowledgments
Note: The pdf2perpage and ps2perpage pointers
point to more compact PDF/PostScript versions (two or more slides per
page), which are more suitable for printing.
Programming System for the course (freely available):
- Ciao, a freely available, fast, modular,
multi-paradigm system (supports functional-, logic-,
and constraint programming and aspects of object- and imperative
programming). Needed for the course. Runs on
Unix/Linux, Windows, Mac OS X, and other platforms.
Features are added often to Ciao so we recommend
always getting the latest version.
Other pointers:
Note to web surfers: You are welcome to use all or part of this
course material, but if you do so we ask you to please quote the
origin. We would also very much appreciate if you let us know that
you are using this material and send us any errors you may find by
email to
<herme@unm.edu>.
Thanks in advance.
Last modified: Mon Sep 19 23:43:06 2005