SlideShare a Scribd company logo
Presented by,
M.Selva Vinitha
B.E/CSE
M.Kumarasamy college of engineering
Karur.
Code generator
 Final phase of compiler design
 Optimized intermediate code is provided as input
 It generates target code
9/15/2015 2Issues in design of code generator
Code generation and Instruction Selection
4
Symbol
table
input output
Front
end
Intermediate
Code
generator
Code
generator
9/15/2015 Issues in design of code generator
Contd…
 output code must be correct
 output code must be of high quality
 code generator should run efficiently
9/15/2015 4Issues in design of code generator
Pre-requisites
 Instruction set of target machine.
 Instruction addressing modes.
 No. of registers.
 Configuration of ALU
9/15/2015 5Issues in design of code generator
Issues in the design of a code
generator
 Input to the code generator
 Memory management
 Target programs
 Instruction selection
 Register allocation
 Evaluation order
 Approaches to code generation
9/15/2015 6Issues in design of code generator
Input to the code generator
 The intermediate representation of the source program
produced by the front end
 Several choices for the intermediate language
 Linear - postfix nottion
 3 address - quadruples
 Virtual machie - stack machine code
 Graphical - syntax tree &dags
9/15/2015 7Issues in design of code generator
Memory management
 Mapping names in the source program to addresses of data
objects in run-time memory
 Done by the front end and the code generator.
 A name in a three- address statement refers to a symbol-
table entry for the name.
 A relative address can be determined
9/15/2015 8Issues in design of code generator
Target programs
 Absolute machine language
Relocatable machine language
 Assembly language
9/15/2015 9Issues in design of code generator
Contd..
Absolute machine language:
 Produce an absolute machine language program
 can be placed in a fixed location in memory and
immediately executed.
9/15/2015 10Issues in design of code generator
Contd..
Relocatable machine language:
Producing a relocatable machine language program
subprograms to be compiled separately.
relocatable object modules can be linked together and loaded
for execution by a linking loader.
must provide explicit relocation information to the loader, to
link the separately compiled program segments.
9/15/2015 11Issues in design of code generator
Contd…
Assembly language:
Producing an assembly language program
makes the process of code generation easier
9/15/2015 12Issues in design of code generator
Instruction selection
The factors to be considered during instruction selection are:
 The uniformity and completeness of the instruction set.
 Instruction speed and machine idioms.
 Size of the instruction set.
9/15/2015 13Issues in design of code generator
Contd…
Eg., for the following address code is:
a := b + c
d := a + e
inefficient assembly code is:
MOV b, R0 R0 ← b
ADD c, R0 R0 ← c + R0
MOV R0, a a ← R0
MOV a, R0 R0 ← a
ADD e, R0 R0 ← e + R0
MOV R0 , d d ← R0
Here the fourth statement is redundant, and so is the third
statement if ,
'a' is not subsequently used.
9/15/2015 14Issues in design of code generator
Register allocation
• Instructions with register operands are usually shorter and
faster
• Efficient utilization of registers is important in
generating good code.
9/15/2015 15Issues in design of code generator
Contd..
Register allocation phase:
• Select the set of variables that will reside in registers
Register assignment phase:
• Pick the specific register that a variable will reside in.
9/15/2015 16Issues in design of code generator
Evaluation order
 The order in which computations are performed
 Affect the efficiency of the target code.
 Some computation orders require fewer registers to hold
intermediate results
9/15/2015 17Issues in design of code generator
Approaches to code generation
 Most important criteria for code generator is that it
produces correct code
 Correctness takes on special signification
 It contains a straightforward code generation algorithm
 The output of such code generator can be improved by
peephole optimization technique
9/15/2015 18Issues in design of code generator
Conclusion
Output of code generator phase is dependent on:
 Target language
 Operating system
 Memory management system
 Instruction selection
 Register allocation
 Evaluation order
9/15/2015 19Issues in design of code generator

More Related Content

PPTX
Issues in design_of_code_generator
vinithapanneer
 
PDF
Embedded C programming based on 8051 microcontroller
Gaurav Verma
 
PPTX
Phases of compiler
Akhil Kaushik
 
PPTX
C programming tutorial for beginners
Thiyagarajan Soundhiran
 
PPTX
COM1407: Introduction to C Programming
Hemantha Kulathilake
 
PPTX
Introduction to C Programming
Amr Ali (ISTQB CTAL Full, CSM, ITIL Foundation)
 
PPTX
Compiler construction tools
Akhil Kaushik
 
PPT
Phases of compiler
PANKAJKUMAR2519
 
Issues in design_of_code_generator
vinithapanneer
 
Embedded C programming based on 8051 microcontroller
Gaurav Verma
 
Phases of compiler
Akhil Kaushik
 
