Požadavky
- 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 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.
- 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.
- [HTML] Hodnocení zkoušek
Materiály
Skripta
- Skripta ve starší verzi Byla vydána, jsou dostupná v Prodejně skript a v univerzitní knihovně:
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í) - [PDF] novější verze je stále ve fázi rozpracování
Ukázky analýzy
[TXT] je textový soubor obsahující pseudokód podobný jazyku C/C++/Java/... ukazující, jak by měla vypadat lexikání analýza.
[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.
- [HTML] Reprezentace typu symbolu
- [HTML] Lexikální analýza první úrovně, zde se jedná o rozpoznání příkazu (na Příkazovém řádku je vždy prvním slovem na řádku název příkazu)
- [HTML] Na první úrovni byl rozpoznán příkaz CD, zde je jeho zpracování (analýza druhé úrovně rozpoznávající parametry a pak vyhodnocení)
- [HTML] Podobně pro příkaz CACLS
- [ZIP] Java soubory v archivu ZIP, lze otevřít v editoru zvýrazňujícím syntaxi
Implementace překladače ukázaná na příkladu:
Neřešené úkoly k procvičování
- [PDF] Úkoly pro první cvičení
- [PDF] Příloha k prezentaci a úkoly pro lexikální analýzu
- [PDF] Úkoly k syntaktické analýze
- [PDF] Úkoly k sémantické analýze
- [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é:
- [PDF] Ukázkové zadání testu č. 1 (2004)
- [PDF] Ukázkové zadání testu č. 2 (2004)
- [PDF] Ukázkové řešení skupiny A
- [PDF] Zadání všech zkoušek pro zimní semestr 2004/05
Starší příklady
[ZIP] Dokument Příklady (DOC Word 97 v ZIP archivu)
[DOC],
[DOC] Další příklady
Zdroje na Internetu:
Compiler Explorer
catalog.compilertools.net/
compilers.iecc.com/crenshaw/
www.scifac.ru.ac.za/compilers/conts.htm
Článek z 15. 11. 2001 Jak se dělá překladač
nlp.fi.muni.cz/projekty/grammar_workbench/
www.fortran-2000.com/ArnaudRecipes/CompilerTricks.html