SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
UCS 802 COMPILER CONSTRUCTION
PRELIMINARIES REQUIRED
 Basic knowledge of programming languages.
 Basic knowledge of FSA and CFG.
 Knowledge of a high programming language for the
programming assignments.
Laboratory Work:
 Lexical Analysis and Syntax Analysis: Construction of DFA from
RE and construction of SLR
Text Books:
 A. V. Aho, Ravi Sethi, J. D. Ullman, “Compilers Tools and
Techniques”, Addison-Wesley
 Allen I. Holoub, “Compiler Design in C”, PHI
Reference Books:
 Barret W. A., J. D. Couch, “Compiler Construction Theory and
Practice”, Computer Science Series- Asian Student Edition
 D.M. Dhamdere, “Compiler Construction –Principles and
Practice”, Mcmillan , India.
2
EVALUATION PATTERN FOLLOWED EARLIER
Total Marks (100)
 MST : 24
 Quizzes : 16
 Practical evaluation : 20
 EST : 40
3
WHAT IS A TRANSLATOR?
A translator is a system software which translates the
language written by the user in a to the form
understandable by machine.
Machine understands the language of 0’s and 1’s only so
the role of translator is to convert human readable
language to machine language.
4
TYPE OF TRANSLATORS
1) Compiler: Converts HLL to Machine language or Assemble
Language
2) Interpreter: Converts HLL to Machine language
3) Assembler: Assemble language i.e. language of pneumonic
to machine language. MUL,ADD,SUB
Difference between Compiler and Interpreter:
Compiler takes the entire program and converts it to Machine
language in a single go.
Interpreter does the conversion line by line 5
LANGUAGE PROCESSING SYSTEM
6
COMPILERS
 A compiler is a program takes a program written in a
source language and translates it into an equivalent
program in a target language.
Source program Target program
Error messages
COMPILER
( Normally a program written in
a high-level programming language)
( Normally the equivalent program in
machine code – relocatable object file)
7
MAJOR PARTS OF COMPILERS
 There are two major parts of a compiler: Analysis
and Synthesis
 In analysis phase, an intermediate representation is
created from the given source program.
 Lexical Analyzer, Syntax Analyzer and Semantic Analyzer
are the parts of this phase.
 In synthesis phase, the equivalent target program is
created from this intermediate representation.
 Intermediate Code Generator, Code Generator, and Code
Optimizer are the parts of this phase.
8
PHASES OF A COMPILER
Lexical
Analyzer
Semantic
Analyzer
Syntax
Analyzer
Intermediate
Code Generator
Code
Optimizer
Code
Generator
Target
Program
Source
Program
• Each phase transforms the source program from one representation
into another representation.
• They communicate with error handlers.
• They communicate with the symbol table.
9
LEXICAL ANALYZER
 Lexical Analyzer reads the source program character by
character and returns the tokens of the source program.
 A token describes a pattern of characters having same
meaning in the source program. (such as identifiers,
operators, keywords, numbers, delimeters and so on)
Ex: newval := oldval + 12 => tokens: newval identifier
:= assignment
operator
oldval identifier
+ add operator
12 a number
 Puts information about identifiers into the symbol table.
 Regular expressions are used to describe tokens (lexical
constructs).
 A (Deterministic) Finite State Automaton can be used in
the implementation of a lexical analyzer.
10
SYNTAX ANALYZER
 A Syntax Analyzer creates the syntactic structure
(generally a parse tree) of the given program.
 A syntax analyzer is also called as a parser.
 A parse tree describes a syntactic structure.
assgstmt
identifier := expression
newval expression + expression
identifier number
oldval 12
• In a parse tree, all terminals are at leaves.
• All inner nodes are non-terminals in
a context free grammar.
11
SYNTAX ANALYZER (CFG)
 The syntax of a language is specified by a context
free grammar (CFG).
 The rules in a CFG are mostly recursive.
 A syntax analyzer checks whether a given program
satisfies the rules implied by a CFG or not.
 If it satisfies, the syntax analyzer creates a parse tree for
the given program.
 Ex: We use BNF (Backus Naur Form) to specify a CFG