C programming tutorial for beginners
Thiyagarajan Soundhiran
 
COM1407: Introduction to C Programming
Hemantha Kulathilake
 
Compiler construction tools
Akhil Kaushik
 
Phases of compiler
PANKAJKUMAR2519
 

What's hot (20)

PPTX
Phases of Compiler
Tanzeela_Hussain
 
PPTX
Toy compiler
home
 
PPTX
Basic of compiler
Abhishek Singh
 
PPT
Lec 1 intro
lankasenanayake
 
PPTX
Compiler
Achyuth Dorasala
 
PDF
Lecture 1 Compiler design , computation
Rebaz Najeeb
 
PPTX
Compiler
Md. Sumon Fakir
 
PPTX
INTRODUCTION TO C PROGRAMMING
JEENA SARA VIJU
 
PPT
Compiler
IGZ Software house
 
PPTX
Compiler an overview
amudha arul
 
PPTX
Toy complier
Daivshala Vighne
 
PDF
Assembler
SheetalAwate2
 
PDF
Embedded c lab and keil c manual
Hari K
 
PDF
Compiler design
negussie tirfe78
 
PPTX
Compilation of c
Way2itech
 
PPTX
C_Programming_Notes_ICE
Gilbert NZABONITEGEKA
 
PDF
COMPILER DESIGN- Introduction & Lexical Analysis:
Jyothishmathi Institute of Technology and Science Karimnagar
 
PPTX
Phases of-compiler
Zahidul Islam Razu
 
PDF
Fundamental of Information Technology - UNIT 7
Shipra Swati
 
PDF
Lecture 01 introduction to compiler
Iffat Anjum
 
Phases of Compiler
Tanzeela_Hussain
 
Toy compiler
home
 
Basic of compiler
Abhishek Singh
 
Lec 1 intro
lankasenanayake
 
Lecture 1 Compiler design , computation
Rebaz Najeeb
 
Compiler
Md. Sumon Fakir
 
INTRODUCTION TO C PROGRAMMING
JEENA SARA VIJU
 
Compiler an overview
amudha arul
 
Toy complier
Daivshala Vighne
 
Assembler
SheetalAwate2
 
Embedded c lab and keil c manual
Hari K
 
Compiler design
negussie tirfe78
 
Compilation of c
Way2itech
 
C_Programming_Notes_ICE
Gilbert NZABONITEGEKA
 
COMPILER DESIGN- Introduction & Lexical Analysis:
Jyothishmathi Institute of Technology and Science Karimnagar
 
Phases of-compiler
Zahidul Islam Razu
 
Fundamental of Information Technology - UNIT 7
Shipra Swati
 
Lecture 01 introduction to compiler
Iffat Anjum
 
Ad

Similar to issuesindesignofcodegenerator-150227091230-conversion-gate01 (20)

PDF
C Compiler Construction Mastering Language Processing Computer Science Fundam...
shaimasantoj
 
PPT
Data structure and algorithm.lect-03.ppt
KamranAli649587
 
PDF
Reversing and Patching Machine Code
Teodoro Cipresso
 
PDF
Leveraging REST APIs for Infrastructure Management using FME
Safe Software
 
PDF
SAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDE
Markus Van Kempen
 
PDF
IRJET- Build a Secure Web based Code Editor for C Programming Language
IRJET Journal
 
PPTX
Compiler design
Thakur Ganeshsingh Thakur
 
PDF
Review Paper on Online Java Compiler
IRJET Journal
 
PPT
SW_Cost_Estimation.ppt
PerumalPitchandi
 
PDF
How NBCUniversal Adopted DevOps
Sanjeev Sharma
 
PPTX
Overview
Joanne Scouler
 
PPTX
UrbanCode Deploy course and product overview slides
IBM Rational software
 
PPTX
Indy meetup#7 effective unit-testing-mule
ikram_ahamed
 
PPT
Types of Compiler frontend vs backend of compiler
salesgeniusx
 
PDF
Auto conversion of serial C code to CUDA code
IRJET Journal
 
PPTX
Unit-2.pptx
sidhantkulkarni1
 
DOCX
resume
Srinivasa Rao M
 
PPT
Rhapsody Software
Bill Duncan
 
PPTX
unit1_cd unit1_cd unit1_cd unit1_cd unit1_cd (1).pptx
shella20221
 
PPTX
AngularJS: Service, factory & provider
Corley S.r.l.
 
C Compiler Construction Mastering Language Processing Computer Science Fundam...
shaimasantoj
 
Data structure and algorithm.lect-03.ppt
KamranAli649587
 
Reversing and Patching Machine Code
Teodoro Cipresso
 
Leveraging REST APIs for Infrastructure Management using FME
Safe Software
 
SAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDE
Markus Van Kempen
 
