Hlavní stránka

Překladače

Kódy:

Vyučován v zimním semestru (2016/17)

Přednáška čtvrtek 2.-5. hodina (8:55-12:05), v sudé týdny, učebna B3b
Cvičení pondělí 9.-10. hodina (14:45-16:15), učebna B3b

Pro kombinované studium: dle rozvrhu.

Požadavky

Zápočet:
  • Dva testy na cvičeních, podmínky: u každého min. 50 % bodů, navíc ke každému příkladu musí být alespoň jeden bod.
  • Naprogramování lexikální části projektu k odevzdání nejpozději do konce listopadu, podrobnosti na prvním cvičení či přednášce, zadání je na začátku stránky [HTML]
  • Pokud lexikální analýzu neodevzdáte včas: za každé započaté dva týdny klíčové slovo navíc.
  • Testy jsou vždy k nahlédnutí u vyučujícího, čehož by měli využít především všichni, kdo mají málo bodů!
Zkouška:
  • Zkouška bude písemná, u nejasností také ústní. Témata podle přednášek, viz materiály zmíněné na této stránce.
  • Předpokladem je udělení zápočtu z tohoto předmětu (pokud není zápočet udělen do termínu zkoušky, píšu si známku zatím jen k sobě).
  • [PDF] Otázky ke zkoušce (poslední aktualizace 2. 1. 2012).
  • Odevzdání projektu (tj. dokončit to, co bylo započato lexikální analýzou k zápočtu) - zadání: [HTML] - termín: nejpozději do konce zkouškového období
  • Student by měl být schopen svůj projekt obhájit, tj. prokázat, že se ve svém kódu vyzná a ví, co se v které části děje, součástí zkoušky je také diskuse o projektu.
  • [PDF] Výsledky - zápočty a zkoušky (akad. rok 2016/17)
  • [HTML] Hodnocení zkoušek
Napsání zkouškové písemky a odevzdání projektu jsou na sobě časově nezávislé, ale s odevzdáním projektu byste neměli dlouho otálet (do konce zkouškového období, ovšem kdo bude mít v tu dobu čas na programování?), podrobnosti na přednášce.

Materiály

Skripta: Byla vydána, jsou dostupná v Prodejně skript:
Vavrečková, Š.: Programování překladačů. Slezská univerzita Opava, 2008, 218 s., ISBN 978-80-7248-493-5
[PDF] Errata (upozornění na chyby nebo doplnění)

Ukázky analýzy

[ZIP] je archiv s projektem programovaným v C++ (MS Visual Studio). Obsahuje ukázku lexikálního analyzátoru pro jazyk se 4 klíčovými slovy (pozor, v projektu seminární práce musíte mít min. 5 klíčových slov). V přiložené dokumentaci najdete i základní informaci ke zprovoznění projektu, příp. stažení a instalaci Visual Studia.

Následující soubory jsou psány v Javě a obsahují část kódu použitého v projektu simulátoru Příkazového řádku. Neděste se rozsahu a množství symbolů, pro předepsané minimum 5 klíčových slov by symbolů samozřejmě bylo výrazně méně a kód by byl mnohem kratší.

Všimněte si, jakým způsobem je řešeno rozpoznání klíčových slov takových, že jeden název je součástí názvu druhého, například u klíčových slov AT a ATTRIB.

K projektu samozřejmě patří ještě další soubory, například z kódu je zřejmé, že je definována třída TData obsahující veškerá potřebná data včetně uložené adresářové struktury, seznamu uživatelů a skupin, přístupových oprávnění apod.

Implementace překladače ukázaná na příkladu:

[PDF] [ZIP], [PDF 2p.ZIP]

Neřešené úkoly k procvičování

  1. [PDF] Úkoly pro první cvičení
  2. [PDF] Příloha k prezentaci a úkoly pro lexikální analýzu
  3. [PDF] Úkoly k syntaktické analýze
  4. [PDF] Úkoly k sémantické analýze
  5. [PDF] Úkoly k syntaxí řízenému překladu

K zápočtovým testům a zkouškovým písemkám

[ZIP] archiv s naskenovanými řešenými příklady z některých písemek; písemky většinou nejsou zcela aktuální, neberte je jako předlohu pro typickou strukturu příkladů, řešení je spíše kusé pro kontrolu vlastních postupů (to je ten papír, který pro všechny skupiny vyplňuji, když studenti píšou testy, aby se mi dobře kontrolovaly výsledky)

Následující materiály již nejsou aktuální (změnil se především způsob hodnocení), ale jako ukázky příkladů jsou použitelné:

Starší příklady

[ZIP] Dokument Příklady (DOC Word 97 v ZIP archivu)
[DOC], [DOC] Další příklady

Literatura

MELICHAR, B. - ČEŠKA, M. - JEŽEK, K. - RICHTA, K. Konstrukce překladačů I, II. Praha: ČVUT, 1999.
ČEŠKA, M. - BENEŠ, M. - HRUŠKA, T. Překladače. Brno: VUT, 1993.
MELICHAR, B. Základy překladačů. Praha: ČVUT, 1989.
MELICHAR, B. Základy překladačů. Cvičení. Praha: ČVUT, 1993.

Zdroje na Internetu:

catalog.compilertools.net/
compilers.iecc.com/crenshaw/
www.scifac.ru.ac.za/compilers/conts.htm
www.cs.vsb.cz/saloun/educ/preklad/osnova.html
homen.vsb.cz/~beh008/main/frvs2003.html
Článek z 15. 11. 2001 Jak se dělá překladač
k-prog.wz.cz/progjaz/index.php
srakyi.modry.cz/download/doc/filozofie_programovani.html
nlp.fi.muni.cz/projekty/grammar_workbench/
www.cs.vu.nl/~dick/MCD.html
www.fortran-2000.com/ArnaudRecipes/CompilerTricks.html