尊敬的 微信汇率:1円 ≈ 0.046166 元 支付宝汇率:1円 ≈ 0.046257元 [退出登录]
SlideShare a Scribd company logo
Lecture 5
The Context of a Compiler
• In addition to a compiler; several other
programs may be required to create an
executable target program.
• A source program may be divided into
modules stored in separate files.
• The task of collecting the source program is
sometimes entrusted to a distinct program
called a preprocessor.
The Context of a Compiler
• The target program created by compiler
may require further processing before it can
be run.
• The compiler creates assembly code that is
translated by an assembler into machine
code and then linked together with some
library routines into the code that actually
runs on the machine.
Preprocessors, Compilers,
Assemblers, and Linkers
Preprocessor
Compiler
Assembler
Linker
Skeletal Source Program
Source Program
Target Assembly Program
Relocatable Object Code
Absolute Machine Code
Libraries and
Relocatable Object Files
5
Analysis of the source program
Linear analysis:
• In which the stream of characters making
up the source program is read from left to
right and grouped into tokens that are
sequences of characters having a collective
meaning.
• In compiler, linear analysis is also called
LEXICAL ANALYSIS or SCANNING
Analysis of the source program
Hierarchical Analysis:
• In which characters or tokens are grouped
hierarchically into nested collections with
collective meaning.
• In compiler, hierarchical analysis is called
parsing or syntax analysis.
Analysis of the source program
Semantic analysis:
• In which certain checks are performed to
ensure that the components of a program fit
together meaningfully.
Semantic Analysis – Complications
• Handling ambiguity
– Semantic ambiguity: “I saw the Habib Bank Plaza
flying into Karachi”
Lexical Analysis
• For example in lexical analysis the characters in the
assignment statement
position := initial + rate * 60
would be grouped into the following tokens.
1. The identifier position
2. The assignment symbol :=
3. The identifier initial
4. The plus + sign
5. The identifier rate
6. The multiplication sign *
7. The number 60
Syntax Analysis
• It involves grouping the tokens of the
source program into grammatical phrases
that are tied by the compiler to synthesize
output.
• Usually the grammatical phrases of the
source program are represented by a parse
tree.
Parse tree
:=
identifier
identifier
identifier
+
*
60
Assignment
statement
position : = initial + rate * 60
position
expression
expression
expression
expression
initial
expression
rate
number
Parse tree tokens
• In expression position: = initial + rate * 60
the phrase rate * 60 is a logical unit.
• As multiplication is performed before addition.
• The expression initial + rate is followed by a *, it
is not grouped into a single phrase by itself.
Rules to identify an expression
Rule 1. Any identifier is an expression
Rule 2. Any number is an expression
Rule 3. If expression1 and expression2 are
expressions, then so are
expression1 + expression2
expression1 * expression2
Explanation of rules
• Rule (1) and (2) are (non-recursive) basic rules,
while (3) defines expression in terms of operators
applied to other expressions.
• By Rule (1), initial and rate are expressions
• By Rule (2), 60 is an expression
• By Rule (3), we can first infer that rate*60 is an
expression & finally that initial + rate * 60 is an
expression
Rule to identify a statement
• If identifier1 is an identifier, and expression2
is an expression then
identifier1 : = expression2
is a statement
Lecture 6
Context free grammar
• Lexical constructs do not require recursion,
while syntactic constructs often do.
• Context free grammars are a
formalization of recursive rules that can be
used to guide syntactic analysis.
Context free grammar
• For example recursion is not required to recognize
identifiers, which are typically strings of letters and digits
beginning with a letter.
• We would normally recognize identifiers by a simple scan
of the input stream, waiting until a character that was
neither a letter nor a digit was found
• And then grouping all the letters and digits found up to
that point into an identifier token.
• The characters so grouped are recorded in a table called a
symbol table, and remove from the input so that
processing of the next token can begin.
Phases of Compiler
Syntax Analyzer
Lexical Analyzer
Semantic Analyzer
Intermediate code generator
Code optimizer
Code generator
Target Program
Source Program
Symbol table
Manger
Error Handler
Symbol table Management
• An essential function of a compiler is to
record the identifiers used in the source
program and collect information about
various attributes of each identifier.
• These attributes may provide information
about the storage allocated for an identifier,
its type, its scope (where in the program it is
valid) etc
Symbol table
• A symbol table is a data structure containing a
record for each identifier, with fields for the
attributes of the identifier.
• The data structure allow us to find the record for
each identifier quickly and to store or retrieve data
from that record quickly.
• When an identifier in the source program is
detected by the lexical analyzer, the identifier is
entered into the symbol table.
Error detection and Reporting
• Each phase can encounter errors.
• After detecting an error, a phase must
somehow deal with that error, so that
compilation can proceed, allowing further
errors in the source program to be detected.
• A compiler that stops when it finds the first
error is not as helpful as it could be.
Error detection and Reporting
• The syntax and semantic analysis phases usually
handle a large fraction of the errors detectable by
the compiler.
• The lexical phase can detect errors where the
characters remaining in the input do not form any
token of the language.
• Errors where the token stream violates the
structure rules (Syntax) of the language are
determined by the syntax analysis phase.
Error detection and Reporting
• During semantic analysis the compiler tries
to detect constructs that have the right
syntactic structure but no meaning to the
operation involved.
• For example if we try to add two identifiers,
one of which is the name of an array and
the other the name of a procedure.
The Analysis Phase
position : = initial + rate * 60
• The lexical analysis phase reads the characters in
the source program and groups them into a stream
of tokens in which each token represents a
logically cohesive sequence of characters, such as
an identifier, a keyword (if, while etc), a
punctuation character or a multi-character operator
like :=
• The character sequence forming a token called the
lexeme for the token.
The Analysis Phase (Cont..)
• Certain tokens will be augmented by a
“lexical value”.
• For example when an identifier like rate is
found, the lexical analyzer not only
generates token, say id, but also enters the
lexeme rate into the symbol table, if it is not
already there.
Intermediate code generation
• After syntax and semantic analysis, some
compilers generate an explicit intermediate
representation of the source program.
• This intermediate representation has two
important properties;
– It should be easy to produce
– Easy to translate into the target machine
Intermediate code generation
• The intermediate representation can have a
variety of forms.
• It may called as “three address code”,
which is like the assembly language for a
machine in which every memory location
can act like a register.
Intermediate code generation
• Three address code consists of a sequence of
instructions, each of which has at most three
operands.
• The source program might appear in three address
code as
temp1 := inttoreal (60)
temp2 := id3 * temp1
temp3 := id2 + temp2
id1 := temp3
Intermediate code generation
:=
+
*
id 1
id 2
id 3
nu
Intermediate code generation
• The intermediate form has several
properties.
• First each three address instruction has at
most one operator in addition to the
assignment.
• Thus when generating these instructions,
the compiler has to decide on the order in
which operations are to be done.
Intermediate code generation
• In our example the multiplication precedes the
addition in the source program.
• Second the compiler must generate a temporary
name to hold the value computed by each
instruction.
• Third, some “three address” instructions have
fewer than three operands for example the first
and last instruction in our example.
Code Optimization
• The code optimization
phase attempts to
improve the
intermediate code, so
the faster running
machine code will
result.
Code Optimization
temp1 := id3 * 60.0
Id1 := id2 + temp1
• There is nothing wrong with this simple algorithm; since the problem
can be fixed during the code optimization phase.
• The compiler can deduced that the conversion of 60 from integer to
real representation can be done once and for all at compile time; so the
inttoreal operation can be eliminated.
• Besides temp3 is used only once, to transmit its value to id1.
• It then becomes safe to substitute id1 for temp3, whereupon the last
statement of intermediate code is not needed and the optimized code
results.
Code Optimization
• There is a great variation in the amount of
code optimization different compiler
performs.
• In those that do the most, called “optimizing
compilers”
• A significant fraction of the time of the
compiler is spent on this phase
Code generation
• The final phase of the compiler
is the generation of target code,
consisting normally of
relocatable machine code or
assembly code.
• Memory locations are selected
for each of the variables used
by the program.
• Intermediate instructions are
each translated into a sequence
of machine instructions that
perform the same task.
• A crucial aspect is the
assignment of variable to
register.
Code generation
• The first and second
operands of each
instruction specify a
source and destination
respectively.
• The F in each
instruction tells us that
instructions deal with
floating point numbers
Code optimization & Code
generation

