Překladače

 

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.
  • 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
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

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.

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]

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

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