Introduction To Complier
Introduction To Complier
Construction
Zahir Abbas
2
Objectives
• Be able to build a compiler for a (simplified)
(programming) language
• Know how to use compiler construction tools,
such as generators of scanners and parsers
• Be familiar with assembly code and virtual
machines, such as the JVM, and bytecode
• Be able to define LL(1), LR(1), and LALR(1)
grammars
• Be familiar with compiler analysis and
optimization techniques
• … learn how to work on a larger software project!
3
Complier
4
History
5
Cont
6
Interpreter
7
Assemblers
8
Linkers
9
Loader
10
Preprocessor
11
Editors
12
Debuggers
13
Requirements
14
Source Target
Compiler
Program Program
(cont’d)
• “Interpretation”
– Performing the operations implied by the
source program
– Oversimplified view:
Source
Program
Interpreter Output
Input
Error messages
The Analysis-Synthesis Model of
16
Compilation
Preprocessor
Source Program
Compiler
Target Assembly Program
Assembler
Relocatable Object Code
Linker Libraries and
Relocatable Object Files
Absolute Machine Code
18
Compiler-Construction Tools
• Software development tools are available to
implement one or more compiler phases
– Scanner generators
– Parser generators
– Syntax-directed translation engines
– Automatic code generators
– Data-flow engines