More Related Content

What's hot

Chapter 1 1
Chapter 1 1Chapter 1 1
Chapter 1 1
bolovv
 
phases of a compiler
 phases of a compiler phases of a compiler
phases of a compiler
Ms.SHANTHI.S CSE
 
Error detection recovery
Error detection recoveryError detection recovery
Error detection recovery
Tech_MX
 
Different phases of a compiler
Different phases of a compilerDifferent phases of a compiler
Different phases of a compiler
Sumit Sinha
 
Compiler unit 1
Compiler unit 1Compiler unit 1
Compiler unit 1
BBDITM LUCKNOW
 
Compiler Construction
Compiler ConstructionCompiler Construction
Compiler Construction
Ahmed Raza
 
Phases of compiler
Phases of compilerPhases of compiler
Phases of compiler
Karan Deopura
 
Compiler Design Introduction
Compiler Design IntroductionCompiler Design Introduction
Compiler Design Introduction
Richa Sharma
 
Techniques & applications of Compiler
Techniques & applications of CompilerTechniques & applications of Compiler
Techniques & applications of Compiler
Preethi AKNR
 
what is compiler and five phases of compiler
what is compiler and five phases of compilerwhat is compiler and five phases of compiler
what is compiler and five phases of compiler
adilmehmood93
 
Principles of compiler design
Principles of compiler designPrinciples of compiler design
Principles of compiler design
DHARANI BABU
 
Cs6660 compiler design
Cs6660 compiler designCs6660 compiler design
Cs6660 compiler design
hari2010
 
Compiler Construction introduction
Compiler Construction introductionCompiler Construction introduction
Compiler Construction introduction
Rana Ehtisham Ul Haq
 
Lecture2 general structure of a compiler
Lecture2 general structure of a compilerLecture2 general structure of a compiler
Lecture2 general structure of a compiler
Mahesh Kumar Chelimilla
 
Compiler
CompilerCompiler
Compiler Design(Nanthu)
Compiler Design(Nanthu)Compiler Design(Nanthu)
Compiler Design(Nanthu)
guest91cc85
 
Lexical analyzer
Lexical analyzerLexical analyzer
Lexical analyzer
Ashwini Sonawane
 
Phases of Compiler
Phases of CompilerPhases of Compiler
Phases of Compiler
A. S. M. Shafi
 
Compiler design
Compiler designCompiler design
Compiler design
sanchi29
 
Compiler Chapter 1
Compiler Chapter 1Compiler Chapter 1
Compiler Chapter 1
Huawei Technologies
 

What's hot (20)

Chapter 1 1
Chapter 1 1Chapter 1 1
Chapter 1 1
 
phases of a compiler
 phases of a compiler phases of a compiler
phases of a compiler
 
Error detection recovery
Error detection recoveryError detection recovery
Error detection recovery
 
Different phases of a compiler
Different phases of a compilerDifferent phases of a compiler
Different phases of a compiler
 
Compiler unit 1
Compiler unit 1Compiler unit 1
Compiler unit 1
 
