FI:P006 Principles of Prog.Languages - Course Information
P006 Principles of Programming Languages
Faculty of InformaticsAutumn 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
- Informatics (programme FI, B-IN)
- Informatics (programme FI, M-IN)
- Upper Secondary School Teacher Training in Informatics (programme FI, M-IN)
- Upper Secondary School Teacher Training in Informatics (programme FI, M-SS)
- Information Technology (programme FI, B-IN)
- 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, 1981, xiv, 271 s. ISBN 0-13-709873-1. 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/
- Enrolment Statistics (Autumn 2000, recent)
- Permalink: https://is.muni.cz/course/fi/autumn2000/P006