Syllabus
LIST OF TOPICS
1-Introduction to complier
2- Types of languages and grammars
3- Word analysis and correction of word errors
4- Syntax analysis
5- Top-down decomposition methods
6- Low-level decomposition methods
7- The primacy of the operator
8- Simple precedence
9- analysis LR(1) including SLR(1), LALR (1), and CLR (1)
10- Semantic Analysis
11- Symptom table management
12- Run-time memory allocation methods
13- Code Generation
14- Payment and code optimization
15- Automatic production of compilers
OUTCOMES
1-Familiarity with compiler components and their implementation techniques
2- Understanding the execution of programming language commands
3- Skills in producing optimal programming and fixing programming errors
4-Introduction and application of automated tools in production of compiler
REQUIRED SOFTWARES
An appropriate web programming frameworks-ANTLR
ASSESSMENT
- homeworks :15%
- projects :15%
- exams :70%
GOALS
Designing and building compilers is one of the basic concepts of computer science. Although the methods of creating compilers are slightly varied, they can be used to construct interpreters and translators of a wide variety of languages and machines. In this lesson, the topic of creating compilers is introduced by describing the main components of a compiler, their tasks, and their relevance.
After a basic introduction to compiler components and types of grammars, various translation steps such as lexical, syntactic and semantic analysis and code generation and processing are described.
REFERENCE BOOKS
Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman , Compilers:Principles, Techniques,and Tools.
Second Edition, Boston: Addison-Wesley, 2007.
please download the pdf here