SlideShare a Scribd company logo
1 of 29
SYNTAX ANALYSIS
M. Mahasree,
Assistant Professor,
Dept. of CSE,
SRM IST, Ramapuram
Outline
 Definition - Role of parser
 Lexical versus Syntactic Analysis
 Representative Grammars
 Syntax Error Handling
 Error recovery strategies
 Derivations
2
What is Syntax Analysis?
 Syntax Analysis is a second phase of the compiler design process after lexical
analysis in which the given input string is checked for the confirmation of rules and
structure of the formal grammar.
 Syntax Analyzer or Parser analyses the syntactical structure and checks if the
given input is in the correct syntax of the programming language or not.
 It does so by getting the input from the tokens and building a data structure, called a
Syntax tree or Parse tree.
3
Cont.
Parse Tree
4
Cont.
 The parse tree is constructed by using the pre-defined Grammar of the language and
the input string.
 If the given input string can be produced with the help of the syntax tree, then the
input string is found to be in the correct syntax.
 Otherwise, error is reported by syntax analyzer.
5
Role of the parser
6
Tasks performed by Parser
 The parser helps to apply rules to the code
 Helps to make sure that each opening brace has a corresponding closing balance
 Helps to detect all types of Syntax errors
 Find the position at which error has occurred
 Clear and accurate description of the error
 Recovery from an error to continue and find further errors in the code
 Should not affect compilation of “correct” programs
 The parse must reject invalid texts by reporting syntax errors
7
Types of Parsers
 Three types:
 Universal Parser
 Top-down Parser
 Bottom-up Parser
 Universal Parsers like CYK (Cocke-Younger-Kasami) algorithm and Earley’s
Algorithm can parse any grammar but they are inefficient to use in production
compilers.
 As implied by their names, top-down parsers build parse trees from the top (root) to
the bottom (leaves). Eg. LL parser
 Bottom-up parsers start from the leaves and work their way up to the root. Eg. LR
parser
8
Syntax Error Handling
Types of Errors
1) Lexical
2) Syntactic
3) Semantic
4) Logical
 Lexical errors include misspellings of identiers, keywords, or
operators.
 e.g., the use of an identier elipseSize instead of ellipseSize
 missing quotes around text intended as a string
 Syntactic errors include misplaced semicolons or extra or
missing braces; that is, “{”or “}”
 Example: In C or Java, the appearance of a case statement without
an enclosing switch is a syntactic error
9
Syntax Error Handling
Types of Errors
1) Lexical
2) Syntactic
3) Semantic
4) Logical
 Semantic errors include type mismatches between operators and
operands,
 e.g., the return of a value in a Java method with result type void.
 Logical errors occur when executed code does not produce the
expected result.
 incorrect reasoning on the part of the programmer
 The use in a C program of the assignment operator = instead of the
comparison operator = =
10
Syntax Error Handling
 The error handler in a parser has goals that are simple to state but
challenging to realize:
 Report the presence of errors clearly and accurately.
 Recover from each error quickly enough to detect subsequent errors.
 Add minimal overhead to the processing of correct programs.
11
Error-Recovery Strategies
1. Panic-Mode Recovery
2. Phrase-Level Recovery
3. Error Productions
4. Global Correction
12
Panic-Mode Recovery
 Once an error is found, the parser intends to find designated
set of synchronizing tokens by discarding input symbols one
at a time.
 Synchronizing tokens are delimiters, semicolon or } whose
role in source program is clear.
 When parser finds an error in the statement, it ignores the rest
of the statement by not processing the input.
 Advantage:
 Simplicity
 Never get into infinite loop
 Disadvantage:
 Additional errors cannot be checked as some of the input
symbols will be skipped.
13
Phrase-Level Recovery
 When a parser finds an error, it tries to take corrective
measures so that the rest of inputs of statement allow the
parser to parse ahead. The corrections may be
 Replacing a prefix by some string.
 Replacing comma by semicolon.
 Deleting extraneous semicolon.
 Inserting missing semicolon.
 Advantage:
 It can correct any input string.
 Disadvantage:
 It is difficult to cope up with actual error if it has occurred before the
