SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
COMPILER DESIGN
INTRODUCTION
Richa Sharma 1
MAIN REFERENCE BOOK:
• COMPILERS – PRINCIPLES, TECHNIQUES AND TOOLS, SECOND EDITION BY
ALFRED V. AHO, RAVI SETHI, JEFFERY D. ULLMAN
• PRINCIPLES OF COMPILER DESIGN BY V R RAGHAVAN .
Richa Sharma 2
COMPILER
• IT’S A SOFTWARE UTILITY THAT TRANSLATED HIGH LANGUAGE CODE INTO TARGET LANGUAGE
CODE ,AS COMPUTER DOESN’T UNDERSTAND HIGH LANGUAGE.
DATA
OUTPUT
• IMPORTANT ROLE OF COMPILER IS TO REPORT THE ERROR IN THE SOURCE PROGRAM BY
TRANSLATING THE PROGRAM IN ONE GO.
• STRUCTURE OF THE COMPILER IS OFFLINE, MEANING THAT WE PRE-PROCESS THE PROGRAM FIRST
AND CREATES AND EXECUTABLE CODE AND THIS CODE CAN RUN ON DIFFERENT INPUTS OR DATA .
Richa Sharma 3
COMPILER
Source
Program
Target
Program
INTERPRETER
• IT’S ANOTHER SOFTWARE UTILITY THAT TRANSLATES HIGH LANGUAGE CODE INTO TARGET
LANGUAGE CODE LINE BY LINE UNLIKE COMPILER .
OUTPUT
• INTERPRETER IS ONLINE MODE, IN WHICH DATA AND SOURCE PROGRAM ARE EXECUTED
SIMULTANEOUSLY GIVING THE OUTPUT .NO PRE-PROCESSING IS DONE EARLIER.
Richa Sharma 4
COMPILER
Source Program
Data
EXAMPLES
MOST LANGUAGES ARE USUALLY THOUGHT OF AS USING EITHER
ONE OR THE OTHER:
• COMPILERS: FORTRAN, COBOL, C, C++, PASCAL, PL/1
• INTERPRETERS: LISP, SCHEME, BASIC, APL, PERL, PYTHON,
SMALLTALK
Richa Sharma 5
Preprocessor
Compiler
Assembler
Linker/Loader
Source program
Modified Source program
Target assembly program
Relocatable machine code
Target machine code
Library filesRicha Sharma
STEPS FOR LANGUAGE PROCESSING SYSTEM.
PHASES OF COMPILER
THE TRANSLATION OF INPUT FILE INTO TARGET CODE IS DIVIDED INTO 2 STAGES :
1. FRONT END (ANALYSIS): TRANSFORM SOURCE CODE INTO INTERMEDIATE CODE ALSO
CALLED INTERMEDIATE REPRESENTATION (IR) . IT’S A MACHINE-INDEPENDENT
REPRESENTATION.
2. BACK END (SYNTHESIS): IT TAKES IR AND GENERATES THE TARGET ASSEMBLY LANGUAGE
PROGRAM.
FRONT END BACK END
1) LEXICAL ANALYZER (SCANNING) 5) CODE OPTIMIZATION
2) SYNTAX ANALYZER (PARSING) 6) MACHINE CODE GENERATION
3) SEMANTIC ANALYZER
4) INTERMEDIATE CODE GENERATION
Richa Sharma 7
PHASES OF COMPILER
Richa Sharma 8
Symbol table Error handler
Front End
Back End
LEXICAL ANALYSIS/SCANNING
 READS THE STREAM OF CHARACTERS MAKING UP THE SOURCE PROGRAM AND GROUP THE
CHARACTERS INTO MEANINGFUL SEQUENCES CALLED LEXEMES.
 LEXEME ---- TOKEN
< TOKEN-NAME, ATTRIBUTE-VALUE>
 TOKEN NAME – IS AN ABSTRACT SYMBOL USED DURING SYNTAX ANALYSIS.
 ATTRIBUTE VALUE – POINTS TO AN ENTRY IN THE SYMBOL TABLE FOR THIS TOKEN.
