| 
    
      
       Links 
                   Ministery of Higher Education 
                            Ministery of Higher Education in 
                              Erbil   
                              Salahaddin University
                             
                          University of Sulaimani    
                              Koya University    
                              University 
                              of Kurdistan   
  | 
    
    
      Compilers
Total hours: 60 theory + 60 practice. 
      Aim of Subject:
 Introduce basic knowledge to students in the area of language processors–theory and practice of compiler writing. Improve programming skills by learning how a compiler works. Design and implement parts of a compiler for a small programming language. 
Subjects Names:
Compilers.
Introduction to compiling, Basic concepts, Analysis of the source program, Phases of compiler
 Introduction to Language Processors. 
Evolution of programming languages. Classification of language processors. Basic algorithm of a compiler and an interpreter.
 Formal Languages. 
Sets, alphabets, strings, languages. Operators on sets of strings.
 Lexical Analysis
The role of the lexical analyzer, Basic idea. Lexical units, specification of tokens, Recognition of token.
 Symbol table  
 Compiler-Compilers
 ( Flex – a scanner generator,. Regular expressions. Actions. Ambiguous source rules. Source definitions. Examples.)
 Syntax analysis 
 Introduction to parser, derivation, parse tree, ambiguity
Eliminating ambiguity, Associatively of operator
 Top down parsing
Precedence of operator, Elimination of left  recursion,
Left factoring a grammar
 Non recursive predictive parsing
First and Follow function
LL(1) grammars
Constructing Predictive parsing table
 Bottom-Up parsing
   LR(0) Parser                                                                                 
 Compiler-Compilers.
Bison – a parser generator. Source – basic specifications. Actions. Ambiguity and conflicts. Examples.
 - SLR(1) Parser, LR(1)   Parser, LALR(1) Parser
 - Type checking
 - Intermediate Code Generation
 - Code Optimization 
  
****************************************************** 
References: 
Compilers: Principles, Techniques and Tools, Aho, Sethi, and Ullman, Addison-Wesley, 1986.
 - cs.www.edu/~aabyan/Linux/compiler.pdf
  
 
     |