point of detection.
14
Error Productions
 The use of the error production method can be incorporated if
the user is aware of common mistakes that are encountered in
grammar in conjunction with errors that produce erroneous
constructs.
 Example: write 5x instead of 5*x
 Advantage:
 If this is used then, during parsing appropriate error messages can be
generated and parsing can be continued.
 Disadvantage:
 The disadvantage is that it’s difficult to maintain.
15
Global Correction
 The parser considers the program in hand as a whole and tries
to figure out what the program is intended to do and tries to
find out a closest match for it, which is error-free.
 When an erroneous input statement X is fed, it creates a parse
tree for some closest error-free statement Y.
 Advantage:
 This may allow the parser to make minimal changes in the source
code.
 Disadvantage:
 Due to the complexity (time and space) of this strategy, it has not
been implemented in practice yet.
16
Lexical Vs Syntactic analysis
17
Lexical Vs Syntactic analysis
18
Representative Grammars - CFG
 Context-free grammars are named as such because any of the production
rules in the grammar can be applied regardless of context—it does not
depend on any other symbols that may or may not be around a given symbol
that is having a rule applied to it.
 A context free grammar G is defined by four tuple format as
G = (V, T, P, S)
where,
G − Grammar
V − Set of variables
T − Set of terminals
P − Set of productions
S − Start symbol
19
Context Free Grammar
 Terminals are symbols from which strings are formed.
Lowercase letters, i.e., a, b, c.
Operators, i.e., +,−, ∗.
Punctuation symbols, i.e., comma, parenthesis.
Digits, i.e., 0, 1, 2, · · · ,9.
Boldface letters, i.e., id, if.
 Non-terminals are syntactic variables that denote a set of strings.
Uppercase letters, i.e., A, B, C.
Lowercase italic names, i.e., expr, stmt.
 Start symbol is the head of the production stated first in the grammar.
 Production is of the form LHS → RHS or head → body, where head
contains only one non-terminal and body contains a collection of
terminals and non-terminals.
20
Context Free Grammar
 Example
E → E + T | E − T | T
T → T ∗ F | T / F | F
F → (E) | id
V = {E, T, F}
T = {+ , −, *, /, ( , ), id}
S = {E}
P :
E → E+T T→ T / F
E → E−T T→ F
E →T F→ (E)
T → T∗ F F→ id
21
Derivations
22
Leftmost Derivation
 At each and every step the leftmost non-terminal is expanded by substituting its
corresponding production to derive a string.
E → E + E | E ∗ E | id
23
Rightmost Derivation
 At each and every step the rightmost non-terminal is expanded by substituting its
corresponding production to derive a string.
E → E + E | E ∗ E | id
24
Derivation Examples
 Leftmost
S → SS + | SS ∗ | a
 Rightmost
S → SS + | SS ∗ | a
25
Parse Tree
• Parse tree is a hierarchical structure
which represents the derivation of the
grammar to yield input strings.
• Root node of parse tree has the start
symbol of the given grammar from
where the derivation proceeds.
• Leaves of parse tree represent terminals.
• Each interior node represents
productions of grammar.
• If G : E → E+E | E*E | ( E ) | - E | id is
the grammar, then Parse tree for the
input string - (id + id) is shown.
26
Parse Tree
27
References
 Alfred V Aho, Jeffery D Ullman, Ravi Sethi, "Compilers, Principles
techniques and tools", Pearson Education 2011
 https://www.gatevidyalay.com
 https://electricalvoice.com
28
THANK YOU
29

More Related Content

What's hot

Lexical Analysis
Lexical AnalysisLexical Analysis
Lexical AnalysisMunni28
 
Syntactic analysis in NLP
Syntactic analysis in NLPSyntactic analysis in NLP
Syntactic analysis in NLPkartikaVashisht
 
Three address code In Compiler Design
Three address code In Compiler DesignThree address code In Compiler Design
Three address code In Compiler DesignShine Raj
 
Parsing in Compiler Design
Parsing in Compiler DesignParsing in Compiler Design
Parsing in Compiler DesignAkhil Kaushik
 
Lexical analysis - Compiler Design
Lexical analysis - Compiler DesignLexical analysis - Compiler Design
Lexical analysis - Compiler DesignKuppusamy P
 
