PB006 Principy programovacích jazyků

Fakulta informatiky
podzim 2014
Rozsah
2/0. 2 kr. (plus ukončení). Doporučované ukončení: zk. Jiná možná ukončení: k, z.
Vyučující
doc. Mgr. Jan Obdržálek, PhD. (přednášející)
Garance
prof. RNDr. Mojmír Křetínský, CSc.
Katedra teorie programování – Fakulta informatiky
Kontaktní osoba: doc. Mgr. Jan Obdržálek, PhD.
Dodavatelské pracoviště: Katedra teorie programování – Fakulta informatiky
Předpoklady
SOUHLAS
V semestru "podzim 2014" předmět běží ve stávající podobě naposledy a je určen pouze studentům, kteří jej mají povinný v rámci podmínek studia. Předmět nebude klasicky přednášen, místo toho budou mít studenti k dispozici videozáznam přednášek z podzimu 2013. Případné dotazy a nejasnosti budou řešeny formou individuálních konzultací.
Znalost minimálně jednoho imperativního (C/C++/Java) a jednoho funkcionálního programovacího jazyka. Znalost dalších programovacích jazyků výhodou.
Omezení zápisu do předmětu
Předmět je nabízen i studentům mimo mateřské obory.
Mateřské obory/plány
předmět má 24 mateřských oborů, zobrazit
Cíle předmětu
Na konci tohoto kurzu bude student schopen:
zvolit programovací jazyk (popř. programovací paradigma) vhodný pro řešení daného problému;
analyzovat silné i slabé stránky daného programovacího jazyka;
rychle do hloubky porozumnět (pro něj) novému programovacícmu jazyku;
Osnova
  • Stručná historie vývoje hlavních programovacích jazyků.
  • Jména, vazby, rozsahy platnosti. Bloková struktura. Paměťová reprezentace objektů.
  • Primitivní a složené datové typy. Typová kontrola. Seznamy. Ukazatele a odkazy. Odvozování typů.
  • Tok řízení: výrazy, příkazy, řídící struktury.
  • Podprogramy: lokální definice, metrody předávání parametrů, přetížené a generické funkce. Koprogramy.
  • Výjimky: základní koncepty, příkladové studie (Ada, C++, Java), výjimky ve funkcionálních jazycích. Obsluha událostí.
  • Abstraktní datové typy: základní koncepty, zapouzdření, případové studie (Ada, C++). Parametrizované ADT, generika. Prostory jmen.
  • Objektově orientované programování: principy OOP, dědičnost, dynamická vazba, případové studie (Smallatlk, C++, Java)
  • Souběžnost: základní pojmy a principy, mechanismy vzájemného vyloučení (semafory, monitory, zasílání zpráv), případové studie (Ada, Java). Souběžnost ve funkcionálních jazycích.
  • Funkcionální programování: typické prvky funkcionálních jazyků, LISP, případová studie (Scheme). Vyhodnocovací strategie, moderní funkcionální jayky, funkcionální prvky v moderních obecných jazycích.
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
Kurs probíhá formou přednášek.
Metody hodnocení
Kurs je ukončen písemnou zkouškou na konci semestru.
Informace učitele
https://is.muni.cz/el/1433/podzim2013/PB006/index.qwarp
Další komentáře
Studijní materiály
Předmět je vyučován každoročně.
Výuka probíhá každý týden.
Nachází se v prerekvizitách jiných předmětů
Předmět je zařazen také v obdobích podzim 2002, podzim 2003, podzim 2004, podzim 2005, podzim 2006, podzim 2007, podzim 2008, podzim 2009, podzim 2010, podzim 2011, podzim 2012, podzim 2013, podzim 2020, podzim 2021, podzim 2022, podzim 2023, podzim 2024.