CD Greeshma
CD Greeshma
Prepared By
Prof.G.Greeshma
AP / CSE
JCT College of Engineering and Technology
1
Outlines
1.1 Overview and History
1.2 What Do Compilers Do?
1.3 The Structure of a Compiler
1.4 The Syntax and Semantics of Programming Languages
1.5 Compiler Design and Programming Language Design
1.7 Computer Architecture and Compiler Design
1.8 Compiler Design Considerations
2
Overview and History (1)
Cause
Software for early computers was written in assembly language
The benefits of reusing software on different CPUs started to become
significantly greater than the cost of writing a compiler
3
Overview and History (2)
Compiler technology
is more broadly applicable and has been employed in rather
unexpected areas.
Text-formatting languages,
like nroff and troff; preprocessor packages like eqn, tbl, pic
Silicon compiler for the creation of VLSI circuits
Command languages of OS
Query languages of Database systems
4
What Do Compilers Do (1)
Programming Machine
Language Compiler Language
(Source) (Target)
5
What Do Compilers Do (2)
Compilers may generate three types of code:
Pure Machine Code
Machine instruction set without assuming the existence of any
operating system or library.
Mostly being OS or embedded applications.
Augmented Machine Code
Code with OS routines and runtime support routines.
More often
Virtual Machine Code
Virtual instructions, can be run on any architecture with a virtual
machine interpreter or a just-in-time compiler
Ex. Java
6
What Do Compilers Do (3)
Another way that compilers
differ from one another is in the format of the target
machine code they generate:
Assembly or other source format
Relocatable binary
Relative address
A linkage step is required
Absolute binary
Absolute address
Can be executed directly
7
The Structure of a Compiler (1)
Compiler
Analysis Synthesis
8
The Structure of a Compiler (2)
Source
Program Tokens Syntactic Semantic
Scanner Parser
(Character Stream) Structure Routines
Intermediate
Representation
Code
Generator
9
Target machine code
The Structure of a Compiler (3)
Source
Program Tokens Syntactic Semantic
Scanner Parser
(Character Stream) Structure Routines
Intermediate
Scanner Representation
Source
Program Tokens Syntactic Semantic
Scanner Parser
(Character Stream) Structure Routines
Intermediate
Parser Representation
Source
Program Tokens Syntactic Semantic
Scanner Parser
(Character Stream) Structure Routines
Intermediate
Semantic Routines Representation
Perform two functions
Check the static semantics of each construct
Symbol and
Do the actual translation Optimizer
The heart of a compilerAttribute
Tables
Syntax Directed Translation
Semantic Processing Techniques
(Used
by all
IR (Intermediate Representation)
Phases of
The Compiler) Code
Generator
12
Target machine code
The Structure of a Compiler (6)
Source
Program Tokens Syntactic Semantic
Scanner Parser
(Character Stream) Structure Routines
Intermediate
Optimizer Representation
Source
Program Tokens Syntactic Semantic
Scanner Parser
(Character Stream) Structure Routines
Intermediate
Code Generator Representation
Interpretive Code Generation
Generating Code from Tree/Dag
Grammar-Based Code Generator
Optimizer
Code
Generator
14 Target machine code
The Structure of a Compiler (8)
Code Generator
[Intermediate Code Generator]
Tokens
Code Optimizer
Parser
[Syntax Analyzer]
Optimized Intermediate Code
Parse tree
Code Optimizer
Semantic Process
[Semantic analyzer] Target machine code
15