Lexical analyzer generator lex
Lexical analyzer generator lexLexical analyzer generator lex
Lexical analyzer generator lexAnusuya123
 
Code generation in Compiler Design
Code generation in Compiler DesignCode generation in Compiler Design
Code generation in Compiler DesignKuppusamy P
 
Lecture 04 syntax analysis
Lecture 04 syntax analysisLecture 04 syntax analysis
Lecture 04 syntax analysisIffat Anjum
 
12-Syntax Directed Definition – Evaluation Order-09-06-2023.ppt
12-Syntax Directed Definition – Evaluation Order-09-06-2023.ppt12-Syntax Directed Definition – Evaluation Order-09-06-2023.ppt
12-Syntax Directed Definition – Evaluation Order-09-06-2023.pptvenkatapranaykumarGa
 
Compiler design syntax analysis
Compiler design syntax analysisCompiler design syntax analysis
Compiler design syntax analysisRicha Sharma
 

What's hot (20)

Lexical Analysis
Lexical AnalysisLexical Analysis
Lexical Analysis
 
Parsing
ParsingParsing
Parsing
 
Syntactic analysis in NLP
Syntactic analysis in NLPSyntactic analysis in NLP
Syntactic analysis in NLP
 
Intermediate code
Intermediate codeIntermediate code
Intermediate code
 
Three address code In Compiler Design
Three address code In Compiler DesignThree address code In Compiler Design
Three address code In Compiler Design
 
Introduction to Compiler design
Introduction to Compiler design Introduction to Compiler design
Introduction to Compiler design
 
Parsing in Compiler Design
Parsing in Compiler DesignParsing in Compiler Design
Parsing in Compiler Design
 
Lexical analysis - Compiler Design
Lexical analysis - Compiler DesignLexical analysis - Compiler Design
Lexical analysis - Compiler Design
 
Lexical analyzer generator lex
Lexical analyzer generator lexLexical analyzer generator lex
Lexical analyzer generator lex
 
Types of Parser
Types of ParserTypes of Parser
Types of Parser
 
Code generation in Compiler Design
Code generation in Compiler DesignCode generation in Compiler Design
Code generation in Compiler Design
 
Lecture 04 syntax analysis
Lecture 04 syntax analysisLecture 04 syntax analysis
Lecture 04 syntax analysis
 
Input-Buffering
Input-BufferingInput-Buffering
Input-Buffering
 
12-Syntax Directed Definition – Evaluation Order-09-06-2023.ppt
12-Syntax Directed Definition – Evaluation Order-09-06-2023.ppt12-Syntax Directed Definition – Evaluation Order-09-06-2023.ppt
12-Syntax Directed Definition – Evaluation Order-09-06-2023.ppt
 
Compiler design syntax analysis
Compiler design syntax analysisCompiler design syntax analysis
Compiler design syntax analysis
 
Code Optimization
Code OptimizationCode Optimization
Code Optimization
 
COMPILER DESIGN- Syntax Directed Translation
COMPILER DESIGN- Syntax Directed TranslationCOMPILER DESIGN- Syntax Directed Translation
COMPILER DESIGN- Syntax Directed Translation
 
Type Checking(Compiler Design) #ShareThisIfYouLike
Type Checking(Compiler Design) #ShareThisIfYouLikeType Checking(Compiler Design) #ShareThisIfYouLike
Type Checking(Compiler Design) #ShareThisIfYouLike
 
Predictive parser
Predictive parserPredictive parser
Predictive parser
 
Context free grammar
Context free grammar Context free grammar
Context free grammar
 

Similar to Syntax Analysis in Compiler Design

8-Practice problems on operator precedence parser-24-05-2023.docx
8-Practice problems on operator precedence parser-24-05-2023.docx8-Practice problems on operator precedence parser-24-05-2023.docx
8-Practice problems on operator precedence parser-24-05-2023.docxvenkatapranaykumarGa
 
Chapter-3 compiler.pptx course materials
Chapter-3 compiler.pptx course materialsChapter-3 compiler.pptx course materials
Chapter-3 compiler.pptx course materialsgadisaAdamu
 
