Person in charge: | (-) |
Others: | (-) |
Credits | Dept. | Type | Requirements |
---|---|---|---|
7.5 (6.0 ECTS) | CS |
|
PRED
- Prerequisite for DIE |
Person in charge: | (-) |
Others: | (-) |
The aims of this subject are the following:
- For students to absorb the concepts needed in order to analyse a programming language, according to the underlying model (different classes or paradigms), its fundamental components (types system, execution model, data and process abstraction), its appropriateness for the type of application, its scope, and its development methodology.
- For students to gain an understanding of the basic theory underlying programming languages and their formal definition, especially the foundations of the functional paradigm.
- For students to acquire basic programming experience in functional languages such as Miranda or Haskell.
Estimated time (hours):
T | P | L | Alt | Ext. L | Stu | A. time |
Theory | Problems | Laboratory | Other activities | External Laboratory | Study | Additional time |
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
6,0 | 13,0 | 14,0 | 0 | 14,0 | 19,0 | 0 | 66,0 | |||
Components of a functional programming system. Evolution of the paradigm. Characteristics of current functional languages:
Intensive use of the higher order. "Currying" (Schönfinkel-Frege technique). Equation definition by patterns. Algebraic types and abstract types. Polymorphism. Deduction of types. Lazy evaluation. Higher order programming techniques in a functional language with lazy evaluation (Miranda or Haskell). Programming with infinite objects. Network solutions for streams. Comprehension-based list definition (generator/filter scheme).
|
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
5,0 | 5,0 | 0 | 0 | 0 | 15,0 | 0 | 25,0 | |||
Lambda Calculus. Reduction strategies. Normal and applied order. The problem posed by recursive definitions.
Introduction to Domain Theory. Fixed Point Theorem. Introduction to type theory. Type-based inference systems. |
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
5,0 | 5,0 | 0 | 0 | 0 | 15,0 | 0 | 25,0 | |||
Sintactic elements. Concrete and abstract syntax. The various semantic approaches and their application. The denotational approach.
Semantic definition of a minimalist imperative language. The semantic equivalence of programmes. Semantics of other classes of languages. |
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
9,0 | 3,0 | 0 | 0 | 0 | 7,0 | 0 | 19,0 | |||
- The type system. Evolution of the concept of type. Type definition mechanisms. Algebraic types. Genericity and polymorphism.
Parametric polymorphism and inclusion polymorphism. Sub-types and sub-classes. Forms of inheritance. Hierarchies. Type checking - static typing and dynamic typing. Type interference - Sequence control. At the expression level. In instructions. Between programme units. Procedures. Co-routines. Concurrent processes. Exception management tools. Sequence control of paradigms. - Data control. Associations between identifiers and objects. Overload. Aliasing. Static and dynamic resolution of links. Scope and visibility. Data sharing. Parameter-passing methods. |
Total per kind | T | P | L | Alt | Ext. L | Stu | A. time | Total |
28,0 | 28,0 | 14,0 | 0 | 14,0 | 59,0 | 0 | 143,0 | |
Avaluation additional hours | 7,0 | |||||||
Total work hours for student | 150,0 |
There will be theory classes and problems (4 hours a week, on average), and lab classes (1 hour a week, on average).
Lab classes will be spent on exercises dealt with in the classes problem sessions, and a practical piece of work tackled by students who will ideally work in groups of three.
There will be two exams and a compulsory practical session, carrying 15% of total marks.
Students attaining a grade of 4 or above will be exempted from the corresponding part of the final exam.
In this case, the final grade will be calculated as the weighted average of the three grades,
in which the part exam will make up 40% of the final grade, and the final exam 45%.
If the grade for the part exam is less than 4, the final exam will include both parts of the course and will carry a weight of 85%.
Students must have passed the Prap course.