Compiler Construction
Compiler ConstructionCompiler Construction
Compiler Construction
 
Phases of compiler
Phases of compilerPhases of compiler
Phases of compiler
 
Compiler Design Introduction
Compiler Design IntroductionCompiler Design Introduction
Compiler Design Introduction
 
Techniques & applications of Compiler
Techniques & applications of CompilerTechniques & applications of Compiler
Techniques & applications of Compiler
 
what is compiler and five phases of compiler
what is compiler and five phases of compilerwhat is compiler and five phases of compiler
what is compiler and five phases of compiler
 
Principles of compiler design
Principles of compiler designPrinciples of compiler design
Principles of compiler design
 
Cs6660 compiler design
Cs6660 compiler designCs6660 compiler design
Cs6660 compiler design
 
Compiler Construction introduction
Compiler Construction introductionCompiler Construction introduction
Compiler Construction introduction
 
Lecture2 general structure of a compiler
Lecture2 general structure of a compilerLecture2 general structure of a compiler
Lecture2 general structure of a compiler
 
Compiler
CompilerCompiler
Compiler
 
Compiler Design(Nanthu)
Compiler Design(Nanthu)Compiler Design(Nanthu)
Compiler Design(Nanthu)
 
Lexical analyzer
Lexical analyzerLexical analyzer
Lexical analyzer
 
Phases of Compiler
Phases of CompilerPhases of Compiler
Phases of Compiler
 
Compiler design
Compiler designCompiler design
Compiler design
 
Compiler Chapter 1
Compiler Chapter 1Compiler Chapter 1
Compiler Chapter 1
 

Viewers also liked

Introduction to Compiler Construction
Introduction to Compiler Construction Introduction to Compiler Construction
Introduction to Compiler Construction
Sarmad Ali
 
Compiler Construction
Compiler ConstructionCompiler Construction
Code Optimization
Code OptimizationCode Optimization
Code Optimization
guest9f8315
 
Role-of-lexical-analysis
Role-of-lexical-analysisRole-of-lexical-analysis
Role-of-lexical-analysis
Dattatray Gandhmal
 
Lecture 1 introduction to language processors
Lecture 1  introduction to language processorsLecture 1  introduction to language processors
Lecture 1 introduction to language processors
Rebaz Najeeb
 
Lecture3 lexical analysis
Lecture3 lexical analysisLecture3 lexical analysis
Lecture3 lexical analysis
Mahesh Kumar Chelimilla
 
Type checking in compiler design
Type checking in compiler designType checking in compiler design
Type checking in compiler design
Sudip Singh
 
Type Checking(Compiler Design) #ShareThisIfYouLike
Type Checking(Compiler Design) #ShareThisIfYouLikeType Checking(Compiler Design) #ShareThisIfYouLike
Type Checking(Compiler Design) #ShareThisIfYouLike
United International University
 
Lecture4 lexical analysis2
Lecture4 lexical analysis2Lecture4 lexical analysis2
Lecture4 lexical analysis2
Mahesh Kumar Chelimilla
 
Lecture 02 lexical analysis
Lecture 02 lexical analysisLecture 02 lexical analysis
Lecture 02 lexical analysis
Iffat Anjum
 
Syntax directed-translation
Syntax directed-translationSyntax directed-translation
Syntax directed-translation
Junaid Lodhi
 
Compiler construction
Compiler constructionCompiler construction
Compiler construction
Muhammed Afsal Villan
 
Lecture 11 semantic analysis 2
Lecture 11 semantic analysis 2Lecture 11 semantic analysis 2
Lecture 11 semantic analysis 2
Iffat Anjum
 
Compiler Construction Course - Introduction
Compiler Construction Course - IntroductionCompiler Construction Course - Introduction
Compiler Construction Course - Introduction
Muhammad Sanaullah
 
Syntax directed translation
Syntax directed translationSyntax directed translation
Syntax directed translation
Akshaya Arunan
 
Ch5a
Ch5aCh5a
Phases of Compiler
Phases of CompilerPhases of Compiler
Phases of Compiler
Tanzeela_Hussain
 
Compilers
CompilersCompilers
Compilers
Bense Tony
 
Phases of the Compiler - Systems Programming
Phases of the Compiler - Systems ProgrammingPhases of the Compiler - Systems Programming
Phases of the Compiler - Systems Programming
Mukesh Tekwani
 
Analysis of the source program
Analysis of the source programAnalysis of the source program
Analysis of the source program
Huawei Technologies
 

Viewers also liked (20)

Introduction to Compiler Construction
Introduction to Compiler Construction Introduction to Compiler Construction
Introduction to Compiler Construction
 
Compiler Construction
Compiler ConstructionCompiler Construction
Compiler Construction
 
Code Optimization
Code OptimizationCode Optimization
Code Optimization
 
Role-of-lexical-analysis
Role-of-lexical-analysisRole-of-lexical-analysis
Role-of-lexical-analysis
 
Lecture 1 introduction to language processors
Lecture 1  introduction to language processorsLecture 1  introduction to language processors
Lecture 1 introduction to language processors
 
Lecture3 lexical analysis
Lecture3 lexical analysisLecture3 lexical analysis
Lecture3 lexical analysis
 
Type checking in compiler design
Type checking in compiler designType checking in compiler design
Type checking in compiler design
 
Type Checking(Compiler Design) #ShareThisIfYouLike
Type Checking(Compiler Design) #ShareThisIfYouLikeType Checking(Compiler Design) #ShareThisIfYouLike
Type Checking(Compiler Design) #ShareThisIfYouLike
 
Lecture4 lexical analysis2
Lecture4 lexical analysis2Lecture4 lexical analysis2
Lecture4 lexical analysis2
 
