This GIT repository contains a list of workshops and labs for compilers' design lecture. The level of complexity is for undergraduate students of computer science careers at ITESM university
This is plan to be deliverable in a period of time of 4 to 6 months. It is adjustable in time and order; however the expectations and basic topics should keep the essence of the plan.
Agenda:
- Introduction to compilers
- Language Processors
- The Structure of a Compiler
- Lexical Analysis
- Syntax Analysis
- Semantic Analysis
- Intermediate Code Generation
- Code Optimization
- Code Generation
- Symbol-Table Management
- The Grouping of Phases into Passes
- Compiler-Construction Tools
- Compilers- Evolution, Basics and Optimizations
- Evolution of Compilers
- Architecture specific optimizations
- Programming Language Basics
- Simple Syntax directed Translation
- Syntax definition
- Definition of gramars
- Parse Trees
- Ambiguity
- Lexical Analyser and Regex
- Regex
- DFA
- LEX
- YACC
- Grammars and Parsing
- Grammars in our lifes
- Parse trees
- Properties of CFGs
- Reduced Gramars
- Backus-Naur Form (BNF) notation
- Parsers and Recognizers
- Top-Down Parsing
- LL(k)
- Recursive-descent parsers
- Eliminating Ambiguity
- Elimination of left recursion
- Bottom-Up Parsing
- LR(k)
- Shift-reduce
- Simple LR Parser algorithm
Extra topic Trainings ( in case you need them )
- Git training
- Bash Trainings:
- https://drive.google.com/file/d/0B7iKrGdVkDhILU9QRWllWmNKM2M/view?usp=sharing
- https://drive.google.com/file/d/0B7iKrGdVkDhIWGVhVzhtTlZjWGc/view?usp=sharing
- https://drive.google.com/file/d/0B7iKrGdVkDhIRkVPSlNPdkdSS2c/view?usp=sharing
- https://drive.google.com/file/d/0B7iKrGdVkDhIbkdKYWI1R19oMzQ/view?usp=sharing
- GCC for performance Trainings:
Ponderation:
-
35% First Term
- 15% Weekly Quizzes
- 5% Reading Summaries
- 15% Labs
-
35% Second Term
- 15% Weekly Quizzes
- 5% Reading Summaries
- 15% Labs
-
30% Final Exam ( if student decides to do final project it is = 10% and final exam 20 % )
Bibliography:
Mian Book :
- Crafting a Compiler with C, by Charles N. Fischer
Other good books :
- Introduction to computer theory Book by Daniel I. A. Cohen
- Principles of Compiler Design Textbook by Alfred Aho and Jeffrey Ullman
- Compilers: Principles, Techniques, and Tools; Alfred Aho, Jeffrey Ullman, Monica S. Lam, and Ravi Sethi
- Languages and Machines: An Introduction to the Theory of Computer Science 3rd Edition