PB006 Principles of Programming Languages

Faculty of Informatics
Autumn 2014
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).
doc. Mgr. Jan Obdržálek, PhD. (lecturer)
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
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;
  • Brief history of programming languages.
  • Names, bindings, scopes. Block structure. Representing object in memory.
  • Primitive and composite types. Typechecking. Lists. Pointers and references. Type derivation.
  • Control flow: expressions, statements, control structures.
  • Subprograms: local definitions, parameter passing, overloaded and generic functions. Coroutines.
  • Exceptions: basic concepts, case studies(Ada, C++, Java), exceptions in functional programming languages. Events.
  • Abstract data types: basic concepts, encapsulation, case studies (Ada, C++). Parameterized ADT, generics. Namespaces.
  • Object oriented programming: principles, inheritance, dynamic binding, case studies (Smallatlk, C++, Java).
  • Concurrency: basic concepts, mutual exclusion mechanisms (semaphores, monitors, message passing), case studies (Ada, Java). Concurrency in functional languages.
  • Functional programming: typical features of functional languages, LISP, case study (Scheme). Evaluation strategies, modern functional languages, functional features in other languages.
    recommended 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
Teaching methods
The course is organized as a series of lectures.
Assessment methods
Evaluation: final written exam.
Language of instruction
Further Comments
Study Materials
The course is taught annually.
The course is taught: every week.
Listed among pre-requisites of other courses
Teacher's information
The course is also listed under the following terms Autumn 2002, Autumn 2003, Autumn 2004, Autumn 2005, Autumn 2006, Autumn 2007, Autumn 2008, Autumn 2009, Autumn 2010, Autumn 2011, Autumn 2012, Autumn 2013, Autumn 2020, Autumn 2021, Autumn 2022.
  • Enrolment Statistics (Autumn 2014, recent)
  • Permalink: https://is.muni.cz/course/fi/autumn2014/PB006