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