NAME: Declarative Programming (PRD) ( versión española )

DEPARTAMENT: SISTEMAS INFORMÁTICOS Y COMPUTACIÓN CODE: DSIC

Subject type: Optional

ECTS credits: 5

Tutor(s): María Alpuente

Year: 3 Semester: A

Aims:

A wide variety of logics (such as Horn clause logic and equational logic) and formalisms (such as operational semantics, denotational semantics, fixpoint theory, and abstract data types) have been been used to help understand various aspects of modern programming languages. In this course, the instructor presents a series of lectures to introduce such logics and formalisms with the aim of using them to study and analyze programming languages in a wide range of programming paradigms, including functional, logic, visual, and object features. Students are expected to undertake programming projects which will involve understanding and implementing applications in different programming styles.

We encourage all students with an interest in programming languages, to participate.

Syllabus:

Theory

1. Introduction: From Logic to Logic Programming

2. Logic Programming

Horn Clause Logic: Syntax and Semantics

Logic Programming: Operational Semantics, Declarative

Semantics, Fixpoint Semantics

The Programming Language Prolog

Efficient Programming in Prolog

3. Functional Programming

Equational Logic and Term Rewriting Systems.

Functional Programming: Operational Semantics, Algebraic Semantics

The Programming Language Hugs

Efficient Programming in Hugs

4. Visual Programming

Practice

1. Development of guided sessions in the laboratory using Sicstus Prolog, Visual Prolog and Hugs.

2. Implementation of a modest software project in Prolog.

Recommended reading:

  • K. R.. Apt.

From Logic Programming to Prolog. Prentice Hall. 1997.

  • R. Bird.

Introduction to Functional Programming using Haskell. Prentice-Hall, 1998.

  • J. Lloyd.

Foundations of Logic Programming. Springer-Verlag. 1987.

  • L. Sterling, E. Shapiro.

The Art of Prolog. MIT Press. 1986.

Recommended prerequisites:

Remarks: Evaluation: Theory (70%) + Laboratory (30%)