====== VYP: Výstavba překladačů ====== Zde bude seznam přednášek (audio záznamů a pdf prezentací) posledních několika let přednášek v předmětu magisterského studia [[http://www.fit.vutbr.cz/study/courses/VYP|Výstavba překladačů (VYP)]] vyučovaného v angličtině (některé materiály jsou k dispozici i v češtině). ===== 2005 - 2006 (Zimní semestr 2005) ===== === Lectures === Lecture notes are available in PDF format or animated HTML pages ^Name of chapter ^File to print (EN) ^Animation (EN) ^File to print (CZ) ^Animation (CZ) ^Record ^Chapters in record ^ |1. Introduction to Compilers|{{.2005-2006:prednesy:Vyp01-en.pdf}}|{{.2005-2006:prednesy:Vyp01-en.zip}}|{{.2005-2006:prednesy:Vyp01-cz.pdf}}|{{.2005-2006:prednesy:Vyp01-cz.zip}}|{{.2005-2006:prednesy:Vyp01a.mp3}}|Vyp01: 01/17-02/17| | | | | | |{{.2005-2006:prednesy:Vyp01b.mp3}}|Vyp01: 03/17-17/17| |2. Lexical analysis: Models|{{.2005-2006:prednesy:Vyp02-en.pdf}}|{{.2005-2006:prednesy:Vyp02-en.zip}}|{{.2005-2006:prednesy:Vyp02-cz.pdf}}|{{.2005-2006:prednesy:Vyp02-cz.zip}}|{{.2005-2006:prednesy:Vyp02a.mp3}}|Vyp02: 01/29-29/29| | | | | | |{{.2005-2006:prednesy:Vyp02b.mp3}}|Vyp03: 01/35-22/35| |3. Lexical Analysis: Design|{{.2005-2006:prednesy:Vyp03-en.pdf}}|{{.2005-2006:prednesy:Vyp03-en.zip}}|{{.2005-2006:prednesy:Vyp03-cz.pdf}}|{{.2005-2006:prednesy:Vyp03-cz.zip}}|{{.2005-2006:prednesy:Vyp03a.mp3}}|Vyp03: 23/35-35/35| | | | | | |{{.2005-2006:prednesy:Vyp03b.mp3}}|Vyp04: 01/50-19/50| |4. Syntactic analysis: Models|{{.2005-2006:prednesy:Vyp04-en.pdf}}|{{.2005-2006:prednesy:Vyp04-en.zip}}|{{.2005-2006:prednesy:Vyp04-cz.pdf}}|{{.2005-2006:prednesy:Vyp04-cz.zip}}|{{.2005-2006:prednesy:Vyp04a.mp3}}|Vyp04: 20/50-38/50| | | | | | |{{.2005-2006:prednesy:Vyp04b.mp3}}|Vyp04: 39/50-50/50| |5. Top-Down Parsing|{{.2005-2006:prednesy:Vyp05-en.pdf}}|{{.2005-2006:prednesy:Vyp05-en.zip}}|{{.2005-2006:prednesy:Vyp05-cz.pdf}}|{{.2005-2006:prednesy:Vyp05-cz.zip}}|{{.2005-2006:prednesy:Vyp05a.mp3}}|Vyp05: 01/57-13/57| | | | | | |{{.2005-2006:prednesy:Vyp05b.mp3}}|Vyp05: 14/57-29/57| | | | | | |{{.2005-2006:prednesy:Vyp06a.mp3}}|Vyp05: 15/57-49/57| | | | | | |{{.2005-2006:prednesy:Vyp06b.mp3}}|Vyp05: 50/57-57/57| |6. Bottom-Up Parsing|{{.2005-2006:prednesy:Vyp06-en.pdf}}|{{.2005-2006:prednesy:Vyp06-en.zip}}|{{.2005-2006:prednesy:Vyp06-cz.pdf}}|{{.2005-2006:prednesy:Vyp06-cz.zip}}|{{.2005-2006:prednesy:Vyp07a.mp3}}|Vyp06: 01/42-09/42| | | | | | |{{.2005-2006:prednesy:Vyp07b.mp3}}|Vyp06: 10/42-17/42| | | | | | |{{.2005-2006:prednesy:Vyp08a.mp3}}|Vyp06: 18/42-42/42 Vyp07: 01/69-11/69| |7. Syntax Directed Translation and Intermediate Code|{{.2005-2006:prednesy:Vyp07-en.pdf}}|{{.2005-2006:prednesy:Vyp07-en.zip}}|{{.2005-2006:prednesy:Vyp07-cz.pdf}}|{{.2005-2006:prednesy:Vyp07-cz.zip}}|{{.2005-2006:prednesy:Vyp09a.mp3}}|Vyp07: 12/69-50/69| | | | | | |{{.2005-2006:prednesy:Vyp10a.mp3}}|Vyp07: 50/69-69/69| |8. Optimization and Code Generation|{{.2005-2006:prednesy:Vyp08-en.pdf}}|{{.2005-2006:prednesy:Vyp08-en.zip}}|{{.2005-2006:prednesy:Vyp08-cz.pdf}}|{{.2005-2006:prednesy:Vyp08-cz.zip}}|{{.2005-2006:prednesy:Vyp10b.mp3}}|Vyp08: 01/43-24/43| |9. General Parsing Methods|{{.2005-2006:prednesy:Vyp09-en.pdf}}|{{.2005-2006:prednesy:Vyp09-en.zip}}|{{.2005-2006:prednesy:Vyp09-cz.pdf}}|{{.2005-2006:prednesy:Vyp09-cz.zip}}|{{.2005-2006:prednesy:Vyp11a.mp3}}|Vyp08: 25/43-43/43 Vyp09: 01/09-09/09| === Advanced lectures === Pro rozšíření obzorů jsou zařazeny nezkoušené pasáže z moderní teoretické informatiky. ^Name of chapter ^File to print (EN) ^Related to ^ |Scattered Context Grammars|{{.2005-2006:prednesy:Vyp03adv.pdf}}|Vyp03| |Regulated Rewritting|{{.2005-2006:prednesy:Vyp04adv.pdf}}|Vyp04| |0L-systems|{{.2005-2006:prednesy:Vyp05adv.pdf}}|Vyp05| ===== Technologie a nástroje pro návrh a implementaci překladače ===== * [[http://dinosaur.compilertools.net/|LEX & YACC]] - klasické nástroje na generování lexikálních a syntaktických analyzátorů (vznikly na operačním systému UNIX) * John R. Levine, Tony Mason, Doug Brown: Lex & Yacc. 2nd Edition, O'Reilly & Associates, 1992. ISBN: 1-565-92000-7. * [[http://flex.sourceforge.net|Flex homepage]] - modernější implementace nástroje LEX * [[http://www.gnu.org/s/bison|Bison homepage]] - modernější implementace nástroje YACC * John Levine: flex & bison. O’Reilly Media, 2009. ISBN: 978-0-596-15597-1. * http://web.iitd.ac.in/~sumeet/flex__bison.pdf * Bison. The GNU Project. Dostupné z: http://www.gnu.org/software/bison/. * [[http://www.antlr.org/|ANTLR Parser Generator homepage]] - velmi populární nástroj pro jazyk Java (ale podporuje i generování zdrojových textů v jiných jazycích) umožňující LL(*) resp. ALL(*) parsing * Terence Parr: The Definitive ANTLR 4 Reference. 2nd Edition, Pragmatic Bookshelf, 2013. ISBN: 978-1-94122-262-1. * [[http://www.antlr.org/about.html|Odkazy na několik teoretických článků o vyvinutých algoritmech]] * [[http://www.dabeaz.com/ply/|PLY (Python Lex-Yacc)]] - kombinace Lex a Yacc do syntaxe a dynamického chování jazyka Python nevyžaduje oddělení fáze vytvoření překladače a použití překladače (vytvoření překladadě je součástí zdrojového kódu, který překladač může i využít). Méně populární/známé nástroje: * [[http://gplex.codeplex.com/|GPLEX]], [[http://gppg.codeplex.com/|GPPG]] homepage * [[http://simpleparse.sourceforge.net/|SimpeParse]] - základní analýza na základě daného EBNF (v jazyce Python) * [[https://sourceforge.net/projects/elcc/|Elcc: Early Parser Generator]] * a desítky dalších * Prozkoumat: [[http://pages.cpsc.ucalgary.ca/~aycock/spark/|SPARK]] (Scanning, PArsing, Rewriting Kit)