assgstmt -> identifier := expression
expression -> identifier
expression -> number
expression -> expression + expression 12
SYNTAX ANALYZER VERSUS LEXICAL ANALYZER
 Which constructs of a program should be recognized by the
lexical analyzer, and which ones by the syntax analyzer?
 Both of them do similar things; But the lexical analyzer deals
with simple non-recursive constructs of the language.
 The syntax analyzer deals with recursive constructs of the
language.
 The lexical analyzer simplifies the job of the syntax analyzer.
 The lexical analyzer recognizes the smallest meaningful units
(tokens) in a source program.
 The syntax analyzer works on the smallest meaningful units
(tokens) in a source program to recognize meaningful structures
in our programming language.
13
PARSING TECHNIQUES
 Depending on how the parse tree is created, there are different
parsing techniques.
 These parsing techniques are categorized into two groups:
 Top-Down Parsing,
 Bottom-Up Parsing
 Top-Down Parsing:
 Construction of the parse tree starts at the root, and proceeds towards the
leaves.
 Efficient top-down parsers can be easily constructed by hand.
 Recursive Predictive Parsing, Non-Recursive Predictive Parsing (LL
Parsing).
 Bottom-Up Parsing:
 Construction of the parse tree starts at the leaves, and proceeds towards the
root.
 Normally efficient bottom-up parsers are created with the help of some
software tools.
 Bottom-up parsing is also known as shift-reduce parsing.
 Operator-Precedence Parsing – simple, restrictive, easy to implement
 LR Parsing – much general form of shift-reduce parsing, LR, SLR, LALR
14
SEMANTIC ANALYZER
 A semantic analyzer checks the source program for
semantic errors and collects the type information for the
code generation.
 Type-checking is an important part of semantic analyzer.
 Normally semantic information cannot be represented by a
context-free language used in syntax analyzers.
 Context-free grammars used in the syntax analysis are
integrated with attributes (semantic rules)
 the result is a syntax-directed translation,
 Attribute grammars
 Ex:
newval := oldval + 12
 The type of the identifier newval must match with
type of the expression (oldval+12) 15
INTERMEDIATE CODE GENERATION
 A compiler may produce an explicit intermediate codes
representing the source program.
 These intermediate codes are generally machine
(architecture independent). But the level of intermediate
codes is close to the level of machine codes.
 Ex:
newval := oldval * fact + 1
id1 := id2 * id3 + 1
MULT id2,id3,temp1 Intermediates Codes
(Quadraples)
ADD temp1,#1,temp2
MOV temp2,,id1 16
CODE OPTIMIZER (FOR INTERMEDIATE CODE
GENERATOR)
 The code optimizer optimizes the code produced by
the intermediate code generator in the terms of time
and space.
 Ex:
MULT id2,id3,temp1
ADD temp1,#1,id1
17
CODE GENERATOR
 Produces the target language in a specific architecture.
 The target program is normally is a relocatable object file
containing the machine codes.
 Ex:
( assume that we have an architecture with instructions whose at least one of
its operands is
a machine register)
MOVE id2,R1
MULT id3,R1
ADD #1,R1
MOVE R1,id1
18
OTHER APPLICATIONS
 In addition to the development of a compiler, the
techniques used in COMPILER CONSTRUCTION can be
applicable to many problems in computer science.
 Techniques used in a lexical analyzer can be used in text editors,
information retrieval system, and pattern recognition programs.
 Techniques used in a parser can be used in a query processing
system such as SQL.
 Many software having a complex front-end may need techniques
used in COMPILER CONSTRUCTION.
 A symbolic equation solver which takes an equation as
input. That program should parse the given input
equation.
 Most of the techniques used in COMPILER CONSTRUCTION
can be used in Natural Language Processing (NLP) systems.
19
COURSE OUTLINE
 Introduction to Compiling
 Lexical Analysis
 Syntax Analysis
 Context Free Grammars
 Top-Down Parsing, LL Parsing
 Bottom-Up Parsing, LR Parsing
 Syntax-Directed Translation
 Attribute Definitions
 Evaluation of Attribute Definitions
 Semantic Analysis, Type Checking
 Run-Time Organization
 Intermediate Code Generation 20

