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.
- Introduction to compilers
- Language Processors
- Evolution of programing languages
- 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
- 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
- Error Recovery
- Panic mode
- Statement mode
- Error productions
- Global correction
- Abstract Syntax Trees
- Example of Abstract Syntax Tree
- Semantic Actions
- Semantic Actions dependencies
- Semantic Analysis
- Scope resolution
- Type checking
- Array-bound checking
- Semantic Errors
- Attribute Grammar
- Inherited attributes
- Symbol Table & Intermediate Code Generation
- Code optimization
- Git training
- Bash Trainings:
- https://drive.google.com/file/d/0B7iKrGdVkDhILU9QRWllWmNKM2M/view?usp=sharing&resourcekey=0-kupyruZHY8ZyMM6sMHahPg
- 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:
- GCC ROP attacks workshop:
- Makefile trainings:
- GDB tutorial:
- CFG tool:
-
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 % )
- Crafting a Compiler, by Charles N. Fischer
- 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
- Assembly Language Step-by-Step: Programming with Linux 3rd Edition by Jeff Duntemann