Programovací jazyky a překladače
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
BI-PJP | Z,ZK | 5 | 2P+1C | česky |
- Přednášející:
- Jan Janoušek (gar.)
- Cvičící:
- Štěpán Plachý, Radomír Polách
- Předmět zajišťuje:
- katedra teoretické informatiky
- Anotace:
-
Studenti budou umět základní metody implementace běžných programovacích jazyků. Získají zkušenost s návrhem a implementací překladu jednotlivých konstruktů programovacích jazyků (datové typy, podprogramy, apod). Naučí se formálně specifikovat překlad textu, který vyhovuje určité syntaxi, do cílové formy a na základě této specifikace napsat překladač. Překladačem se zde rozumí nejen překladač programovacího jazyka, ale jakýkoliv jiný program analyzující a zpracovávající text zapsaný v jazyku, který je dán LL(1) gramatikou.
- Požadavky:
- Osnova přednášek:
-
1. Přehled programovacích jazyků, programovací paradigmata. Struktura překladače, virtuální počítač.
2. Návrh a realizace lexikálního analyzátoru.
3. LL(1) gramatiky, transformace BG na LL(1).
4. Realizace syntaktické analýzy rekurzívním sestupem.
5. Překladové gramatiky a zásobníkové překladové automaty.
6. Atributové překladové gramatiky.
7. Vnitřní formy programu, překlad a vyhodnocení výrazů.
8. Překlad do jazyka zásobníkového počítače.
9. Překlad do syntaktického stromu.
10. Specifikace a implementace datových typů.
11. Překlad typických jazykových konstrukcí.
12. Specifikace a implementace podprogramů.
13. Specifikace a implementace datových abstrakcí.
- Osnova cvičení:
-
1. Návrh a realizace lexikálního analyzátoru.
2. Realizace syntaktické analýzy rekurzívním sestupem.
3. Atributové překladové gramatiky.
4. Překlad do jazyka zásobníkového počítače.
5. Překlad do syntaktického stromu.
6. [2] Konzultace k domácí práci.
- Cíle studia:
-
Předmět obsahuje přehled obecných rysů programovacích jazyků a výklad základních metod jejich implementace. Návrh a programová realizace jednotlivých částí překladače jsou podloženy základní teorií gramatik a automatů. Pro ilustraci metod je zaveden jednoduchý programovací jazyk a navržen a realizován překladač. Dále jsou probrány základní metody implementace datových typů, podprogramů a datových abstrakcí.
- Studijní materiály:
-
1. Müller, K. Programovací jazyky. Praha: ČVUT, 2002. ISBN 80-01-02458-X.
2. Nešvera, Š. Programovací jazyky: cvičení. Praha: ČVUT, 2002. ISBN 80-01-02522-5.
- Poznámka:
-
Informace o předmětu a výukové materiály naleznete na https://courses.fit.cvut.cz/BI-PJP/
- Další informace:
- https://courses.fit.cvut.cz/BI-PJP/
- Rozvrh na zimní semestr 2020/2021:
- Rozvrh není připraven
- Rozvrh na letní semestr 2020/2021:
-
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 Pá - Předmět je součástí následujících studijních plánů:
-
- Bc. program Informatika, studijní plán pro fázi studia bez oboru, verze 2015 až 2020 (VO)
- Bc. obor Bezpečnost a informační technologie, verze 2015 až 2020 (volitelný předmět)
- Bc. obor Teoretická informatika, verze 2015 až 2020 (povinný předmět oboru)
- Bc.obor Počítačové inženýrství, verze 2015 až 2020 (volitelný předmět)
- Bakalářský obor Informační systémy a management, verze 2015 až 2020 (volitelný předmět)
- Bakalářský obor Znalostní inženýrství, verze 2015, 2016 a 2017 (volitelný předmět)
- Bakalářský obor WSI, zaměření Softwarové inženýrství, verze 2015 až 2020 (volitelný předmět)
- Bakalářský obor WSI, zaměření Webové inženýrství, verze 2015 až 2020 (volitelný předmět)
- Bakalářský obor WSI, zaměření Počítačová grafika, verze 2015 až 2020 (volitelný předmět)
- Bakalářský obor Znalostní inženýrství, verze 2018 až 2020 (volitelný předmět)
- Počítačová bezpečnost, verze 2020 (volitelný předmět)
- Návrh a programování vestavných systémů, verze 2020 (volitelný předmět)
- Počítačové systémy a sítě, verze 2020 (volitelný předmět)
- Manažerská informatika, verze 2020 (volitelný předmět)
- Softwarové inženýrství, verze 2020 (volitelný předmět)
- Systémové programování, verze 2020 (volitelný předmět)
- Webové inženýrství, verze 2020 (volitelný předmět)
- Znalostní inženýrství, verze 2020 (volitelný předmět)
- Specializace Teoretická informatika, verze 2020 (volitelný předmět)
- Magisterský program Informatika, plán pro studenty bez specializace, verze 2020 (volitelný předmět)