SlideShare a Scribd company logo
1 of 22
Compiler Design
Prepared and Presented By:
Thakur Ganeshsingh
Friday, July 6, 2018
2
Pre-requisites before we start
Introduction
Compiler and its origin
Compiler Architecture
How compiler works?
Advantages and Application of Compiler over interpreter
Conclusions
References and Details links
Content Overview
Friday, July 6, 2018
3 Pre-requisites before we start
• High Level and Low Level languages
• Platforms
• Interpreters
• Bytecodes
• Loaders and Linkers
• Cross-platform applications
• Definitions
• Compiler
• De-compiler
Friday, July 6, 2018
4 Introduction
• A compiler is computer software that transforms computer code written in
high level language into machine understandable language.
• Compilers are more like a type of translator that support digital devices,
primarily computers.
Compiler Target ProgramSource Program
Error Messages
Friday, July 6, 2018
5 Introduction Contd..
Fig: Schematics of High Level Application Code Execution
Friday, July 6, 2018
6 Compiler and its origin
• Primitive binary languages evolved because digital devices only understand ones and
zeros and the circuit patterns in the underlying machine architecture.
• Limited memory capacity of early computers led to substantial technical challenges when
the first compilers were designed. Therefore, the compilation process needed to be divided
into several small programs.
• A compiler is likely to perform many or all of the following operations:
• Preprocessing
• Lexical analysis
• Parsing
• Semantic analysis (syntax-directed translation)
• Conversion of input programs to an intermediate representation
• Code optimization
• Code generation.
Friday, July 6, 2018
7 Compiler Architecture
Friday, July 6, 2018
8 Compiler Architecture Contd..
Friday, July 6, 2018
9 Compiler Architecture Contd..
• The Compiler accepts the high level language as input and converts it to target executable code by
passing through the following stages.
• Source Program
• The high level machine program written in human understandable language such as C,
C++, Java
• Often English like language hence easily readable and has specified rules and limited
literals called as keyword and variables.
• Lexical Analyzer
• The code written in high level languages contain literals such as operators, alphabets and
special characters.
• Lexical analyzer divides the code in to tokens and stores them in to symbol table.
• Symbol table is a Hash Table of tokens and contain unique entries of literals.
• Eg: int a = 10; - in this example ‘int’, ‘a’, ‘=‘, ‘;’ are the literals
Friday, July 6, 2018
10 Compiler Architecture Contd..
• Syntax Analyzer
• Each piece of code written in high level language must comply to the rules defined by it.
These are called structural rules of the language.
• Eg: printf(“Hi, this is a print statement”);
int a=10, b=20, c;
c = a + b;
• Each of these lines have pre-defined syntax. Here for first line it is as function name,
followed by open brace and double quote, printable content, closing quotes, closing braces
and semicolon.
• Schematic Analyzer
• Semantic analysis checks whether the parse tree constructed follows the rules of language.
• For example, assignment of values is between compatible data types, and adding string to
an integer.
Friday, July 6, 2018
11 Compiler Architecture Contd..
Fig : Schematic Analysis - A typical schematic diagram for addition of two number
=
c +
a b
Friday, July 6, 2018
12 Compiler Architecture Contd..
• Symbol Table Manager
• Lexical analyzer generates tokens as a part of lexical analysis of the source code. These
tokens needs to be managed and stored. To do so a Hash Dataset is used called as Symbol
Table or SymTab
• Error Handler
• There might be chances of occurring common error such as wrongly typed keyword,
missing semicolon, improper function definition, missing return types. All these errors
must be reported and resolved prior to code execution.
• Error handler produces error messages and notifies users about the same.
• Intermediate Code Generator
• An Intermediate representation (IR) is the data structure or code used internally by a
compiler or virtual machine to represent source code.
• An IR may take one of several forms: an in-memory data structure, or a special tuple- or
stack-based code readable by the program. In the latter case it is also called an
intermediate language.
Friday, July 6, 2018
13 Compiler Architecture Contd..
• Intermediate code example
High level expression => a = b + c * d;
Intermediate code => r1 = c * d;
r2 = b + r1;
a = r2
• Code Optimizer
• Optimization is a program transformation technique, which tries to improve the code by
making it consume less resources (i.e. CPU, Memory) and deliver high speed.
• The output code must not, in any way, change the meaning of the program.
• Optimization should increase the speed of the program and if possible, the program should
demand less number of resources.
• Optimization should itself be fast and should not delay the overall compiling process.
Friday, July 6, 2018
14 Compiler Architecture Contd..
• Example of code optimization
do
{
item = 10;
value = value + item;
} while(value<100);
item = 10;
do
{
value = value + item;
} while(value<100);
Variable instantiation in each loop
iteration – increasing the amount of
memory used for execution
Variable instantiation in each loop
iteration – increasing the amount of
memory used for execution
Friday, July 6, 2018
15 Compiler Architecture Contd..
• Code Generator
• In computing, code generation is the process by which a compiler's code generator
converts some intermediate representation of source code into a form (e.g., machine code)
that can be readily executed by a machine.
• The input to the code generator typically consists of a parse tree or an abstract syntax tree.
• The tree is converted into a linear sequence of instructions, usually in an intermediate
language such as three-address code.
• Major tasks in code generation
• Instruction selection: which instructions to use.
• Instruction scheduling: in which order to put those instructions. Scheduling is a speed
optimization that can have a critical effect on pipelined machines.
• Register allocation: the allocation of variables to processor registers
• Debug data generation if required so the code can be debugged.
Friday, July 6, 2018
16 How compiler works?
Friday, July 6, 2018
17 How compiler works?
Friday, July 6, 2018
18 Advantages and Application of Compiler over interpreter
• The entire program is verified so there are no syntax or semantic errors;
• The executable file is optimized by the compiler so it execute faster;
• User do not have to execute the program on the same machine it was built.
• Parse the program
• Check for syntax errors, check for data types
• Create internal structure in memory
• Verify the program semantic, optimize the structure
• Translate the program in other language, generate files on disk
• Link the files into an executable
Friday, July 6, 2018
19 Conclusions
• A compiler translates the code written in one language to some other language without
changing the meaning of the program.
• It is also expected that a compiler should make the target code efficient and optimized in
terms of time and space.
• Compiler design principles provide an in-depth view of translation and optimization
process. Compiler design covers basic translation mechanism and error detection &
recovery.
• It includes lexical, syntax, and semantic analysis as front end, and code generation and
optimization as back-end.
Friday, July 6, 2018
20 References and Details links
• Principles of Compiler Design (Addison-Wesley series in computer science and information
processing), by Alfred V. Aho and Jeffrey D. Ullman, Aug 1977
• Compilers: Principles, Techniques, and Tools (2nd Edition) Alfred V. Aho, Monica S. Lam, Ravi
Sethi, and Jeffrey D. Ullman Aug 31, 2000
• Principles of Compiler Design, Allman Jeffrey D. Aho Alfred V 1989
• Principles Of Compiler Design. Second Printing, Alfred V. And Ullman, Jeffrey D. Aho, 1984
• The Compiler Design Handbook: Optimizations & Machine Code Generation Y.N. Srikant and
Priti Shankar Sep 25, 2002.
• https://www.tutorialspoint.com/compiler_design/
• https://en.wikipedia.org/wiki/Compiler
• https://en.wikipedia.org/wiki/List_of_compilers
• https://en.wikipedia.org/wiki/Java_compiler
• https://en.wikibooks.org/wiki/Compiler_Construction
Compiler design
Compiler design