Lecture 02 lexical analysis
Lecture 02 lexical analysisLecture 02 lexical analysis
Lecture 02 lexical analysis
 
Syntax directed-translation
Syntax directed-translationSyntax directed-translation
Syntax directed-translation
 
Compiler construction
Compiler constructionCompiler construction
Compiler construction
 
Lecture 11 semantic analysis 2
Lecture 11 semantic analysis 2Lecture 11 semantic analysis 2
Lecture 11 semantic analysis 2
 
Compiler Construction Course - Introduction
Compiler Construction Course - IntroductionCompiler Construction Course - Introduction
Compiler Construction Course - Introduction
 
Syntax directed translation
Syntax directed translationSyntax directed translation
Syntax directed translation
 
Ch5a
Ch5aCh5a
Ch5a
 
Phases of Compiler
Phases of CompilerPhases of Compiler
Phases of Compiler
 
Compilers
CompilersCompilers
Compilers
 
Phases of the Compiler - Systems Programming
Phases of the Compiler - Systems ProgrammingPhases of the Compiler - Systems Programming
Phases of the Compiler - Systems Programming
 
Analysis of the source program
Analysis of the source programAnalysis of the source program
Analysis of the source program
 

Similar to Compiler Construction

The Phases of a Compiler
The Phases of a CompilerThe Phases of a Compiler
The Phases of a Compiler
Radhika Talaviya
 
Unit 1.pptx
Unit 1.pptxUnit 1.pptx
Unit 1.pptx
NISHASOMSCS113
 
System software module 4 presentation file
System software module 4 presentation fileSystem software module 4 presentation file
System software module 4 presentation file
jithujithin657
 
Chapter 1.pptx
Chapter 1.pptxChapter 1.pptx
Chapter 1.pptx
NesredinTeshome1
 
Introduction to compiler
Introduction to compilerIntroduction to compiler
Introduction to compiler
Abha Damani
 
Principles of Compiler Design
Principles of Compiler DesignPrinciples of Compiler Design
Principles of Compiler Design
Marimuthu M
 
1._Introduction_.pptx
1._Introduction_.pptx1._Introduction_.pptx
1._Introduction_.pptx
Anbarasan Radhakrishnan R
 
COMPILER CONSTRUCTION KU 1.pptx
COMPILER CONSTRUCTION KU 1.pptxCOMPILER CONSTRUCTION KU 1.pptx
COMPILER CONSTRUCTION KU 1.pptx
Rossy719186
 
Concept of compiler in details
Concept of compiler in detailsConcept of compiler in details
Concept of compiler in details
kazi_aihtesham
 
An Introduction to the Compiler Designss
An Introduction to the Compiler DesignssAn Introduction to the Compiler Designss
An Introduction to the Compiler Designss
ElakkiaU
 
Compiler an overview
Compiler  an overviewCompiler  an overview
Compiler an overview
amudha arul
 
Chapter one
Chapter oneChapter one
Chapter one
kiran acharya
 
Compier Design_Unit I.ppt
Compier Design_Unit I.pptCompier Design_Unit I.ppt
Compier Design_Unit I.ppt
sivaganesh293
 
Compier Design_Unit I.ppt
Compier Design_Unit I.pptCompier Design_Unit I.ppt
Compier Design_Unit I.ppt
sivaganesh293
 
Chapter-1.pptx compiler Design Course Material
Chapter-1.pptx compiler Design Course MaterialChapter-1.pptx compiler Design Course Material
Chapter-1.pptx compiler Design Course Material
gadisaAdamu
 
Dineshmaterial1 091225091539-phpapp02
Dineshmaterial1 091225091539-phpapp02Dineshmaterial1 091225091539-phpapp02
Dineshmaterial1 091225091539-phpapp02
Tirumala Rao
 
Phases of Compiler.pptx
Phases of Compiler.pptxPhases of Compiler.pptx
Phases of Compiler.pptx
ssuser3b4934
 
unit1pdf__2021_12_14_12_37_34.pdf
unit1pdf__2021_12_14_12_37_34.pdfunit1pdf__2021_12_14_12_37_34.pdf
unit1pdf__2021_12_14_12_37_34.pdf
DrIsikoIsaac
 
COMPILER DESIGN PPTS.pptx
COMPILER DESIGN PPTS.pptxCOMPILER DESIGN PPTS.pptx
COMPILER DESIGN PPTS.pptx
MUSHAMHARIKIRAN6737
 
Plc part 2
Plc  part 2Plc  part 2
Plc part 2
Taymoor Nazmy
 

Similar to Compiler Construction (20)

The Phases of a Compiler
The Phases of a CompilerThe Phases of a Compiler
The Phases of a Compiler
 
Unit 1.pptx
Unit 1.pptxUnit 1.pptx
Unit 1.pptx
 
System software module 4 presentation file
System software module 4 presentation fileSystem software module 4 presentation file
System software module 4 presentation file
 
Chapter 1.pptx
Chapter 1.pptxChapter 1.pptx
Chapter 1.pptx
 
Introduction to compiler
Introduction to compilerIntroduction to compiler
Introduction to compiler
 
Principles of Compiler Design
Principles of Compiler DesignPrinciples of Compiler Design
Principles of Compiler Design
 
1._Introduction_.pptx
1._Introduction_.pptx1._Introduction_.pptx
1._Introduction_.pptx
 
COMPILER CONSTRUCTION KU 1.pptx
COMPILER CONSTRUCTION KU 1.pptxCOMPILER CONSTRUCTION KU 1.pptx
COMPILER CONSTRUCTION KU 1.pptx
 
Concept of compiler in details
Concept of compiler in detailsConcept of compiler in details
Concept of compiler in details
 
