Hide menu

FDA119 Principles of Programming Languages and Environments

Prerequisites

MSc in a non-computer science area and some programming experience.

Motivation and Objectives

The course presents basic principles behind the design of programming languages. Basic notions are language, abstraction, typing, and semantics. Basic principles of integrated and interactive programming systems are also presented.

Contents

1. What is a programming language?. Abstractions in programming languages. Computational paradigms. Language definition, translation and design. 2. Language design principles such as efficiency, generality, orthogonality, and uniformity. 3. Language properties. Syntax, basic semantics. Data types, type information, type constructors, type equivalence, type conversion. Control constructs, procedure environments, activations, allocations. Abstract data types. Overloading and polymorphism. Modules and separate compilation. The mathematics of abstract data types. 4. Programming paradigms. Procedural programming, object-oriented programming languages, functional programming languages. 5. Basic semantics, such as bindings, semantic functions, scope, allocation, extent, the environments. Formal semantics of programming languages. Operational semantics, Natural Semantics, and Denotational semantics. Automatic generation of language implementations from specifications. 6. Principles and methods behind interactive and integrated programming environments. The notion of consistency. Examples of such environments. Source code configuration management and version control systems and mechanisms.

Organisation

The course is mainly based on lectures, estimated 15 hours, 3 hours per week. The students should have a quick reading of the material before each lecture to enable discussions. There will also be a few practical programming exercises, e.g. generating a small translator from specifications.

Examination

Homework problems. A few practical programming excercises in Mathematica. Active participation during lectures. The first hour (9.15-10.00) of each lecture is devoted to discussions of solutions of previous exercise assignment, where students present their solutions. Anybody who has not completed those exercises should not be present the first hour, and will have to do a separate presentation of solutions.

Literature

Kenneth C. Louden: Programming Languages, Principles and Practice. PWS Publishing Company, Boston, 1993. (ISBN 0-534-93277-0)

Peter Fritzson: Specifying Practical Translators using Natural Semantics and RML. (kompendium).

Peter Fritzson: System Development Environments. (kompendium)

Peter Fritzson, Johan Gunnarsson, Mats Jirstrand: MathModelica - An Extensible Modeling and Simulation Environment with Integrated Graphics and Literate Programming. (paper, 14 pages)

Web page

Course web page: http://www.ida.liu.se/~petfr/princprog Course material and Mathematica lecture notebooks are available here. See the lectureplan for reading instructions.

Schedule

Spring 2002, Week 11-20

March 15, 9.15-12.00 hus B, Sas stora konferensrum, soon renamed to Don Knuth conf. room. (2:nd floor, B-corridor, close to south end of B-house)

March 25, 9.15-12.00 hus B, Sas stora konferensrum

April 8, 9.15-12.00 hus B, Sas stora konferensrum

May 6, 9.15-12.30 hus B, Sas stora konferensrum

May 16, 9.15-12.00 hus B, Sas stora konferensrum (last lecture, most exercises completed)

Credits

3 credits

Teacher

Peter Fritzson, e-mail petfr@ida.liu.se.


Page responsible: Director of Graduate Studies