POSITION = INITIAL + RATE * 60
<ID,1> < = > <ID,2> < +> <ID,3> < *> <60>
Richa Sharma 9
SYNTAX ANALYSIS/PARSING
• RECOGNIZES “SENTENCES” IN THE PROGRAM USING THE SYNTAX OF THE LANGUAGE
• CREATES TREE LIKE STRUCTURE FROM TOKENS (SYNTAX TREE)
• NODE REPRESENTS OPERATION
• CHILDREN REPRESENTS ARGUMENTS
• REPRESENTS THE SYNTACTIC STRUCTURE OF THE PROGRAM, HIDING A FEW DETAILS THAT ARE
IRRELEVENT TO LATER PHASES OF COMPILATION.
Richa Sharma 10
SEMANTIC ANALYSIS
• INFERS INFORMATION ABOUT THE PROGRAM USING THE SEMANTICS OF THE LANGUAGE
• USES SYNTAX TREE AND INFO. IN SYMBOL TABLE TO CHECK FOR SEMANTIC CONSISTENCY.
• GATHERS TYPE INFO. AND SAVES IT IN EITHER THE SYNTAX TREE OR SYMBOL TABLE FOR USE IN
ICG
• TYPE CHECKING – CHECKS THAT EACH OPERATOR HAS MATCHING OPERANDS. E.G ARRAY
INDEX SHOULD BE INTEGER.
• TYPE CONVERSIONS CALLED COERCIONS
• BINARY ARITHMETIC OPERATOR (INT OR FLOAT)
• IF 6+7.5, THEN CONVERT 6 TO 6.5
Richa Sharma 11
INTERMEDIATE CODE GENERATION
• GENERATES “ABSTRACT” CODE BASED ON THE SYNTACTIC STRUCTURE OF THE PROGRAM AND THE SEMANTIC
INFORMATION FROM PHASE 2.
 SYNTAX TREE ARE ALSO IR
 COMPILER MAY PRODUCE EXPLICIT IR
 IR HAS TWO PROPERTIES:
 EASY TO PRODUCE
 EASY TO TRANSLATE INTO TARGET MACHINE
 E.G IR – THREE ADDRESS CODE
 T1 = INTTOFLOAT(60)
 T2 = ID3 * T1
 T3 = ID2 + T3
 ID1 = T3
Richa Sharma 12
CODE OPTIMIZATION
• REFINES THE GENERATED CODE USING A SERIES OF OPTIMIZING TRANSFORMATIONS.
• Eg: REMOVING DEAD CODE .
REDUCING ITERATIONS AND LOOPS ETC..
• APPLY A SERIES OF TRANSFORMATIONS TO IMPROVE THE TIME AND SPACE EFFICIENCY OF THE
GENERATED CODE.
• PEEPHOLE OPTIMIZATIONS: GENERATE NEW INSTRUCTIONS BY COMBINING/EXPANDING ON
A SMALL NUMBER OF CONSECUTIVE INSTRUCTIONS.
• GLOBAL OPTIMIZATIONS: REORDER, REMOVE OR ADD INSTRUCTIONS TO CHANGE THE
STRUCTURE OF GENERATED CODE.
Richa Sharma 13
CODE GENEARTION
• MAP INSTRUCTIONS IN THE INTERMEDIATE CODE TO SPECIFIC MACHINE INSTRUCTIONS.
• SUPPORTS STANDARD OBJECT FILE FORMATS.
• GENERATES SUFFICIENT INFORMATION TO ENABLE SYMBOLIC DEBUGGING.
 IR -> CG -> TARGET LANGUAGE (E.G MACHINE CODE)
 REGISTERS AND MEMORY LOCATIONS ARE SELECTED FOR EACH VARIABLE USED BY THE PROGRAM.
 LDF R2, ID3
 MULF R2, R2, #60.0
 LDF R1, ID2
 ADDF R1, R1, R2
 STF ID1, R1
 R1,R2 – REGISTERS F – FLOATING POINT NUMBERS # - IMMEDIATE CONST.