An Introduction to the Compiler Designss
An Introduction to the Compiler DesignssAn Introduction to the Compiler Designss
An Introduction to the Compiler Designss
 
Compiler an overview
Compiler  an overviewCompiler  an overview
Compiler an overview
 
Chapter one
Chapter oneChapter one
Chapter one
 
Compier Design_Unit I.ppt
Compier Design_Unit I.pptCompier Design_Unit I.ppt
Compier Design_Unit I.ppt
 
Compier Design_Unit I.ppt
Compier Design_Unit I.pptCompier Design_Unit I.ppt
Compier Design_Unit I.ppt
 
Chapter-1.pptx compiler Design Course Material
Chapter-1.pptx compiler Design Course MaterialChapter-1.pptx compiler Design Course Material
Chapter-1.pptx compiler Design Course Material
 
Dineshmaterial1 091225091539-phpapp02
Dineshmaterial1 091225091539-phpapp02Dineshmaterial1 091225091539-phpapp02
Dineshmaterial1 091225091539-phpapp02
 
Phases of Compiler.pptx
Phases of Compiler.pptxPhases of Compiler.pptx
Phases of Compiler.pptx
 
unit1pdf__2021_12_14_12_37_34.pdf
unit1pdf__2021_12_14_12_37_34.pdfunit1pdf__2021_12_14_12_37_34.pdf
unit1pdf__2021_12_14_12_37_34.pdf
 
COMPILER DESIGN PPTS.pptx
COMPILER DESIGN PPTS.pptxCOMPILER DESIGN PPTS.pptx
COMPILER DESIGN PPTS.pptx
 
Plc part 2
Plc  part 2Plc  part 2
Plc part 2
 

More from Sarmad Ali

Network Engineer Interview Questions with Answers
Network Engineer Interview Questions with Answers Network Engineer Interview Questions with Answers
Network Engineer Interview Questions with Answers
Sarmad Ali
 
RDBMS Model
RDBMS ModelRDBMS Model
RDBMS Model
Sarmad Ali
 
RDBMS Algebra
RDBMS AlgebraRDBMS Algebra
RDBMS Algebra
Sarmad Ali
 
RDBMS ERD
RDBMS ERDRDBMS ERD
RDBMS ERD
Sarmad Ali
 
RDBMS ER2 Relational
RDBMS ER2 RelationalRDBMS ER2 Relational
RDBMS ER2 Relational
Sarmad Ali
 
RDBMS Arch & Models
RDBMS Arch & ModelsRDBMS Arch & Models
RDBMS Arch & Models
Sarmad Ali
 
RDBMS ERD Examples
RDBMS ERD ExamplesRDBMS ERD Examples
RDBMS ERD Examples
Sarmad Ali
 
Management Information System-MIS
Management Information System-MISManagement Information System-MIS
Management Information System-MIS
Sarmad Ali
 
Classification of Compilers
Classification of CompilersClassification of Compilers
Classification of Compilers
Sarmad Ali
 
Introduction to RDBMS
Introduction to RDBMSIntroduction to RDBMS
Introduction to RDBMS
Sarmad Ali
 
About Data Base
About Data BaseAbout Data Base
About Data Base
Sarmad Ali
 
Management information system-MIS
Management information system-MISManagement information system-MIS
Management information system-MIS
Sarmad Ali
 

More from Sarmad Ali (12)

Network Engineer Interview Questions with Answers
Network Engineer Interview Questions with Answers Network Engineer Interview Questions with Answers
Network Engineer Interview Questions with Answers
 
RDBMS Model
RDBMS ModelRDBMS Model
RDBMS Model
 
RDBMS Algebra
RDBMS AlgebraRDBMS Algebra
RDBMS Algebra
 
RDBMS ERD
RDBMS ERDRDBMS ERD
RDBMS ERD
 
RDBMS ER2 Relational
RDBMS ER2 RelationalRDBMS ER2 Relational
RDBMS ER2 Relational
 
RDBMS Arch & Models
RDBMS Arch & ModelsRDBMS Arch & Models
RDBMS Arch & Models
 
RDBMS ERD Examples
RDBMS ERD ExamplesRDBMS ERD Examples
RDBMS ERD Examples
 
Management Information System-MIS
Management Information System-MISManagement Information System-MIS
Management Information System-MIS
 
Classification of Compilers
Classification of CompilersClassification of Compilers
Classification of Compilers
 
Introduction to RDBMS
Introduction to RDBMSIntroduction to RDBMS
Introduction to RDBMS
 
About Data Base
About Data BaseAbout Data Base
About Data Base
 
Management information system-MIS
Management information system-MISManagement information system-MIS
Management information system-MIS
 

Recently uploaded

Contiguity Of Various Message Forms - Rupam Chandra.pptx
Contiguity Of Various Message Forms - Rupam Chandra.pptxContiguity Of Various Message Forms - Rupam Chandra.pptx
Contiguity Of Various Message Forms - Rupam Chandra.pptx
Kalna College
 
Creativity for Innovation and Speechmaking
Creativity for Innovation and SpeechmakingCreativity for Innovation and Speechmaking
Creativity for Innovation and Speechmaking
MattVassar1
 
Post init hook in the odoo 17 ERP Module
Post init hook in the  odoo 17 ERP ModulePost init hook in the  odoo 17 ERP Module
Post init hook in the odoo 17 ERP Module
Celine George
 
Diversity Quiz Finals by Quiz Club, IIT Kanpur
Diversity Quiz Finals by Quiz Club, IIT KanpurDiversity Quiz Finals by Quiz Club, IIT Kanpur
Diversity Quiz Finals by Quiz Club, IIT Kanpur
Quiz Club IIT Kanpur
 
Non-Verbal Communication for Tech Professionals
Non-Verbal Communication for Tech ProfessionalsNon-Verbal Communication for Tech Professionals
Non-Verbal Communication for Tech Professionals
MattVassar1
 