Mais conteúdo relacionado

Semelhante a lec00-Introduction.pdf

Compier Design_Unit I.ppt
Compier Design_Unit I.pptCompier Design_Unit I.ppt
Compier Design_Unit I.pptsivaganesh293
 
Compier Design_Unit I.ppt
Compier Design_Unit I.pptCompier Design_Unit I.ppt
Compier Design_Unit I.pptsivaganesh293
 
SSD Mod 2 -18CS61_Notes.pdf
SSD Mod 2 -18CS61_Notes.pdfSSD Mod 2 -18CS61_Notes.pdf
SSD Mod 2 -18CS61_Notes.pdfJacobDragonette
 
Compiler_Lecture1.pdf
Compiler_Lecture1.pdfCompiler_Lecture1.pdf
Compiler_Lecture1.pdfAkarTaher
 
Chap 1-language processor
Chap 1-language processorChap 1-language processor
Chap 1-language processorshindept123
 
Compiler Design
Compiler DesignCompiler Design
Compiler DesignMir Majid
 
Compiler an overview
Compiler  an overviewCompiler  an overview
Compiler an overviewamudha arul
 
design intoduction of_COMPILER_DESIGN.pdf
design intoduction of_COMPILER_DESIGN.pdfdesign intoduction of_COMPILER_DESIGN.pdf
design intoduction of_COMPILER_DESIGN.pdfadvRajatSharma
 
Concept of compiler in details
Concept of compiler in detailsConcept of compiler in details
Concept of compiler in detailskazi_aihtesham
 
Phases of Compiler.pptx
Phases of Compiler.pptxPhases of Compiler.pptx
Phases of Compiler.pptxssuser3b4934
 
Chapter One
Chapter OneChapter One
Chapter Onebolovv
 
COMPILER CONSTRUCTION KU 1.pptx
COMPILER CONSTRUCTION KU 1.pptxCOMPILER CONSTRUCTION KU 1.pptx
COMPILER CONSTRUCTION KU 1.pptxRossy719186
 
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.pdfDrIsikoIsaac
 
Ch 1.pptx
Ch 1.pptxCh 1.pptx
Ch 1.pptxwoldu2
 

Semelhante a lec00-Introduction.pdf (20)

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
 
SSD Mod 2 -18CS61_Notes.pdf
SSD Mod 2 -18CS61_Notes.pdfSSD Mod 2 -18CS61_Notes.pdf
SSD Mod 2 -18CS61_Notes.pdf
 
Compiler_Lecture1.pdf
Compiler_Lecture1.pdfCompiler_Lecture1.pdf
Compiler_Lecture1.pdf
 
Chap 1-language processor
Chap 1-language processorChap 1-language processor
Chap 1-language processor
 
Assignment1
Assignment1Assignment1
Assignment1
 
Compiler
Compiler Compiler
Compiler
 
Compiler Design
Compiler DesignCompiler Design
Compiler Design
 
Compiler an overview
Compiler  an overviewCompiler  an overview
Compiler an overview
 
design intoduction of_COMPILER_DESIGN.pdf
design intoduction of_COMPILER_DESIGN.pdfdesign intoduction of_COMPILER_DESIGN.pdf
design intoduction of_COMPILER_DESIGN.pdf
 
Presentation1
Presentation1Presentation1
Presentation1
 
Presentation1
Presentation1Presentation1
Presentation1
 
Concept of compiler in details
Concept of compiler in detailsConcept of compiler in details
Concept of compiler in details
 
Phases of Compiler.pptx
Phases of Compiler.pptxPhases of Compiler.pptx
Phases of Compiler.pptx
 
Chapter One
Chapter OneChapter One
Chapter One
 
COMPILER CONSTRUCTION KU 1.pptx
COMPILER CONSTRUCTION KU 1.pptxCOMPILER CONSTRUCTION KU 1.pptx
COMPILER CONSTRUCTION KU 1.pptx
 
Cpcs302 1
Cpcs302  1Cpcs302  1
Cpcs302 1
 
Compiler1
Compiler1Compiler1
Compiler1
 
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
 
