Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2021/2022

Programovací paradigmata

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
BI-PPA Z,ZK 5 2P+2R česky
Přednášející:
Jan Janoušek (gar.), Petr Máj
Cvičící:
Radomír Polách, Jan Janoušek (gar.), Petr Máj, Tomáš Pecka, Jan Sliacký
Předmět zajišťuje:
katedra teoretické informatiky
Anotace:

Předmět se zabývá základními paradigmaty vyšších programovacích jazyků, včetně jejich základních exekučních modelů, benefitů a omezení jednotlivých přístupů. Podrobněji je probíráno funkcionální paradigma a aplikace jeho základních principů. Logické programování je představeno jako další způsob deklarativního programování. Probírané principy jsou demonstrovány na lambda kalkulu a programovacích jazycích Lisp (Racket) a Prolog. Dále je ilustrováno využití principů na moderních rozšířených programovacích jazycích, jako jsou C++ a Java.

Požadavky:

Základní znalosti imperativního programování a OOP (C a C++)

Osnova přednášek:

1. Vyšší programovací jazyky a jejich základní paradigmata.

2. Základní běhové prostředí pro vykonávání programů.

3. Funkcionální programování: Lambda kalkul.

4. Neformální úvod do LISPu, od lambda kalkulu k LISPu.

5. Rekurze, funkce vyšších řádů a jejich kompozice.

6. Makra.

7. Funkcionální programování v moderních programovacích jazycích.

8. [2] Efektivní interpretace funkcionálních jazyků: SECD virtuální stroj.

10. Logické programování: Prolog - úvod.

11. Unifikace, operátor řezu.

12. [2] Složitější příklady, grafové algoritmy v Prologu.

Osnova cvičení:

1. Lambda kalkulus I

2. Lambda kalkulus II

3. Lambda kalkulus III

4. Lisp I

5. Lisp II

6. Lisp III

7. Prolog I

8. Prolog II

Cíle studia:

Cílem předmětu je poskytnout přehled a porozumění hlavních programovacích paradigmat. Jsou vysvětleny a srovnány základníprincipy a sémantické koncepty vyšších programovacích jazyků na těchto paradigmatech založených. V oblasti objektově-orientovanéhoparadigmatu navazuje předmět na předmět Objektově-orientované programování. Do větších detailů jsou probírána funkcionální a logická(deklarativní) programovací paradigmata. Vedle vysvětlení základních principů je důraz kladen i na zvládnutí základních praktickýchpříkladů a srovnání a diskuze přínosů a nevýhod jednotlivých paradigmat a důvody pro kombinování těchto paradigmat v rámcimoderních programovacích jazyků. Dále jsou diskutovány implementační aspekty jednotlivých typů programovacích jazyků.

Studijní materiály:

1. Lee K. D. : Foundations of Programming Languages. Springer, 2014. ISBN 978-3-319-13314-0.

2. Hoyte D. : Let Over Lambda. lulu.com, 2008. ISBN 978-1435712751.

3. Brammer M. : Logic Programming with Prolog (2nd Edition). Springer, 2013. ISBN 978-1-4471-5487-7.

4. Weitz E. : Common Lisp Recipes: A Problem-Solution Approach. Apress, 2016. ISBN 978-1-4842-1177-9.

Poznámka:

Informace o předmětu a výukové materiály naleznete na https://courses.fit.cvut.cz/BI-PPA/

Na tento předmět navazuje v magisterském studiu předmět Aplikované funkcionální programování.

Další informace:
https://courses.fit.cvut.cz/BI-PPA/
Rozvrh na zimní semestr 2021/2022:
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po
Út
St
Čt
místnost T9:105
Pecka T.
Sliacký J.

18:00–19:30
(přednášková par. 1
paralelka 101)

Dejvice
Posluchárna

místnost T9:155
Janoušek J.
Máj P.

11:00–12:30
(přednášková par. 1)
Dejvice
Posluchárna
místnost TH:A-s135
Pecka T.
Máj P.

14:30–16:00
(přednášková par. 1
paralelka 102)

Thákurova 7 (FSv-budova A)
As135
Rozvrh na letní semestr 2021/2022:
Rozvrh není připraven
Předmět je součástí následujících studijních plánů:
Platnost dat k 18. 1. 2022
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet3461206.html