Překladače

Studijní materiály

Skripta

Hlavním studijním materiálem jsou skripta, která před lety vyšla tiskem:

VAVREČKOVÁ, Šárka. Programování překladačů. Opava: FPF SU v Opavě, 2008. ISBN 978-80-7248-493-5.

Pracuji na nové verzi (ukázkový kód bude postupně přepsán do C/C++, celková struktura a náplň kapitol taky vyžaduje aktualizaci). Prozatímní verze:

Novější verze je zatím ve stadiu rozpracování, najdete ji zde:

Zatím to jsou jen první dvě kapitoly. Další postupně přibudou, mezitím dávám k dispozici ty prezentace, kde se řeší přepis gramatiky či automatu na programový kód. Zbytek je použitelný i z původních skript, změna je jen v programovacím jazyce (nová skripta a prezentace obsahují kód v C++).

Prezentace

  • Implementace LL(1) gramatik (tj. přepis LL(1) gramatiky na kód):

  • Implementace silných LL(k) gramatik - v poslední části následující prezentace:

  • Implementace silných LR(1) gramatik - opět v poslední části:

  • A nakonec implementace atributového překladu, tedy propojení syntaxe a sémantiky, přičemž výsledkem je jednoprůchodový interpretační překladač (v prezentaci je nejdřív LL překlad a potom LR překlad):

Ukázky kódu pro lexikální analýzu

Následují přímo ukázky kódu, spíše pro lexikální analýzu (ať dokážete co nejrychleji začít).

  • Pseudokód přepsatelný do některého reálného jazyka:

  • 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). Programováno v C++. V přiložené dokumentaci najdete i základní informaci ke zprovoznění projektu, příp. stažení a instalaci Visual Studia (poněkud starší verze, tak to berte s rezervou).

  • HTML soubory s vloženým kódem v Javě (nejsou to všechny soubory projektu, jen ty, kde jsou použity metody, které nás zajímají z hlediska překladačů), poslední soubor je archiv obsahující přímo daný projekt v Javě:

Další

Pokud ani to nestačilo, snad najdete něco dalšího užitečného na WWW stránce předmětu (například "počítací" příklady s gramatikami, obdobu toho, co můžete čekat u zkoušky):