More Related Content

What's hot

What's hot (20)

Phases of compiler
Phases of compilerPhases of compiler
Phases of compiler
 
Phases of compiler
Phases of compilerPhases of compiler
Phases of compiler
 
System Programming Overview
System Programming OverviewSystem Programming Overview
System Programming Overview
 
Phases of Compiler
Phases of CompilerPhases of Compiler
Phases of Compiler
 
Compiler construction
Compiler constructionCompiler construction
Compiler construction
 
Two pass Assembler
Two pass AssemblerTwo pass Assembler
Two pass Assembler
 
Assemblers
AssemblersAssemblers
Assemblers
 
Language processors
Language processorsLanguage processors
Language processors
 
Lexical Analysis
Lexical AnalysisLexical Analysis
Lexical Analysis
 
Compiler Chapter 1
Compiler Chapter 1Compiler Chapter 1
Compiler Chapter 1
 
Bootstrapping in Compiler
Bootstrapping in CompilerBootstrapping in Compiler
Bootstrapping in Compiler
 
Ch 4 linker loader
Ch 4 linker loaderCh 4 linker loader
Ch 4 linker loader
 
Fundamentals of Language Processing
Fundamentals of Language ProcessingFundamentals of Language Processing
Fundamentals of Language Processing
 
Compiler Construction introduction
Compiler Construction introductionCompiler Construction introduction
Compiler Construction introduction
 
