P006 Principles of Programming Languages

Faculty of Informatics
Autumn 2000
Extent and Intensity
2/0. 2 credit(s) (plus extra credits for completion). Recommended Type of Completion: zk (examination). Other types of completion: k (colloquium), z (credit).
Teacher(s)
RNDr. Libor Škarvada (lecturer)
Guaranteed by
prof. RNDr. Mojmír Křetínský, CSc.
Department of Computer Science – Faculty of Informatics
Contact Person: RNDr. Libor Škarvada
Prerequisites
I015 Intro to Func.Programming && I065 Algorithms I - seminar
It is recommended to go through I015 Introduction to Functional Programming and I065 Seminar on Design of Algorithms I beforehand.
Course Enrolment Limitations
The course is also offered to the students of the fields other than those the course is directly associated with.
fields of study / plans the course is directly associated with
Course objectives
The course provides the students with information about programming paradigms and basic concepts used in programming languages.
Syllabus
  • Brief history of programming languages, overview of basic programming pradigms.
  • Syntax, language, program. Abstract and concrete syntax.
  • Static semantics. Typing, validation functions.
  • Name spaces, visibility of program items. Block structure and modular structure.
  • Type systems. Types, type constructors. Polymorphic types, parametric and inclusion polymorphism, overloading, type classes. Subtypes, inherence. Types as sorts (sets), types as signatures (heterogeneous algebras), types as theories (models of theories).
  • Dynamic semantics, computation.
  • Imperative paradigm. Commands, state, memory locations, state transformers, mutable variables, destructive assignment.
  • Functional paradigm. Expressions. functions, variables. Aplication, abstraction, lambda calculus, reduction strategies, infinite data structures.
  • Logic paradigm. Formulae, predicates, satisfiability. Horn clauses, resolution, unification.
  • Concurrency, communication. Deadlock. Interrupts, events. Semaphores, mutual exclusion, critical sections.
  • Call by value, call by name. Call by result, by value-result.
Literature
  • TENNENT, R. D. Principles of programming languages. Englewood Cliffs: Prentice-Hall International. xiv, 271 s. ISBN 0-13-709873-1. 1981. info
Assessment methods (in Czech)
Kurs probíhá formou přednášek a je ukončen písemnou zkouškou.
Language of instruction
Czech
Further Comments
The course is taught annually.
The course is taught: every week.
Teacher's information
http://www.fi.muni.cz/usr/skarvada/vyuka/P006/
The course is also listed under the following terms Spring 1996, Spring 1997, Autumn 1997, Autumn 1998, Autumn 1999, Autumn 2001.
  • Enrolment Statistics (Autumn 2000, recent)
  • Permalink: https://is.muni.cz/course/fi/autumn2000/P006