How to Create User Notification in Odoo 17
How to Create User Notification in Odoo 17How to Create User Notification in Odoo 17
How to Create User Notification in Odoo 17
Celine George
 
Talking Tech through Compelling Visual Aids
Talking Tech through Compelling Visual AidsTalking Tech through Compelling Visual Aids
Talking Tech through Compelling Visual Aids
MattVassar1
 
IoT (Internet of Things) introduction Notes.pdf
IoT (Internet of Things) introduction Notes.pdfIoT (Internet of Things) introduction Notes.pdf
IoT (Internet of Things) introduction Notes.pdf
roshanranjit222
 
Interprofessional Education Platform Introduction.pdf
Interprofessional Education Platform Introduction.pdfInterprofessional Education Platform Introduction.pdf
Interprofessional Education Platform Introduction.pdf
Ben Aldrich
 
The basics of sentences session 8pptx.pptx
The basics of sentences session 8pptx.pptxThe basics of sentences session 8pptx.pptx
The basics of sentences session 8pptx.pptx
heathfieldcps1
 
The Science of Learning: implications for modern teaching
The Science of Learning: implications for modern teachingThe Science of Learning: implications for modern teaching
The Science of Learning: implications for modern teaching
Derek Wenmoth
 
Brand Guideline of Bashundhara A4 Paper - 2024
Brand Guideline of Bashundhara A4 Paper - 2024Brand Guideline of Bashundhara A4 Paper - 2024
Brand Guideline of Bashundhara A4 Paper - 2024
khabri85
 
