PB006 Principles of Programming Languages

Faculty of Informatics
Autumn 2012
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)
Mgr. Jan Fikejs (assistant)
Mgr. Tomáš Szaniszlo (assistant)
Guaranteed by
prof. RNDr. Mojmír Křetínský, CSc.
Department of Computer Science – Faculty of Informatics
Contact Person: RNDr. Libor Škarvada
Supplier department: Department of Computer Science – Faculty of Informatics
Timetable
Tue 18:00–19:50 D1
  • Timetable of Seminar Groups:
PB006/T01: Wed 19. 9. to Fri 21. 12. Wed 12:00–13:55 Učebna S8 (17), L. Škarvada
Prerequisites
A basic knowledge of one imperative and one functional language is beneficial.
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. Objectives: bring together different aspects of various languages and classify their principles.
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
  • WATT, Alan H. and Muffy THOMAS. Programming language syntax and semantics. New York: Prentice Hall, 1991, xvi, 389 s. ISBN 0-13-726266-3. info
  • TENNENT, R. D. Principles of programming languages. Englewood Cliffs: Prentice-Hall International, 1981, xiv, 271 s. ISBN 0-13-709873-1. info
Teaching methods
The course is organized as a series of lectures.
Assessment methods
Evaluation: final written exam.
Language of instruction
Czech
Further Comments
Study Materials
The course is taught annually.
Listed among pre-requisites of other courses
Teacher's information
http://www.fi.muni.cz/~libor/vyuka/PB006/
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 2013, Autumn 2014, Autumn 2020, Autumn 2021, Autumn 2022, Autumn 2023, Autumn 2024.
  • Enrolment Statistics (Autumn 2012, recent)
  • Permalink: https://is.muni.cz/course/fi/autumn2012/PB006