FI:PB006 Principles of Programming Lang - Course Information
PB006 Principles of Programming Languages
Faculty of InformaticsAutumn 2013
- 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)
- doc. Mgr. Jan Obdržálek, PhD. (lecturer)
Mgr. Bc. Tomáš Janík (seminar tutor)
Mgr. Jan Fikejs (assistant) - Guaranteed by
- prof. RNDr. Mojmír Křetínský, CSc.
Department of Computer Science – Faculty of Informatics
Contact Person: doc. Mgr. Jan Obdržálek, PhD.
Supplier department: Department of Computer Science – Faculty of Informatics - Timetable
- Thu 8:00–9:50 D1
- Timetable of Seminar Groups:
- Prerequisites
- Knowledge of at least one imperative (C/C++/Java) and one functional language. Knowledge of additional programming languages is an advantage.
- 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
- there are 24 fields of study the course is directly associated with, display
- Course objectives
- By the end of the course, the student will be able:
to choose a programming language (programming paradigm) suitable for a given problem domain;
to analyze both strong and weak aspects of a given programming language;
to quickly obtain an in-depth understanding a of new programming language; - Syllabus
- Brief history of programming languages, overview of basic programming paradigms.
- Syntax, language, program. Abstract and concrete syntax.
- Static semantics. Typing, validation functions.
- Name spaces, visibility of program items. Block structure and modular structure.
- Types and type systems. Ground types, type constructors. Polymorphic types, parametric polymorphism and subtype polymorphism, overloading, type classes.
- Subtypes, inheritance. Types as sorts, types as signatures, types as theories.
- Semantics, computation.
- Imperative paradigm. Commands, state, memory locations, state transformers, mutable variables, destructive assignment.
- Functional paradigm. Expressions. functions, variables. Application, abstraction, reduction strategies.
- Logic paradigm.
- Concurrency, communication. Deadlock. Interrupts, events. Semaphores, mutual exclusion, critical sections.
- Call by value, call by name. Call by result, by value-result.
- Literature
- SEBESTA, Robert W. Concepts of Programming Languages. 10th Edition. Addison-Wesley, 2012, 816 pp. ISBN 978-0-13-139531-2. info
- Programming language pragmatics. Edited by Michael Lee Scott. 2nd ed. Oxford: Elsevier Science [distributor], 2006, xxxi, 875. ISBN 9780126339512. info
- WATT, David Anthony and William FINDLAY. Programming language design concepts. Chichester: John Wiley & Sons, 2004, xviii, 473. ISBN 0470853204. info
- Teaching methods
- The course is organized as a series of lectures.
- Assessment methods
- Evaluation: final written exam.
- Language of instruction
- Czech
- Further Comments
- The course is taught annually.
- Listed among pre-requisites of other courses
- Teacher's information
- https://is.muni.cz/el/1433/podzim2013/PB006/index.qwarp
- Enrolment Statistics (Autumn 2013, recent)
- Permalink: https://is.muni.cz/course/fi/autumn2013/PB006