BỘ BÀI TẬP TEST THEO UNIT - FORM 2025 - TIẾNG ANH 12 GLOBAL SUCCESS - KÌ 1 (B...
BỘ BÀI TẬP TEST THEO UNIT - FORM 2025 - TIẾNG ANH 12 GLOBAL SUCCESS - KÌ 1 (B...BỘ BÀI TẬP TEST THEO UNIT - FORM 2025 - TIẾNG ANH 12 GLOBAL SUCCESS - KÌ 1 (B...
BỘ BÀI TẬP TEST THEO UNIT - FORM 2025 - TIẾNG ANH 12 GLOBAL SUCCESS - KÌ 1 (B...
Nguyen Thanh Tu Collection
 
220711130082 Srabanti Bag Internet Resources For Natural Science
220711130082 Srabanti Bag Internet Resources For Natural Science220711130082 Srabanti Bag Internet Resources For Natural Science
220711130082 Srabanti Bag Internet Resources For Natural Science
Kalna College
 
Keynote given on June 24 for MASSP at Grand Traverse City
Keynote given on June 24 for MASSP at Grand Traverse CityKeynote given on June 24 for MASSP at Grand Traverse City
Keynote given on June 24 for MASSP at Grand Traverse City
PJ Caposey
 
A Quiz on Drug Abuse Awareness by Quizzito
A Quiz on Drug Abuse Awareness by QuizzitoA Quiz on Drug Abuse Awareness by Quizzito
A Quiz on Drug Abuse Awareness by Quizzito
Quizzito The Quiz Society of Gargi College
 
The Rise of the Digital Telecommunication Marketplace.pptx
The Rise of the Digital Telecommunication Marketplace.pptxThe Rise of the Digital Telecommunication Marketplace.pptx
The Rise of the Digital Telecommunication Marketplace.pptx
PriyaKumari928991
 
Ethiopia and Eritrea Eritrea's journey has been marked by resilience and dete...
Ethiopia and Eritrea Eritrea's journey has been marked by resilience and dete...Ethiopia and Eritrea Eritrea's journey has been marked by resilience and dete...
Ethiopia and Eritrea Eritrea's journey has been marked by resilience and dete...
biruktesfaye27
 
Observational Learning
Observational Learning Observational Learning
Observational Learning
sanamushtaq922
 
Diversity Quiz Prelims by Quiz Club, IIT Kanpur
Diversity Quiz Prelims by Quiz Club, IIT KanpurDiversity Quiz Prelims by Quiz Club, IIT Kanpur
Diversity Quiz Prelims by Quiz Club, IIT Kanpur
Quiz Club IIT Kanpur
 

Recently uploaded (20)

Contiguity Of Various Message Forms - Rupam Chandra.pptx
Contiguity Of Various Message Forms - Rupam Chandra.pptxContiguity Of Various Message Forms - Rupam Chandra.pptx
Contiguity Of Various Message Forms - Rupam Chandra.pptx
 
Creativity for Innovation and Speechmaking
Creativity for Innovation and SpeechmakingCreativity for Innovation and Speechmaking
Creativity for Innovation and Speechmaking
 
Post init hook in the odoo 17 ERP Module
Post init hook in the  odoo 17 ERP ModulePost init hook in the  odoo 17 ERP Module
Post init hook in the odoo 17 ERP Module
 
Diversity Quiz Finals by Quiz Club, IIT Kanpur
Diversity Quiz Finals by Quiz Club, IIT KanpurDiversity Quiz Finals by Quiz Club, IIT Kanpur
Diversity Quiz Finals by Quiz Club, IIT Kanpur
 
Non-Verbal Communication for Tech Professionals
Non-Verbal Communication for Tech ProfessionalsNon-Verbal Communication for Tech Professionals
Non-Verbal Communication for Tech Professionals
 
How to Create User Notification in Odoo 17
How to Create User Notification in Odoo 17How to Create User Notification in Odoo 17
How to Create User Notification in Odoo 17
 
Talking Tech through Compelling Visual Aids
Talking Tech through Compelling Visual AidsTalking Tech through Compelling Visual Aids
Talking Tech through Compelling Visual Aids
 
IoT (Internet of Things) introduction Notes.pdf
IoT (Internet of Things) introduction Notes.pdfIoT (Internet of Things) introduction Notes.pdf
IoT (Internet of Things) introduction Notes.pdf
 
Interprofessional Education Platform Introduction.pdf
Interprofessional Education Platform Introduction.pdfInterprofessional Education Platform Introduction.pdf
Interprofessional Education Platform Introduction.pdf
 
The basics of sentences session 8pptx.pptx
The basics of sentences session 8pptx.pptxThe basics of sentences session 8pptx.pptx
The basics of sentences session 8pptx.pptx
 
The Science of Learning: implications for modern teaching
The Science of Learning: implications for modern teachingThe Science of Learning: implications for modern teaching
The Science of Learning: implications for modern teaching
 
Brand Guideline of Bashundhara A4 Paper - 2024
Brand Guideline of Bashundhara A4 Paper - 2024Brand Guideline of Bashundhara A4 Paper - 2024
Brand Guideline of Bashundhara A4 Paper - 2024
 
BỘ BÀI TẬP TEST THEO UNIT - FORM 2025 - TIẾNG ANH 12 GLOBAL SUCCESS - KÌ 1 (B...
BỘ BÀI TẬP TEST THEO UNIT - FORM 2025 - TIẾNG ANH 12 GLOBAL SUCCESS - KÌ 1 (B...BỘ BÀI TẬP TEST THEO UNIT - FORM 2025 - TIẾNG ANH 12 GLOBAL SUCCESS - KÌ 1 (B...
BỘ BÀI TẬP TEST THEO UNIT - FORM 2025 - TIẾNG ANH 12 GLOBAL SUCCESS - KÌ 1 (B...
 
220711130082 Srabanti Bag Internet Resources For Natural Science
220711130082 Srabanti Bag Internet Resources For Natural Science220711130082 Srabanti Bag Internet Resources For Natural Science
220711130082 Srabanti Bag Internet Resources For Natural Science
 
Keynote given on June 24 for MASSP at Grand Traverse City
Keynote given on June 24 for MASSP at Grand Traverse CityKeynote given on June 24 for MASSP at Grand Traverse City
Keynote given on June 24 for MASSP at Grand Traverse City
 
A Quiz on Drug Abuse Awareness by Quizzito
A Quiz on Drug Abuse Awareness by QuizzitoA Quiz on Drug Abuse Awareness by Quizzito
A Quiz on Drug Abuse Awareness by Quizzito
 
The Rise of the Digital Telecommunication Marketplace.pptx
The Rise of the Digital Telecommunication Marketplace.pptxThe Rise of the Digital Telecommunication Marketplace.pptx
The Rise of the Digital Telecommunication Marketplace.pptx
 
Ethiopia and Eritrea Eritrea's journey has been marked by resilience and dete...
Ethiopia and Eritrea Eritrea's journey has been marked by resilience and dete...Ethiopia and Eritrea Eritrea's journey has been marked by resilience and dete...
Ethiopia and Eritrea Eritrea's journey has been marked by resilience and dete...
 
Observational Learning
Observational Learning Observational Learning
Observational Learning
 
Diversity Quiz Prelims by Quiz Club, IIT Kanpur
Diversity Quiz Prelims by Quiz Club, IIT KanpurDiversity Quiz Prelims by Quiz Club, IIT Kanpur
Diversity Quiz Prelims by Quiz Club, IIT Kanpur
 

Compiler Construction

  • 2.
  • 3. The Context of a Compiler • In addition to a compiler; several other programs may be required to create an executable target program. • A source program may be divided into modules stored in separate files. • The task of collecting the source program is sometimes entrusted to a distinct program called a preprocessor.
  • 4. The Context of a Compiler • The target program created by compiler may require further processing before it can be run. • The compiler creates assembly code that is translated by an assembler into machine code and then linked together with some library routines into the code that actually runs on the machine.
  • 5. Preprocessors, Compilers, Assemblers, and Linkers Preprocessor Compiler Assembler Linker Skeletal Source Program Source Program Target Assembly Program Relocatable Object Code Absolute Machine Code Libraries and Relocatable Object Files 5
  • 6. Analysis of the source program Linear analysis: • In which the stream of characters making up the source program is read from left to right and grouped into tokens that are sequences of characters having a collective meaning. • In compiler, linear analysis is also called LEXICAL ANALYSIS or SCANNING
  • 7. Analysis of the source program Hierarchical Analysis: • In which characters or tokens are grouped hierarchically into nested collections with collective meaning. • In compiler, hierarchical analysis is called parsing or syntax analysis.
  • 8. Analysis of the source program Semantic analysis: • In which certain checks are performed to ensure that the components of a program fit together meaningfully.
  • 9. Semantic Analysis – Complications • Handling ambiguity – Semantic ambiguity: “I saw the Habib Bank Plaza flying into Karachi”
  • 10. Lexical Analysis • For example in lexical analysis the characters in the assignment statement position := initial + rate * 60 would be grouped into the following tokens. 1. The identifier position 2. The assignment symbol := 3. The identifier initial 4. The plus + sign 5. The identifier rate 6. The multiplication sign * 7. The number 60
  • 11. Syntax Analysis • It involves grouping the tokens of the source program into grammatical phrases that are tied by the compiler to synthesize output. • Usually the grammatical phrases of the source program are represented by a parse tree.
  • 12. Parse tree := identifier identifier identifier + * 60 Assignment statement position : = initial + rate * 60 position expression expression expression expression initial expression rate number
  • 13. Parse tree tokens • In expression position: = initial + rate * 60 the phrase rate * 60 is a logical unit. • As multiplication is performed before addition. • The expression initial + rate is followed by a *, it is not grouped into a single phrase by itself.
  • 14. Rules to identify an expression Rule 1. Any identifier is an expression Rule 2. Any number is an expression Rule 3. If expression1 and expression2 are expressions, then so are expression1 + expression2 expression1 * expression2
  • 15. Explanation of rules • Rule (1) and (2) are (non-recursive) basic rules, while (3) defines expression in terms of operators applied to other expressions. • By Rule (1), initial and rate are expressions • By Rule (2), 60 is an expression • By Rule (3), we can first infer that rate*60 is an expression & finally that initial + rate * 60 is an expression
  • 16. Rule to identify a statement • If identifier1 is an identifier, and expression2 is an expression then identifier1 : = expression2 is a statement
  • 18. Context free grammar • Lexical constructs do not require recursion, while syntactic constructs often do. • Context free grammars are a formalization of recursive rules that can be used to guide syntactic analysis.
  • 19. Context free grammar • For example recursion is not required to recognize identifiers, which are typically strings of letters and digits beginning with a letter. • We would normally recognize identifiers by a simple scan of the input stream, waiting until a character that was neither a letter nor a digit was found • And then grouping all the letters and digits found up to that point into an identifier token. • The characters so grouped are recorded in a table called a symbol table, and remove from the input so that processing of the next token can begin.
  • 20. Phases of Compiler Syntax Analyzer Lexical Analyzer Semantic Analyzer Intermediate code generator Code optimizer Code generator Target Program Source Program Symbol table Manger Error Handler
  • 21. Symbol table Management • An essential function of a compiler is to record the identifiers used in the source program and collect information about various attributes of each identifier. • These attributes may provide information about the storage allocated for an identifier, its type, its scope (where in the program it is valid) etc
  • 22. Symbol table • A symbol table is a data structure containing a record for each identifier, with fields for the attributes of the identifier. • The data structure allow us to find the record for each identifier quickly and to store or retrieve data from that record quickly. • When an identifier in the source program is detected by the lexical analyzer, the identifier is entered into the symbol table.
  • 23. Error detection and Reporting • Each phase can encounter errors. • After detecting an error, a phase must somehow deal with that error, so that compilation can proceed, allowing further errors in the source program to be detected. • A compiler that stops when it finds the first error is not as helpful as it could be.
  • 24. Error detection and Reporting • The syntax and semantic analysis phases usually handle a large fraction of the errors detectable by the compiler. • The lexical phase can detect errors where the characters remaining in the input do not form any token of the language. • Errors where the token stream violates the structure rules (Syntax) of the language are determined by the syntax analysis phase.
  • 25. Error detection and Reporting • During semantic analysis the compiler tries to detect constructs that have the right syntactic structure but no meaning to the operation involved. • For example if we try to add two identifiers, one of which is the name of an array and the other the name of a procedure.
  • 26. The Analysis Phase position : = initial + rate * 60 • The lexical analysis phase reads the characters in the source program and groups them into a stream of tokens in which each token represents a logically cohesive sequence of characters, such as an identifier, a keyword (if, while etc), a punctuation character or a multi-character operator like := • The character sequence forming a token called the lexeme for the token.
  • 27. The Analysis Phase (Cont..) • Certain tokens will be augmented by a “lexical value”. • For example when an identifier like rate is found, the lexical analyzer not only generates token, say id, but also enters the lexeme rate into the symbol table, if it is not already there.
  • 28.
  • 29. Intermediate code generation • After syntax and semantic analysis, some compilers generate an explicit intermediate representation of the source program. • This intermediate representation has two important properties; – It should be easy to produce – Easy to translate into the target machine
  • 30. Intermediate code generation • The intermediate representation can have a variety of forms. • It may called as “three address code”, which is like the assembly language for a machine in which every memory location can act like a register.
  • 31. Intermediate code generation • Three address code consists of a sequence of instructions, each of which has at most three operands. • The source program might appear in three address code as temp1 := inttoreal (60) temp2 := id3 * temp1 temp3 := id2 + temp2 id1 := temp3
  • 33. Intermediate code generation • The intermediate form has several properties. • First each three address instruction has at most one operator in addition to the assignment. • Thus when generating these instructions, the compiler has to decide on the order in which operations are to be done.
  • 34. Intermediate code generation • In our example the multiplication precedes the addition in the source program. • Second the compiler must generate a temporary name to hold the value computed by each instruction. • Third, some “three address” instructions have fewer than three operands for example the first and last instruction in our example.
  • 35. Code Optimization • The code optimization phase attempts to improve the intermediate code, so the faster running machine code will result.
  • 36. Code Optimization temp1 := id3 * 60.0 Id1 := id2 + temp1 • There is nothing wrong with this simple algorithm; since the problem can be fixed during the code optimization phase. • The compiler can deduced that the conversion of 60 from integer to real representation can be done once and for all at compile time; so the inttoreal operation can be eliminated. • Besides temp3 is used only once, to transmit its value to id1. • It then becomes safe to substitute id1 for temp3, whereupon the last statement of intermediate code is not needed and the optimized code results.
  • 37. Code Optimization • There is a great variation in the amount of code optimization different compiler performs. • In those that do the most, called “optimizing compilers” • A significant fraction of the time of the compiler is spent on this phase
  • 38. Code generation • The final phase of the compiler is the generation of target code, consisting normally of relocatable machine code or assembly code. • Memory locations are selected for each of the variables used by the program. • Intermediate instructions are each translated into a sequence of machine instructions that perform the same task. • A crucial aspect is the assignment of variable to register.
  • 39. Code generation • The first and second operands of each instruction specify a source and destination respectively. • The F in each instruction tells us that instructions deal with floating point numbers
  • 40. Code optimization & Code generation
  翻译: