IA010 Principles of Programming Languages

Fakulta informatiky
jaro 2017
Rozsah
2/0. 2 kr. (plus ukončení). Doporučované ukončení: zk. Jiná možná ukončení: k, z.
Vyučující
Dr. rer. nat. Achim Blumensath (přednášející)
Garance
prof. RNDr. Mojmír Křetínský, CSc.
Katedra teorie programování - Fakulta informatiky
Dodavatelské pracoviště: Katedra teorie programování - Fakulta informatiky
Rozvrh
Čt 10:00–11:50 A318
Předpoklady
Knowledge of at least one imperative (C/C++/Java) and one functional language. Knowledge of additional programming languages is an advantage.
Omezení zápisu do předmětu
Předmět je nabízen i studentům mimo mateřské obory.
Mateřské obory
předmět má 16 mateřských oborů, zobrazit
Cíle předmětu
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;
Osnova
  • 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.
Literatura
    doporučená literatura
  • SEBESTA, Robert W. Concepts of Programming Languages. 10th Edition. : Addison-Wesley, 2012. 816 s. 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
Výukové metody
The course is organized as a series of lectures.
Metody hodnocení
Evaluation: final written exam.
Vyučovací jazyk
Angličtina
Další komentáře
Studijní materiály
Předmět je vyučován každoročně.
Předmět je zařazen také v obdobích jaro 2015, jaro 2016, jaro 2018, jaro 2019, jaro 2020.