Richa Sharma
14
SYMBOL TABLE
• SYMBOL TABLE – DATA STRUCTURE WITH A RECORD FOR EACH IDENTIFIER AND ITS ATTRIBUTES
• ALL THE PHASES ARE CONNECTED TO THE SYMBOL TABLE.
• ATTRIBUTES INCLUDE STORAGE ALLOCATION, TYPE, SCOPE, ETC
• ALL THE COMPILER PHASES INSERT AND MODIFY THE SYMBOL TABLE
Richa Sharma 15
Richa Sharma
16
OVERALL WORKING OF COMPILER PHASES
COMPILER CONSTRUCTION TOOLS
• DEVELOPER MAY USE MODERN SOFTWARE DEVELOPMENT ENVIRONMENT CONTAINING
TOOLS Ex: LANGUAGE EDITORS, VERSION MANAGERS, TEC.
• SOME SPECIAL TOOLS CAN ALSO BE USED. THESE TOOLS ARE THOSE WHICH HIDE THE DETAILS
OF GENERATION ALGORITHM AND PRODUCE COMPONENTS THAT CAN BE EASILY INTEGRATED
TO REMAINDER OF THE COMPILER.
• PARSER GENERATOR: TAKES GRAMMAR DESCRIPTION AND PRODUCES SYNTAX ANALYSER.
• SCANNER GENERATOR: TAKES REGULAR EXPRESSION AND PRODUCES LEXICAL ANALYSER.
• AUTOMATIC CODE- GENERATOR : TAKES INTERMEDIATE AND CONVERT TO MACHINE
LANGUAGE)
• DATA FLOW ANALYSIS ENGINES (FOR OPTIMIZATION)
• COMPILER CONSTRUCTION TOOLKIT.
Richa Sharma 17
APPLICATION OF COMPILER TECHNOLOGY
• IMPLEMENTATION OF HIGH LEVEL PROGRAMMING LANGUAGES
- CONCEPTS OF OOPS
• OPTIMIZATION FOR COMPUTER ARCHITECTURE
- PARALLELISM
- MEMORY HIERARCHIES OF MACHINES(REG, ARRAYS ETC)
• DESIGN OF NEW COMPUTER ARCHITECURES
- RISC
- CISC
- SIMD ETC
• PROGRAM TRANSLATIONS
• SOFTWARE PRODUCTIVITY TOOLS
Richa Sharma
18
Richa Sharma 19

Contenu connexe

Tendances (20)

Lecture1 introduction compilers
Lecture1 introduction compilersLecture1 introduction compilers
Lecture1 introduction compilers
 
Compiler Design Basics
Compiler Design BasicsCompiler Design Basics
Compiler Design Basics
 
Single pass assembler
Single pass assemblerSingle pass assembler
Single pass assembler
 
Code Optimization
Code OptimizationCode Optimization
Code Optimization
 
Introduction to Compiler
Introduction to CompilerIntroduction to Compiler
Introduction to Compiler
 
Types of Compilers
Types of CompilersTypes of Compilers
Types of Compilers
 
Pass Structure of Assembler
Pass Structure of AssemblerPass Structure of Assembler
Pass Structure of Assembler
 
Fundamentals of Language Processing
Fundamentals of Language ProcessingFundamentals of Language Processing
Fundamentals of Language Processing
 
Syntax Analysis in Compiler Design
Syntax Analysis in Compiler Design Syntax Analysis in Compiler Design
Syntax Analysis in Compiler Design
 
Compiler Chapter 1
Compiler Chapter 1Compiler Chapter 1
Compiler Chapter 1
 
Introduction to Compiler design
Introduction to Compiler design Introduction to Compiler design
Introduction to Compiler design
 
RECURSIVE DESCENT PARSING
RECURSIVE DESCENT PARSINGRECURSIVE DESCENT PARSING
RECURSIVE DESCENT PARSING
 
Phases of compiler
Phases of compilerPhases of compiler
Phases of compiler
 
Introduction to compiler
Introduction to compilerIntroduction to compiler
Introduction to compiler
 
Predictive parser
Predictive parserPredictive parser
Predictive parser
 
Compiler Construction
Compiler ConstructionCompiler Construction
Compiler Construction
 
Passes of compilers
Passes of compilersPasses of compilers
Passes of compilers
 
Types of Parser
Types of ParserTypes of Parser
Types of Parser
 
Language processing activity
Language processing activityLanguage processing activity
Language processing activity
 
Code generation
Code generationCode generation
Code generation
 

Similaire à Compiler Design Introduction

Concept of compiler in details
Concept of compiler in detailsConcept of compiler in details
Concept of compiler in detailskazi_aihtesham
 