IRJET- Build a Secure Web based Code Editor for C Programming Language
IRJET Journal
 
Compiler design
Thakur Ganeshsingh Thakur
 
Review Paper on Online Java Compiler
IRJET Journal
 
SW_Cost_Estimation.ppt
PerumalPitchandi
 
How NBCUniversal Adopted DevOps
Sanjeev Sharma
 
Overview
Joanne Scouler
 
UrbanCode Deploy course and product overview slides
IBM Rational software
 
Indy meetup#7 effective unit-testing-mule
ikram_ahamed
 
Types of Compiler frontend vs backend of compiler
salesgeniusx
 
Auto conversion of serial C code to CUDA code
IRJET Journal
 
Unit-2.pptx
sidhantkulkarni1
 
Rhapsody Software
Bill Duncan
 
unit1_cd unit1_cd unit1_cd unit1_cd unit1_cd (1).pptx
shella20221
 
AngularJS: Service, factory & provider
Corley S.r.l.
 
Ad

issuesindesignofcodegenerator-150227091230-conversion-gate01

  • 2. Code generator  Final phase of compiler design  Optimized intermediate code is provided as input  It generates target code 9/15/2015 2Issues in design of code generator
  • 3. Code generation and Instruction Selection 4 Symbol table input output Front end Intermediate Code generator Code generator 9/15/2015 Issues in design of code generator
  • 4. Contd…  output code must be correct  output code must be of high quality  code generator should run efficiently 9/15/2015 4Issues in design of code generator
  • 5. Pre-requisites  Instruction set of target machine.  Instruction addressing modes.  No. of registers.  Configuration of ALU 9/15/2015 5Issues in design of code generator
  • 6. Issues in the design of a code generator  Input to the code generator  Memory management  Target programs  Instruction selection  Register allocation  Evaluation order  Approaches to code generation 9/15/2015 6Issues in design of code generator
  • 7. Input to the code generator  The intermediate representation of the source program produced by the front end  Several choices for the intermediate language  Linear - postfix nottion  3 address - quadruples  Virtual machie - stack machine code  Graphical - syntax tree &dags 9/15/2015 7Issues in design of code generator
  • 8. Memory management  Mapping names in the source program to addresses of data objects in run-time memory  Done by the front end and the code generator.  A name in a three- address statement refers to a symbol- table entry for the name.  A relative address can be determined 9/15/2015 8Issues in design of code generator
  • 9. Target programs  Absolute machine language Relocatable machine language  Assembly language 9/15/2015 9Issues in design of code generator
  • 10. Contd.. Absolute machine language:  Produce an absolute machine language program  can be placed in a fixed location in memory and immediately executed. 9/15/2015 10Issues in design of code generator
  • 11. Contd.. Relocatable machine language: Producing a relocatable machine language program subprograms to be compiled separately. relocatable object modules can be linked together and loaded for execution by a linking loader. must provide explicit relocation information to the loader, to link the separately compiled program segments. 9/15/2015 11Issues in design of code generator
  • 12. Contd… Assembly language: Producing an assembly language program makes the process of code generation easier 9/15/2015 12Issues in design of code generator
  • 13. Instruction selection The factors to be considered during instruction selection are:  The uniformity and completeness of the instruction set.  Instruction speed and machine idioms.  Size of the instruction set. 9/15/2015 13Issues in design of code generator
  • 14. Contd… Eg., for the following address code is: a := b + c d := a + e inefficient assembly code is: MOV b, R0 R0 ← b ADD c, R0 R0 ← c + R0 MOV R0, a a ← R0 MOV a, R0 R0 ← a ADD e, R0 R0 ← e + R0 MOV R0 , d d ← R0 Here the fourth statement is redundant, and so is the third statement if , 'a' is not subsequently used. 9/15/2015 14Issues in design of code generator
  • 15. Register allocation • Instructions with register operands are usually shorter and faster • Efficient utilization of registers is important in generating good code. 9/15/2015 15Issues in design of code generator
  • 16. Contd.. Register allocation phase: • Select the set of variables that will reside in registers Register assignment phase: • Pick the specific register that a variable will reside in. 9/15/2015 16Issues in design of code generator
  • 17. Evaluation order  The order in which computations are performed  Affect the efficiency of the target code.  Some computation orders require fewer registers to hold intermediate results 9/15/2015 17Issues in design of code generator
  • 18. Approaches to code generation  Most important criteria for code generator is that it produces correct code  Correctness takes on special signification  It contains a straightforward code generation algorithm  The output of such code generator can be improved by peephole optimization technique 9/15/2015 18Issues in design of code generator
  • 19. Conclusion Output of code generator phase is dependent on:  Target language  Operating system  Memory management system  Instruction selection  Register allocation  Evaluation order 9/15/2015 19Issues in design of code generator