Chapter Three(1)
Chapter Three(1)Chapter Three(1)
Chapter Three(1)bolovv
 
Ch3_Syntax Analysis.pptx
Ch3_Syntax Analysis.pptxCh3_Syntax Analysis.pptx
Ch3_Syntax Analysis.pptxTameneTamire
 
match the following attributes to the parts of a compilerstrips ou.pdf
match the following attributes to the parts of a compilerstrips ou.pdfmatch the following attributes to the parts of a compilerstrips ou.pdf
match the following attributes to the parts of a compilerstrips ou.pdfarpitaeron555
 
The role of the parser and Error recovery strategies ppt in compiler design
The role of the parser and Error recovery strategies ppt in compiler designThe role of the parser and Error recovery strategies ppt in compiler design
The role of the parser and Error recovery strategies ppt in compiler designSadia Akter
 
3a. Context Free Grammar.pdf
3a. Context Free Grammar.pdf3a. Context Free Grammar.pdf
3a. Context Free Grammar.pdfTANZINTANZINA
 
CH 2.pptx
CH 2.pptxCH 2.pptx
CH 2.pptxObsa2
 
role of lexical anaysis
role of lexical anaysisrole of lexical anaysis
role of lexical anaysisSudhaa Ravi
 
Cs6660 compiler design may june 2016 Answer Key
Cs6660 compiler design may june 2016 Answer KeyCs6660 compiler design may june 2016 Answer Key
Cs6660 compiler design may june 2016 Answer Keyappasami
 
Compiler design important questions
Compiler design   important questionsCompiler design   important questions
Compiler design important questionsakila viji
 
Introduction of bison
Introduction of bisonIntroduction of bison
Introduction of bisonvip_du
 
Symbol Table, Error Handler & Code Generation
Symbol Table, Error Handler & Code GenerationSymbol Table, Error Handler & Code Generation
Symbol Table, Error Handler & Code GenerationAkhil Kaushik
 

Similar to Syntax Analysis in Compiler Design (20)

8-Practice problems on operator precedence parser-24-05-2023.docx
8-Practice problems on operator precedence parser-24-05-2023.docx8-Practice problems on operator precedence parser-24-05-2023.docx
8-Practice problems on operator precedence parser-24-05-2023.docx
 
Chapter-3 compiler.pptx course materials
Chapter-3 compiler.pptx course materialsChapter-3 compiler.pptx course materials
Chapter-3 compiler.pptx course materials
 
Pcd question bank
Pcd question bank Pcd question bank
Pcd question bank
 
Syntax analysis
Syntax analysisSyntax analysis
Syntax analysis
 
Chapter Three(1)
Chapter Three(1)Chapter Three(1)
Chapter Three(1)
 
Ch3_Syntax Analysis.pptx
Ch3_Syntax Analysis.pptxCh3_Syntax Analysis.pptx
Ch3_Syntax Analysis.pptx
 
Parsing
ParsingParsing
Parsing
 
Module 11
Module 11Module 11
Module 11
 
match the following attributes to the parts of a compilerstrips ou.pdf
match the following attributes to the parts of a compilerstrips ou.pdfmatch the following attributes to the parts of a compilerstrips ou.pdf
match the following attributes to the parts of a compilerstrips ou.pdf
 
The role of the parser and Error recovery strategies ppt in compiler design
The role of the parser and Error recovery strategies ppt in compiler designThe role of the parser and Error recovery strategies ppt in compiler design
The role of the parser and Error recovery strategies ppt in compiler design
 
3a. Context Free Grammar.pdf
3a. Context Free Grammar.pdf3a. Context Free Grammar.pdf
3a. Context Free Grammar.pdf
 
chapter4 end.pptx
chapter4 end.pptxchapter4 end.pptx
chapter4 end.pptx
 
CH 2.pptx
CH 2.pptxCH 2.pptx
CH 2.pptx
 
role of lexical anaysis
role of lexical anaysisrole of lexical anaysis
role of lexical anaysis
 
Cs6660 compiler design may june 2016 Answer Key
Cs6660 compiler design may june 2016 Answer KeyCs6660 compiler design may june 2016 Answer Key
Cs6660 compiler design may june 2016 Answer Key
 