Ch 1.pptx
Ch 1.pptxCh 1.pptx
Ch 1.pptx
 

Último

Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGSIVASHANKAR N
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfKamal Acharya
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)simmis5
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 

Último (20)

Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
 

lec00-Introduction.pdf

  • 1. UCS 802 COMPILER CONSTRUCTION
  • 2. PRELIMINARIES REQUIRED  Basic knowledge of programming languages.  Basic knowledge of FSA and CFG.  Knowledge of a high programming language for the programming assignments. Laboratory Work:  Lexical Analysis and Syntax Analysis: Construction of DFA from RE and construction of SLR Text Books:  A. V. Aho, Ravi Sethi, J. D. Ullman, “Compilers Tools and Techniques”, Addison-Wesley  Allen I. Holoub, “Compiler Design in C”, PHI Reference Books:  Barret W. A., J. D. Couch, “Compiler Construction Theory and Practice”, Computer Science Series- Asian Student Edition  D.M. Dhamdere, “Compiler Construction –Principles and Practice”, Mcmillan , India. 2
  • 3. EVALUATION PATTERN FOLLOWED EARLIER Total Marks (100)  MST : 24  Quizzes : 16  Practical evaluation : 20  EST : 40 3
  • 4. WHAT IS A TRANSLATOR? A translator is a system software which translates the language written by the user in a to the form understandable by machine. Machine understands the language of 0’s and 1’s only so the role of translator is to convert human readable language to machine language. 4
  • 5. TYPE OF TRANSLATORS 1) Compiler: Converts HLL to Machine language or Assemble Language 2) Interpreter: Converts HLL to Machine language 3) Assembler: Assemble language i.e. language of pneumonic to machine language. MUL,ADD,SUB Difference between Compiler and Interpreter: Compiler takes the entire program and converts it to Machine language in a single go. Interpreter does the conversion line by line 5
  • 7. COMPILERS  A compiler is a program takes a program written in a source language and translates it into an equivalent program in a target language. Source program Target program Error messages COMPILER ( Normally a program written in a high-level programming language) ( Normally the equivalent program in machine code – relocatable object file) 7
  • 8. MAJOR PARTS OF COMPILERS  There are two major parts of a compiler: Analysis and Synthesis  In analysis phase, an intermediate representation is created from the given source program.  Lexical Analyzer, Syntax Analyzer and Semantic Analyzer are the parts of this phase.  In synthesis phase, the equivalent target program is created from this intermediate representation.  Intermediate Code Generator, Code Generator, and Code Optimizer are the parts of this phase. 8
  • 9. PHASES OF A COMPILER Lexical Analyzer Semantic Analyzer Syntax Analyzer Intermediate Code Generator Code Optimizer Code Generator Target Program Source Program • Each phase transforms the source program from one representation into another representation. • They communicate with error handlers. • They communicate with the symbol table. 9
  • 10. LEXICAL ANALYZER  Lexical Analyzer reads the source program character by character and returns the tokens of the source program.  A token describes a pattern of characters having same meaning in the source program. (such as identifiers, operators, keywords, numbers, delimeters and so on) Ex: newval := oldval + 12 => tokens: newval identifier := assignment operator oldval identifier + add operator 12 a number  Puts information about identifiers into the symbol table.  Regular expressions are used to describe tokens (lexical constructs).  A (Deterministic) Finite State Automaton can be used in the implementation of a lexical analyzer. 10
  • 11. SYNTAX ANALYZER  A Syntax Analyzer creates the syntactic structure (generally a parse tree) of the given program.  A syntax analyzer is also called as a parser.  A parse tree describes a syntactic structure. assgstmt identifier := expression newval expression + expression identifier number oldval 12 • In a parse tree, all terminals are at leaves. • All inner nodes are non-terminals in a context free grammar. 11
  • 12. SYNTAX ANALYZER (CFG)  The syntax of a language is specified by a context free grammar (CFG).  The rules in a CFG are mostly recursive.  A syntax analyzer checks whether a given program satisfies the rules implied by a CFG or not.  If it satisfies, the syntax analyzer creates a parse tree for the given program.  Ex: We use BNF (Backus Naur Form) to specify a CFG assgstmt -> identifier := expression expression -> identifier expression -> number expression -> expression + expression 12
  • 13. SYNTAX ANALYZER VERSUS LEXICAL ANALYZER  Which constructs of a program should be recognized by the lexical analyzer, and which ones by the syntax analyzer?  Both of them do similar things; But the lexical analyzer deals with simple non-recursive constructs of the language.  The syntax analyzer deals with recursive constructs of the language.  The lexical analyzer simplifies the job of the syntax analyzer.  The lexical analyzer recognizes the smallest meaningful units (tokens) in a source program.  The syntax analyzer works on the smallest meaningful units (tokens) in a source program to recognize meaningful structures in our programming language. 13
  • 14. PARSING TECHNIQUES  Depending on how the parse tree is created, there are different parsing techniques.  These parsing techniques are categorized into two groups:  Top-Down Parsing,  Bottom-Up Parsing  Top-Down Parsing:  Construction of the parse tree starts at the root, and proceeds towards the leaves.  Efficient top-down parsers can be easily constructed by hand.  Recursive Predictive Parsing, Non-Recursive Predictive Parsing (LL Parsing).  Bottom-Up Parsing:  Construction of the parse tree starts at the leaves, and proceeds towards the root.  Normally efficient bottom-up parsers are created with the help of some software tools.  Bottom-up parsing is also known as shift-reduce parsing.  Operator-Precedence Parsing – simple, restrictive, easy to implement  LR Parsing – much general form of shift-reduce parsing, LR, SLR, LALR 14
  • 15. SEMANTIC ANALYZER  A semantic analyzer checks the source program for semantic errors and collects the type information for the code generation.  Type-checking is an important part of semantic analyzer.  Normally semantic information cannot be represented by a context-free language used in syntax analyzers.  Context-free grammars used in the syntax analysis are integrated with attributes (semantic rules)  the result is a syntax-directed translation,  Attribute grammars  Ex: newval := oldval + 12  The type of the identifier newval must match with type of the expression (oldval+12) 15
  • 16. INTERMEDIATE CODE GENERATION  A compiler may produce an explicit intermediate codes representing the source program.  These intermediate codes are generally machine (architecture independent). But the level of intermediate codes is close to the level of machine codes.  Ex: newval := oldval * fact + 1 id1 := id2 * id3 + 1 MULT id2,id3,temp1 Intermediates Codes (Quadraples) ADD temp1,#1,temp2 MOV temp2,,id1 16
  • 17. CODE OPTIMIZER (FOR INTERMEDIATE CODE GENERATOR)  The code optimizer optimizes the code produced by the intermediate code generator in the terms of time and space.  Ex: MULT id2,id3,temp1 ADD temp1,#1,id1 17
  • 18. CODE GENERATOR  Produces the target language in a specific architecture.  The target program is normally is a relocatable object file containing the machine codes.  Ex: ( assume that we have an architecture with instructions whose at least one of its operands is a machine register) MOVE id2,R1 MULT id3,R1 ADD #1,R1 MOVE R1,id1 18
  • 19. OTHER APPLICATIONS  In addition to the development of a compiler, the techniques used in COMPILER CONSTRUCTION can be applicable to many problems in computer science.  Techniques used in a lexical analyzer can be used in text editors, information retrieval system, and pattern recognition programs.  Techniques used in a parser can be used in a query processing system such as SQL.  Many software having a complex front-end may need techniques used in COMPILER CONSTRUCTION.  A symbolic equation solver which takes an equation as input. That program should parse the given input equation.  Most of the techniques used in COMPILER CONSTRUCTION can be used in Natural Language Processing (NLP) systems. 19
  • 20. COURSE OUTLINE  Introduction to Compiling  Lexical Analysis  Syntax Analysis  Context Free Grammars  Top-Down Parsing, LL Parsing  Bottom-Up Parsing, LR Parsing  Syntax-Directed Translation  Attribute Definitions  Evaluation of Attribute Definitions  Semantic Analysis, Type Checking  Run-Time Organization  Intermediate Code Generation 20