Intermediate Representation in Compiler Construction
Intermediate Representation in Compiler ConstructionIntermediate Representation in Compiler Construction
Intermediate Representation in Compiler Constructiontheizm1
 
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 compileradilmehmood93
 
2-Design Issues, Patterns, Lexemes, Tokens-28-04-2023.docx
2-Design Issues, Patterns, Lexemes, Tokens-28-04-2023.docx2-Design Issues, Patterns, Lexemes, Tokens-28-04-2023.docx
2-Design Issues, Patterns, Lexemes, Tokens-28-04-2023.docxvenkatapranaykumarGa
 
Lecture 16 17 code-generation
Lecture 16 17 code-generationLecture 16 17 code-generation
Lecture 16 17 code-generationIffat Anjum
 
Techniques & applications of Compiler
Techniques & applications of CompilerTechniques & applications of Compiler
Techniques & applications of CompilerPreethi AKNR
 
1-Phases of compiler-26-04-2023.pptx
1-Phases of compiler-26-04-2023.pptx1-Phases of compiler-26-04-2023.pptx
1-Phases of compiler-26-04-2023.pptxvenkatapranaykumarGa
 
Embedded system design process
Embedded system design processEmbedded system design process
Embedded system design processRayees CK
 
Principles of Compiler Design
Principles of Compiler DesignPrinciples of Compiler Design
Principles of Compiler DesignMarimuthu M
 
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
 
lec00-Introduction.pdf
lec00-Introduction.pdflec00-Introduction.pdf
lec00-Introduction.pdfwigewej294
 

Similaire à Compiler Design Introduction (20)

Cpcs302 1
Cpcs302  1Cpcs302  1
Cpcs302 1
 
Concept of compiler in details
Concept of compiler in detailsConcept of compiler in details
Concept of compiler in details
 
Chapter 1.pptx
Chapter 1.pptxChapter 1.pptx
Chapter 1.pptx
 
Intermediate Representation in Compiler Construction
Intermediate Representation in Compiler ConstructionIntermediate Representation in Compiler Construction
Intermediate Representation in Compiler Construction
 
Compiler
CompilerCompiler
Compiler
 
Single Pass Assembler
Single Pass AssemblerSingle Pass Assembler
Single Pass Assembler
 
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
 
Phases of compiler
Phases of compilerPhases of compiler
Phases of compiler
 
2-Design Issues, Patterns, Lexemes, Tokens-28-04-2023.docx
2-Design Issues, Patterns, Lexemes, Tokens-28-04-2023.docx2-Design Issues, Patterns, Lexemes, Tokens-28-04-2023.docx
2-Design Issues, Patterns, Lexemes, Tokens-28-04-2023.docx
 
Lecture 16 17 code-generation
Lecture 16 17 code-generationLecture 16 17 code-generation
Lecture 16 17 code-generation
 
Techniques & applications of Compiler
Techniques & applications of CompilerTechniques & applications of Compiler
Techniques & applications of Compiler
 
1-Phases of compiler-26-04-2023.pptx
1-Phases of compiler-26-04-2023.pptx1-Phases of compiler-26-04-2023.pptx
1-Phases of compiler-26-04-2023.pptx
 
Compiler design
Compiler designCompiler design
Compiler design
 
Cd econtent link1
Cd econtent link1Cd econtent link1
Cd econtent link1
 
Embedded system design process
Embedded system design processEmbedded system design process
Embedded system design process
 
Principles of Compiler Design
Principles of Compiler DesignPrinciples of Compiler Design
Principles of Compiler Design
 
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
 
lec00-Introduction.pdf
lec00-Introduction.pdflec00-Introduction.pdf
lec00-Introduction.pdf
 
gayathri.p.pptx
gayathri.p.pptxgayathri.p.pptx
gayathri.p.pptx
 

Dernier

Risk Management in Engineering Construction Project
Risk Management in Engineering Construction ProjectRisk Management in Engineering Construction Project
Risk Management in Engineering Construction ProjectErbil Polytechnic University
 
Main Memory Management in Operating System
Main Memory Management in Operating SystemMain Memory Management in Operating System
Main Memory Management in Operating SystemRashmi Bhat
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...121011101441
 
home automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasadhome automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasadaditya806802
 
Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxsiddharthjain2303
 
Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Romil Mishra
 
Crushers to screens in aggregate production
Crushers to screens in aggregate productionCrushers to screens in aggregate production
Crushers to screens in aggregate productionChinnuNinan
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communicationpanditadesh123
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxRomil Mishra
 
System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingBootNeck1
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvLewisJB
 
Cooling Tower SERD pH drop issue (11 April 2024) .pptx
Cooling Tower SERD pH drop issue (11 April 2024) .pptxCooling Tower SERD pH drop issue (11 April 2024) .pptx
Cooling Tower SERD pH drop issue (11 April 2024) .pptxmamansuratman0253
 
Katarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School CourseKatarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School Coursebim.edu.pl
 
Ch10-Global Supply Chain - Cadena de Suministro.pdf
Ch10-Global Supply Chain - Cadena de Suministro.pdfCh10-Global Supply Chain - Cadena de Suministro.pdf
Ch10-Global Supply Chain - Cadena de Suministro.pdfChristianCDAM
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleAlluxio, Inc.
 
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...Erbil Polytechnic University
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptxmohitesoham12
 

Dernier (20)

Risk Management in Engineering Construction Project
Risk Management in Engineering Construction ProjectRisk Management in Engineering Construction Project
Risk Management in Engineering Construction Project
 
Main Memory Management in Operating System
Main Memory Management in Operating SystemMain Memory Management in Operating System
Main Memory Management in Operating System
 
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...
 
home automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasadhome automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasad
 
Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptx
 
Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________
 
Designing pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptxDesigning pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptx
 
Crushers to screens in aggregate production
Crushers to screens in aggregate productionCrushers to screens in aggregate production
Crushers to screens in aggregate production
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communication
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptx
 
System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event Scheduling
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvv
 
Cooling Tower SERD pH drop issue (11 April 2024) .pptx
Cooling Tower SERD pH drop issue (11 April 2024) .pptxCooling Tower SERD pH drop issue (11 April 2024) .pptx
Cooling Tower SERD pH drop issue (11 April 2024) .pptx
 
Katarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School CourseKatarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School Course
 
Ch10-Global Supply Chain - Cadena de Suministro.pdf
Ch10-Global Supply Chain - Cadena de Suministro.pdfCh10-Global Supply Chain - Cadena de Suministro.pdf
Ch10-Global Supply Chain - Cadena de Suministro.pdf
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at Scale
 
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptx
 