Compiler design important questions
Compiler design   important questionsCompiler design   important questions
Compiler design important questions
 
Introduction of bison
Introduction of bisonIntroduction of bison
Introduction of bison
 
Parser
ParserParser
Parser
 
Compiler Design
Compiler DesignCompiler Design
Compiler Design
 
Symbol Table, Error Handler & Code Generation
Symbol Table, Error Handler & Code GenerationSymbol Table, Error Handler & Code Generation
Symbol Table, Error Handler & Code Generation
 

Recently uploaded

HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2RajaP95
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and usesDevarapalliHaritha
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineeringmalavadedarshan25
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learningmisbanausheenparvam
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLDeelipZope
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝soniya singh
 

Recently uploaded (20)

HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and uses
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineering
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learning
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCL
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
 

Syntax Analysis in Compiler Design

  • 1. SYNTAX ANALYSIS M. Mahasree, Assistant Professor, Dept. of CSE, SRM IST, Ramapuram
  • 2. Outline  Definition - Role of parser  Lexical versus Syntactic Analysis  Representative Grammars  Syntax Error Handling  Error recovery strategies  Derivations 2
  • 3. What is Syntax Analysis?  Syntax Analysis is a second phase of the compiler design process after lexical analysis in which the given input string is checked for the confirmation of rules and structure of the formal grammar.  Syntax Analyzer or Parser analyses the syntactical structure and checks if the given input is in the correct syntax of the programming language or not.  It does so by getting the input from the tokens and building a data structure, called a Syntax tree or Parse tree. 3
  • 5. Cont.  The parse tree is constructed by using the pre-defined Grammar of the language and the input string.  If the given input string can be produced with the help of the syntax tree, then the input string is found to be in the correct syntax.  Otherwise, error is reported by syntax analyzer. 5
  • 6. Role of the parser 6
  • 7. Tasks performed by Parser  The parser helps to apply rules to the code  Helps to make sure that each opening brace has a corresponding closing balance  Helps to detect all types of Syntax errors  Find the position at which error has occurred  Clear and accurate description of the error  Recovery from an error to continue and find further errors in the code  Should not affect compilation of “correct” programs  The parse must reject invalid texts by reporting syntax errors 7
  • 8. Types of Parsers  Three types:  Universal Parser  Top-down Parser  Bottom-up Parser  Universal Parsers like CYK (Cocke-Younger-Kasami) algorithm and Earley’s Algorithm can parse any grammar but they are inefficient to use in production compilers.  As implied by their names, top-down parsers build parse trees from the top (root) to the bottom (leaves). Eg. LL parser  Bottom-up parsers start from the leaves and work their way up to the root. Eg. LR parser 8
  • 9. Syntax Error Handling Types of Errors 1) Lexical 2) Syntactic 3) Semantic 4) Logical  Lexical errors include misspellings of identiers, keywords, or operators.  e.g., the use of an identier elipseSize instead of ellipseSize  missing quotes around text intended as a string  Syntactic errors include misplaced semicolons or extra or missing braces; that is, “{”or “}”  Example: In C or Java, the appearance of a case statement without an enclosing switch is a syntactic error 9
  • 10. Syntax Error Handling Types of Errors 1) Lexical 2) Syntactic 3) Semantic 4) Logical  Semantic errors include type mismatches between operators and operands,  e.g., the return of a value in a Java method with result type void.  Logical errors occur when executed code does not produce the expected result.  incorrect reasoning on the part of the programmer  The use in a C program of the assignment operator = instead of the comparison operator = = 10
  • 11. Syntax Error Handling  The error handler in a parser has goals that are simple to state but challenging to realize:  Report the presence of errors clearly and accurately.  Recover from each error quickly enough to detect subsequent errors.  Add minimal overhead to the processing of correct programs. 11
  • 12. Error-Recovery Strategies 1. Panic-Mode Recovery 2. Phrase-Level Recovery 3. Error Productions 4. Global Correction 12
  • 13. Panic-Mode Recovery  Once an error is found, the parser intends to find designated set of synchronizing tokens by discarding input symbols one at a time.  Synchronizing tokens are delimiters, semicolon or } whose role in source program is clear.  When parser finds an error in the statement, it ignores the rest of the statement by not processing the input.  Advantage:  Simplicity  Never get into infinite loop  Disadvantage:  Additional errors cannot be checked as some of the input symbols will be skipped. 13
  • 14. Phrase-Level Recovery  When a parser finds an error, it tries to take corrective measures so that the rest of inputs of statement allow the parser to parse ahead. The corrections may be  Replacing a prefix by some string.  Replacing comma by semicolon.  Deleting extraneous semicolon.  Inserting missing semicolon.  Advantage:  It can correct any input string.  Disadvantage:  It is difficult to cope up with actual error if it has occurred before the point of detection. 14
  • 15. Error Productions  The use of the error production method can be incorporated if the user is aware of common mistakes that are encountered in grammar in conjunction with errors that produce erroneous constructs.  Example: write 5x instead of 5*x  Advantage:  If this is used then, during parsing appropriate error messages can be generated and parsing can be continued.  Disadvantage:  The disadvantage is that it’s difficult to maintain. 15
  • 16. Global Correction  The parser considers the program in hand as a whole and tries to figure out what the program is intended to do and tries to find out a closest match for it, which is error-free.  When an erroneous input statement X is fed, it creates a parse tree for some closest error-free statement Y.  Advantage:  This may allow the parser to make minimal changes in the source code.  Disadvantage:  Due to the complexity (time and space) of this strategy, it has not been implemented in practice yet. 16
  • 17. Lexical Vs Syntactic analysis 17
  • 18. Lexical Vs Syntactic analysis 18
  • 19. Representative Grammars - CFG  Context-free grammars are named as such because any of the production rules in the grammar can be applied regardless of context—it does not depend on any other symbols that may or may not be around a given symbol that is having a rule applied to it.  A context free grammar G is defined by four tuple format as G = (V, T, P, S) where, G − Grammar V − Set of variables T − Set of terminals P − Set of productions S − Start symbol 19
  • 20. Context Free Grammar  Terminals are symbols from which strings are formed. Lowercase letters, i.e., a, b, c. Operators, i.e., +,−, ∗. Punctuation symbols, i.e., comma, parenthesis. Digits, i.e., 0, 1, 2, · · · ,9. Boldface letters, i.e., id, if.  Non-terminals are syntactic variables that denote a set of strings. Uppercase letters, i.e., A, B, C. Lowercase italic names, i.e., expr, stmt.  Start symbol is the head of the production stated first in the grammar.  Production is of the form LHS → RHS or head → body, where head contains only one non-terminal and body contains a collection of terminals and non-terminals. 20
  • 21. Context Free Grammar  Example E → E + T | E − T | T T → T ∗ F | T / F | F F → (E) | id V = {E, T, F} T = {+ , −, *, /, ( , ), id} S = {E} P : E → E+T T→ T / F E → E−T T→ F E →T F→ (E) T → T∗ F F→ id 21
  • 23. Leftmost Derivation  At each and every step the leftmost non-terminal is expanded by substituting its corresponding production to derive a string. E → E + E | E ∗ E | id 23
  • 24. Rightmost Derivation  At each and every step the rightmost non-terminal is expanded by substituting its corresponding production to derive a string. E → E + E | E ∗ E | id 24
  • 25. Derivation Examples  Leftmost S → SS + | SS ∗ | a  Rightmost S → SS + | SS ∗ | a 25
  • 26. Parse Tree • Parse tree is a hierarchical structure which represents the derivation of the grammar to yield input strings. • Root node of parse tree has the start symbol of the given grammar from where the derivation proceeds. • Leaves of parse tree represent terminals. • Each interior node represents productions of grammar. • If G : E → E+E | E*E | ( E ) | - E | id is the grammar, then Parse tree for the input string - (id + id) is shown. 26
  • 28. References  Alfred V Aho, Jeffery D Ullman, Ravi Sethi, "Compilers, Principles techniques and tools", Pearson Education 2011  https://www.gatevidyalay.com  https://electricalvoice.com 28