Intermediate code generation in Compiler Design
Intermediate code generation in Compiler DesignIntermediate code generation in Compiler Design
Intermediate code generation in Compiler Design
 
Compiler Design Lecture Notes
Compiler Design Lecture NotesCompiler Design Lecture Notes
Compiler Design Lecture Notes
 
Introduction to Compiler
Introduction to CompilerIntroduction to Compiler
Introduction to Compiler
 
Intermediate code generation (Compiler Design)
Intermediate code generation (Compiler Design)   Intermediate code generation (Compiler Design)
Intermediate code generation (Compiler Design)
 
Compiler construction tools
Compiler construction toolsCompiler construction tools
Compiler construction tools
 
Intermediate code generator
Intermediate code generatorIntermediate code generator
Intermediate code generator
 

Similar to Compiler design

Similar to Compiler design (20)

Compiler Design Basics
Compiler Design BasicsCompiler Design Basics
Compiler Design Basics
 
Compilers.pptx
Compilers.pptxCompilers.pptx
Compilers.pptx
 
Compiler Design Introduction
Compiler Design Introduction Compiler Design Introduction
Compiler Design Introduction
 
C language unit-1
C language unit-1C language unit-1
C language unit-1
 
C LANGUAGE UNIT-1 PREPARED BY M V BRAHMANANDA REDDY
C LANGUAGE UNIT-1 PREPARED BY M V BRAHMANANDA REDDYC LANGUAGE UNIT-1 PREPARED BY M V BRAHMANANDA REDDY
C LANGUAGE UNIT-1 PREPARED BY M V BRAHMANANDA REDDY
 
C languaGE UNIT-1
C languaGE UNIT-1C languaGE UNIT-1
C languaGE UNIT-1
 
compiler construction tool in computer science .
compiler construction tool in computer science .compiler construction tool in computer science .
compiler construction tool in computer science .
 
4_5802928814682016556.pptx
4_5802928814682016556.pptx4_5802928814682016556.pptx
4_5802928814682016556.pptx
 
Cd ch1 - introduction
Cd   ch1 - introductionCd   ch1 - introduction
Cd ch1 - introduction
 
CD - CH1 - Introduction to compiler design.pptx
CD - CH1 - Introduction to compiler design.pptxCD - CH1 - Introduction to compiler design.pptx
CD - CH1 - Introduction to compiler design.pptx
 
Unit ii
Unit   iiUnit   ii
Unit ii
 
X-CS-8.0 Programming in C Language 2022-2023.pdf
X-CS-8.0 Programming in C Language 2022-2023.pdfX-CS-8.0 Programming in C Language 2022-2023.pdf
X-CS-8.0 Programming in C Language 2022-2023.pdf
 
Embedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals masterEmbedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals master
 
Compiler an overview
Compiler  an overviewCompiler  an overview
Compiler an overview
 
COMPILER DESIGN PPTS.pptx
COMPILER DESIGN PPTS.pptxCOMPILER DESIGN PPTS.pptx
COMPILER DESIGN PPTS.pptx
 
Computer Programming In C.pptx
Computer Programming In C.pptxComputer Programming In C.pptx
Computer Programming In C.pptx
 
