Title:

Compiler Construction

Code:VPR
Ac.Year:ukončen 1998/1999 (Not opened)
Term:Winter
Language:Czech
Credits:6
Completion:examination (written)
Type of
instruction:
Hour/semLecturesSem. ExercisesLab. exercisesComp. exercisesOther
Hours:39130013
 ExaminationTestsExercisesLaboratoriesOther
Points:50200030
Guarantee:Hruška Tomáš, Prof. Ing., CSc., DCSE
Faculty:Faculty of Electrical Engineering and Computer Science BUT
Prerequisites: 
C and C++ Programming Languages (CPP), DCSE
Principles of Compiler Design (ZAP), DCSE
Programming Languages (PRJ), DCSE
Theoretical Computer Science 1 (TI1), DCSE
 
Learning objectives:
  To understand the advanced theory a practice of the design and implementation of programming languages compilers.
Description:
  Deterministic analysis bottom-up, LR grammars od all types - LALR1 especially. Parsing table construction. Features of the YACC and LEX constructors. Attributed grammars. Graf of dependency. Using of inherited attributes during bottom-up analysis. Error recovery after a syntactic error. Hartmann recovery schema of analysis and its implementation. Translation for RISC processors, functional and logic languages.
Learning outcomes and competences:
  Ability to realize programming language compiler manually and also using of automation devices.
Syllabus of lectures:
 
  1. LR-grammars.
  2. Varios types of LR-grammars.
  3. LALR(1) grammars.
  4. Construction of parsing table for LR-parsers, perspective prefix, canonical set of LR(0) and LR(1) items.
  5. YACC and LEX constructors as tools of operating system UNIX
  6. Examples of YACC and LEX using for design of simple language compiler.
  7. Attributed grammars.
  8. Dependency graph.
  9. Using of inherited attributes for bottom-up parsing.
  10. Syntactic-error recovery
  11. Hartmann schema and its implementation
  12. Compiling for RISC pipe-line processors
  13. Translation of functional and logic languages
Syllabus of numerical exercises:
 
  1. parsing algorith for LR-grammars..
  2. LR-parsing table construction.
  3. SLR1 parsing table.
  4. LALR parsing table
  5. YACC a attributed grammars.
  6. Translation for RISC processors.
Syllabus - others, projects and individual work of students:
 
  1. Projects of simple programming language compiler using YACC and LEX.
Fundamental literature:
 
  1. Meduna, A.: Automata and Languages - Theory and Application, Springer Verlag 1999, 916 p., ISBN 9-781852-330743
  2. Pittman,T.,Peters,J.: The Art Of Compiler Design, Prentice Hall New Jersey 1992, 420 p., ISBN 0-13-046160-1
  3. Wilhelm, R., Maurer,D,: Compiler Design, Addison Wesley Wokingham 1995, 606 p., ISBN 0-201-42290-5
Study literature:
 
  1. Češka,M.,Beneš,M.,Hruška,T.: Překladače, skriptum VUT Brno, ediční středisko VUT Brno 1993, 262 p. ISBN 80-214-0491-4
Controlled instruction:
  Attendance at the numerical exercises. 14-days cyclus. it is possible to present extraordinary in the other week.
Progress assessment:
  Half semester test. Continuous checking of the project solution by the supervisor.
Exam prerequisites:
  At least half of points obtainable during the semester (tests a project), i.e. 25 points.