Compiler Design Introduction

  • 2. MAIN REFERENCE BOOK: • COMPILERS – PRINCIPLES, TECHNIQUES AND TOOLS, SECOND EDITION BY ALFRED V. AHO, RAVI SETHI, JEFFERY D. ULLMAN • PRINCIPLES OF COMPILER DESIGN BY V R RAGHAVAN . Richa Sharma 2
  • 3. COMPILER • IT’S A SOFTWARE UTILITY THAT TRANSLATED HIGH LANGUAGE CODE INTO TARGET LANGUAGE CODE ,AS COMPUTER DOESN’T UNDERSTAND HIGH LANGUAGE. DATA OUTPUT • IMPORTANT ROLE OF COMPILER IS TO REPORT THE ERROR IN THE SOURCE PROGRAM BY TRANSLATING THE PROGRAM IN ONE GO. • STRUCTURE OF THE COMPILER IS OFFLINE, MEANING THAT WE PRE-PROCESS THE PROGRAM FIRST AND CREATES AND EXECUTABLE CODE AND THIS CODE CAN RUN ON DIFFERENT INPUTS OR DATA . Richa Sharma 3 COMPILER Source Program Target Program
  • 4. INTERPRETER • IT’S ANOTHER SOFTWARE UTILITY THAT TRANSLATES HIGH LANGUAGE CODE INTO TARGET LANGUAGE CODE LINE BY LINE UNLIKE COMPILER . OUTPUT • INTERPRETER IS ONLINE MODE, IN WHICH DATA AND SOURCE PROGRAM ARE EXECUTED SIMULTANEOUSLY GIVING THE OUTPUT .NO PRE-PROCESSING IS DONE EARLIER. Richa Sharma 4 COMPILER Source Program Data
  • 5. EXAMPLES MOST LANGUAGES ARE USUALLY THOUGHT OF AS USING EITHER ONE OR THE OTHER: • COMPILERS: FORTRAN, COBOL, C, C++, PASCAL, PL/1 • INTERPRETERS: LISP, SCHEME, BASIC, APL, PERL, PYTHON, SMALLTALK Richa Sharma 5
  • 6. Preprocessor Compiler Assembler Linker/Loader Source program Modified Source program Target assembly program Relocatable machine code Target machine code Library filesRicha Sharma STEPS FOR LANGUAGE PROCESSING SYSTEM.
  • 7. PHASES OF COMPILER THE TRANSLATION OF INPUT FILE INTO TARGET CODE IS DIVIDED INTO 2 STAGES : 1. FRONT END (ANALYSIS): TRANSFORM SOURCE CODE INTO INTERMEDIATE CODE ALSO CALLED INTERMEDIATE REPRESENTATION (IR) . IT’S A MACHINE-INDEPENDENT REPRESENTATION. 2. BACK END (SYNTHESIS): IT TAKES IR AND GENERATES THE TARGET ASSEMBLY LANGUAGE PROGRAM. FRONT END BACK END 1) LEXICAL ANALYZER (SCANNING) 5) CODE OPTIMIZATION 2) SYNTAX ANALYZER (PARSING) 6) MACHINE CODE GENERATION 3) SEMANTIC ANALYZER 4) INTERMEDIATE CODE GENERATION Richa Sharma 7
  • 8. PHASES OF COMPILER Richa Sharma 8 Symbol table Error handler Front End Back End
  • 9. LEXICAL ANALYSIS/SCANNING  READS THE STREAM OF CHARACTERS MAKING UP THE SOURCE PROGRAM AND GROUP THE CHARACTERS INTO MEANINGFUL SEQUENCES CALLED LEXEMES.  LEXEME ---- TOKEN < TOKEN-NAME, ATTRIBUTE-VALUE>  TOKEN NAME – IS AN ABSTRACT SYMBOL USED DURING SYNTAX ANALYSIS.  ATTRIBUTE VALUE – POINTS TO AN ENTRY IN THE SYMBOL TABLE FOR THIS TOKEN. POSITION = INITIAL + RATE * 60 <ID,1> < = > <ID,2> < +> <ID,3> < *> <60> Richa Sharma 9
  • 10. SYNTAX ANALYSIS/PARSING • RECOGNIZES “SENTENCES” IN THE PROGRAM USING THE SYNTAX OF THE LANGUAGE • CREATES TREE LIKE STRUCTURE FROM TOKENS (SYNTAX TREE) • NODE REPRESENTS OPERATION • CHILDREN REPRESENTS ARGUMENTS • REPRESENTS THE SYNTACTIC STRUCTURE OF THE PROGRAM, HIDING A FEW DETAILS THAT ARE IRRELEVENT TO LATER PHASES OF COMPILATION. Richa Sharma 10
  • 11. SEMANTIC ANALYSIS • INFERS INFORMATION ABOUT THE PROGRAM USING THE SEMANTICS OF THE LANGUAGE • USES SYNTAX TREE AND INFO. IN SYMBOL TABLE TO CHECK FOR SEMANTIC CONSISTENCY. • GATHERS TYPE INFO. AND SAVES IT IN EITHER THE SYNTAX TREE OR SYMBOL TABLE FOR USE IN ICG • TYPE CHECKING – CHECKS THAT EACH OPERATOR HAS MATCHING OPERANDS. E.G ARRAY INDEX SHOULD BE INTEGER. • TYPE CONVERSIONS CALLED COERCIONS • BINARY ARITHMETIC OPERATOR (INT OR FLOAT) • IF 6+7.5, THEN CONVERT 6 TO 6.5 Richa Sharma 11
  • 12. INTERMEDIATE CODE GENERATION • GENERATES “ABSTRACT” CODE BASED ON THE SYNTACTIC STRUCTURE OF THE PROGRAM AND THE SEMANTIC INFORMATION FROM PHASE 2.  SYNTAX TREE ARE ALSO IR  COMPILER MAY PRODUCE EXPLICIT IR  IR HAS TWO PROPERTIES:  EASY TO PRODUCE  EASY TO TRANSLATE INTO TARGET MACHINE  E.G IR – THREE ADDRESS CODE  T1 = INTTOFLOAT(60)  T2 = ID3 * T1  T3 = ID2 + T3  ID1 = T3 Richa Sharma 12
  • 13. CODE OPTIMIZATION • REFINES THE GENERATED CODE USING A SERIES OF OPTIMIZING TRANSFORMATIONS. • Eg: REMOVING DEAD CODE . REDUCING ITERATIONS AND LOOPS ETC.. • APPLY A SERIES OF TRANSFORMATIONS TO IMPROVE THE TIME AND SPACE EFFICIENCY OF THE GENERATED CODE. • PEEPHOLE OPTIMIZATIONS: GENERATE NEW INSTRUCTIONS BY COMBINING/EXPANDING ON A SMALL NUMBER OF CONSECUTIVE INSTRUCTIONS. • GLOBAL OPTIMIZATIONS: REORDER, REMOVE OR ADD INSTRUCTIONS TO CHANGE THE STRUCTURE OF GENERATED CODE. Richa Sharma 13
  • 14. CODE GENEARTION • MAP INSTRUCTIONS IN THE INTERMEDIATE CODE TO SPECIFIC MACHINE INSTRUCTIONS. • SUPPORTS STANDARD OBJECT FILE FORMATS. • GENERATES SUFFICIENT INFORMATION TO ENABLE SYMBOLIC DEBUGGING.  IR -> CG -> TARGET LANGUAGE (E.G MACHINE CODE)  REGISTERS AND MEMORY LOCATIONS ARE SELECTED FOR EACH VARIABLE USED BY THE PROGRAM.  LDF R2, ID3  MULF R2, R2, #60.0  LDF R1, ID2  ADDF R1, R1, R2  STF ID1, R1  R1,R2 – REGISTERS F – FLOATING POINT NUMBERS # - IMMEDIATE CONST. Richa Sharma 14
  • 15. SYMBOL TABLE • SYMBOL TABLE – DATA STRUCTURE WITH A RECORD FOR EACH IDENTIFIER AND ITS ATTRIBUTES • ALL THE PHASES ARE CONNECTED TO THE SYMBOL TABLE. • ATTRIBUTES INCLUDE STORAGE ALLOCATION, TYPE, SCOPE, ETC • ALL THE COMPILER PHASES INSERT AND MODIFY THE SYMBOL TABLE Richa Sharma 15
  • 16. Richa Sharma 16 OVERALL WORKING OF COMPILER PHASES
  • 17. COMPILER CONSTRUCTION TOOLS • DEVELOPER MAY USE MODERN SOFTWARE DEVELOPMENT ENVIRONMENT CONTAINING TOOLS Ex: LANGUAGE EDITORS, VERSION MANAGERS, TEC. • SOME SPECIAL TOOLS CAN ALSO BE USED. THESE TOOLS ARE THOSE WHICH HIDE THE DETAILS OF GENERATION ALGORITHM AND PRODUCE COMPONENTS THAT CAN BE EASILY INTEGRATED TO REMAINDER OF THE COMPILER. • PARSER GENERATOR: TAKES GRAMMAR DESCRIPTION AND PRODUCES SYNTAX ANALYSER. • SCANNER GENERATOR: TAKES REGULAR EXPRESSION AND PRODUCES LEXICAL ANALYSER. • AUTOMATIC CODE- GENERATOR : TAKES INTERMEDIATE AND CONVERT TO MACHINE LANGUAGE) • DATA FLOW ANALYSIS ENGINES (FOR OPTIMIZATION) • COMPILER CONSTRUCTION TOOLKIT. Richa Sharma 17
  • 18. APPLICATION OF COMPILER TECHNOLOGY • IMPLEMENTATION OF HIGH LEVEL PROGRAMMING LANGUAGES - CONCEPTS OF OOPS • OPTIMIZATION FOR COMPUTER ARCHITECTURE - PARALLELISM - MEMORY HIERARCHIES OF MACHINES(REG, ARRAYS ETC) • DESIGN OF NEW COMPUTER ARCHITECURES - RISC - CISC - SIMD ETC • PROGRAM TRANSLATIONS • SOFTWARE PRODUCTIVITY TOOLS Richa Sharma 18