week 2 - INTRO TO PROGRAMMING.pptx
week 2 - INTRO TO PROGRAMMING.pptxweek 2 - INTRO TO PROGRAMMING.pptx
week 2 - INTRO TO PROGRAMMING.pptx
 
Compiler Design Introduction
Compiler Design IntroductionCompiler Design Introduction
Compiler Design Introduction
 
Cpcs302 1
Cpcs302  1Cpcs302  1
Cpcs302 1
 
Introduction to Compiler Construction
Introduction to Compiler Construction Introduction to Compiler Construction
Introduction to Compiler Construction
 

Recently uploaded

Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
Kamal Acharya
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
jaanualu31
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
mphochane1998
 
Verification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxVerification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptx
chumtiyababu
 

Recently uploaded (20)

Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Engineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planesEngineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planes
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and properties
 
Computer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to ComputersComputer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to Computers
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
Wadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxWadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptx
 
kiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadkiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal load
 
Verification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxVerification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptx
 

Compiler design

  • 1. Compiler Design Prepared and Presented By: Thakur Ganeshsingh
  • 2. Friday, July 6, 2018 2 Pre-requisites before we start Introduction Compiler and its origin Compiler Architecture How compiler works? Advantages and Application of Compiler over interpreter Conclusions References and Details links Content Overview
  • 3. Friday, July 6, 2018 3 Pre-requisites before we start • High Level and Low Level languages • Platforms • Interpreters • Bytecodes • Loaders and Linkers • Cross-platform applications • Definitions • Compiler • De-compiler
  • 4. Friday, July 6, 2018 4 Introduction • A compiler is computer software that transforms computer code written in high level language into machine understandable language. • Compilers are more like a type of translator that support digital devices, primarily computers. Compiler Target ProgramSource Program Error Messages
  • 5. Friday, July 6, 2018 5 Introduction Contd.. Fig: Schematics of High Level Application Code Execution
  • 6. Friday, July 6, 2018 6 Compiler and its origin • Primitive binary languages evolved because digital devices only understand ones and zeros and the circuit patterns in the underlying machine architecture. • Limited memory capacity of early computers led to substantial technical challenges when the first compilers were designed. Therefore, the compilation process needed to be divided into several small programs. • A compiler is likely to perform many or all of the following operations: • Preprocessing • Lexical analysis • Parsing • Semantic analysis (syntax-directed translation) • Conversion of input programs to an intermediate representation • Code optimization • Code generation.
  • 7. Friday, July 6, 2018 7 Compiler Architecture
  • 8. Friday, July 6, 2018 8 Compiler Architecture Contd..
  • 9. Friday, July 6, 2018 9 Compiler Architecture Contd.. • The Compiler accepts the high level language as input and converts it to target executable code by passing through the following stages. • Source Program • The high level machine program written in human understandable language such as C, C++, Java • Often English like language hence easily readable and has specified rules and limited literals called as keyword and variables. • Lexical Analyzer • The code written in high level languages contain literals such as operators, alphabets and special characters. • Lexical analyzer divides the code in to tokens and stores them in to symbol table. • Symbol table is a Hash Table of tokens and contain unique entries of literals. • Eg: int a = 10; - in this example ‘int’, ‘a’, ‘=‘, ‘;’ are the literals
  • 10. Friday, July 6, 2018 10 Compiler Architecture Contd.. • Syntax Analyzer • Each piece of code written in high level language must comply to the rules defined by it. These are called structural rules of the language. • Eg: printf(“Hi, this is a print statement”); int a=10, b=20, c; c = a + b; • Each of these lines have pre-defined syntax. Here for first line it is as function name, followed by open brace and double quote, printable content, closing quotes, closing braces and semicolon. • Schematic Analyzer • Semantic analysis checks whether the parse tree constructed follows the rules of language. • For example, assignment of values is between compatible data types, and adding string to an integer.
  • 11. Friday, July 6, 2018 11 Compiler Architecture Contd.. Fig : Schematic Analysis - A typical schematic diagram for addition of two number = c + a b
  • 12. Friday, July 6, 2018 12 Compiler Architecture Contd.. • Symbol Table Manager • Lexical analyzer generates tokens as a part of lexical analysis of the source code. These tokens needs to be managed and stored. To do so a Hash Dataset is used called as Symbol Table or SymTab • Error Handler • There might be chances of occurring common error such as wrongly typed keyword, missing semicolon, improper function definition, missing return types. All these errors must be reported and resolved prior to code execution. • Error handler produces error messages and notifies users about the same. • Intermediate Code Generator • An Intermediate representation (IR) is the data structure or code used internally by a compiler or virtual machine to represent source code. • An IR may take one of several forms: an in-memory data structure, or a special tuple- or stack-based code readable by the program. In the latter case it is also called an intermediate language.
  • 13. Friday, July 6, 2018 13 Compiler Architecture Contd.. • Intermediate code example High level expression => a = b + c * d; Intermediate code => r1 = c * d; r2 = b + r1; a = r2 • Code Optimizer • Optimization is a program transformation technique, which tries to improve the code by making it consume less resources (i.e. CPU, Memory) and deliver high speed. • The output code must not, in any way, change the meaning of the program. • Optimization should increase the speed of the program and if possible, the program should demand less number of resources. • Optimization should itself be fast and should not delay the overall compiling process.
  • 14. Friday, July 6, 2018 14 Compiler Architecture Contd.. • Example of code optimization do { item = 10; value = value + item; } while(value<100); item = 10; do { value = value + item; } while(value<100); Variable instantiation in each loop iteration – increasing the amount of memory used for execution Variable instantiation in each loop iteration – increasing the amount of memory used for execution
  • 15. Friday, July 6, 2018 15 Compiler Architecture Contd.. • Code Generator • In computing, code generation is the process by which a compiler's code generator converts some intermediate representation of source code into a form (e.g., machine code) that can be readily executed by a machine. • The input to the code generator typically consists of a parse tree or an abstract syntax tree. • The tree is converted into a linear sequence of instructions, usually in an intermediate language such as three-address code. • Major tasks in code generation • Instruction selection: which instructions to use. • Instruction scheduling: in which order to put those instructions. Scheduling is a speed optimization that can have a critical effect on pipelined machines. • Register allocation: the allocation of variables to processor registers • Debug data generation if required so the code can be debugged.
  • 16. Friday, July 6, 2018 16 How compiler works?
  • 17. Friday, July 6, 2018 17 How compiler works?
  • 18. Friday, July 6, 2018 18 Advantages and Application of Compiler over interpreter • The entire program is verified so there are no syntax or semantic errors; • The executable file is optimized by the compiler so it execute faster; • User do not have to execute the program on the same machine it was built. • Parse the program • Check for syntax errors, check for data types • Create internal structure in memory • Verify the program semantic, optimize the structure • Translate the program in other language, generate files on disk • Link the files into an executable
  • 19. Friday, July 6, 2018 19 Conclusions • A compiler translates the code written in one language to some other language without changing the meaning of the program. • It is also expected that a compiler should make the target code efficient and optimized in terms of time and space. • Compiler design principles provide an in-depth view of translation and optimization process. Compiler design covers basic translation mechanism and error detection & recovery. • It includes lexical, syntax, and semantic analysis as front end, and code generation and optimization as back-end.
  • 20. Friday, July 6, 2018 20 References and Details links • Principles of Compiler Design (Addison-Wesley series in computer science and information processing), by Alfred V. Aho and Jeffrey D. Ullman, Aug 1977 • Compilers: Principles, Techniques, and Tools (2nd Edition) Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman Aug 31, 2000 • Principles of Compiler Design, Allman Jeffrey D. Aho Alfred V 1989 • Principles Of Compiler Design. Second Printing, Alfred V. And Ullman, Jeffrey D. Aho, 1984 • The Compiler Design Handbook: Optimizations & Machine Code Generation Y.N. Srikant and Priti Shankar Sep 25, 2002. • https://www.tutorialspoint.com/compiler_design/ • https://en.wikipedia.org/wiki/Compiler • https://en.wikipedia.org/wiki/List_of_compilers • https://en.wikipedia.org/wiki/Java_compiler • https://en.wikibooks.org/wiki/Compiler_Construction