SlideShare uma empresa Scribd logo
1 de 34
COMPILER DESIGN
Myself Archana R
Assistant Professor In
Department Of Computer Science
SACWC.
I am here because I love to give
presentations.
IMPLEMENTATION OF LEXICAL ANALYZER
IMPLEMENTATION OF LEXICAL ANALYZER
Outline
• Specifying lexical structure using regular
expressions
• Finite automata
–Deterministic Finite Automata (DFAs)
–Non-deterministic Finite Automata (NFAs)
• Implementation of regular expressions
Reg Exp NFA DFA Tables
Notation
• For convenience, we use a variation (allow user- defined abbreviations)
in regular expression notation.
• Union: A + B  A | B
• Option: A +   A?
• Range: ‘a’+’b’+…+’z’  [a-z]
• Excluded range:
complement of [a-
z]
 [^a-z]
Regular Expressions in Lexical Specification
• Last lecture: a specification for the predicate,
s  L(R)
• But a yes/no answer is not enough !
• Instead: partition the input into tokens.
• We will adapt regular expressions to this goal.
Regular Expressions  Lexical Spec. (1)
1. Select a set of tokens
• Integer, Keyword, Identifier, OpenPar, ...
2. Write a regular expression (pattern) for the lexemes of
each token
• Integer = digit +
• Keyword = ‘if’ + ‘else’ + …
• Identifier = letter (letter + digit)*
• OpenPar = ‘(‘
• …
Regular Expressions  Lexical Spec. (2)
3. Construct R, matching all lexemes for all tokens
R = Keyword + Identifier + Integer + …
= R1 + R2 + R3 + …
Facts: If s  L(R) then s is a lexeme
– Furthermore s  L(Ri) for some “i”
– This “i” determines the token that is reported
Regular Expressions  Lexical Spec. (3)
4. Let input be x1…xn
• (x1 ... xn arecharacters)
• For 1  i  n check
x1…xi  L(R) ?
5. It must be thatt
x1…xi  L(Rj) for some j
(if there is a choice, pick a smallest such j)
6. Remove x1…xi from input and go to previous step
How to Handle Spaces and Comments?
1. We could create a token Whitespace
Whitespace = (‘ ’ + ‘n’ + ‘t’)+
– We could also add comments in there
– An input “ tn 5555 “ is transformed into Whitespace Integer Whitespace
2. Lexer skips spaces (preferred)
• Modify step 5 from before as follows:
It must be that xk ... xi L(Rj) for some j such that x1 ... xk-1 L(Whitespace)
• Parser is not bothered with spaces
Ambiguities (1)
• There are ambiguities in the algorithm
• How much input is used? What if
• x1…xi  L(R) and also
• x1…xK  L(R)
–Rule: Pick the longest possible substring
–The “maximal munch”
Ambiguities (2)
• Which token is used? What if
• x1…xi  L(Rj) and also
• x1…xi  L(Rk)
– Rule: use rule listed first (j if j < k)
• Example:
–R1 = Keyword and R2 = Identifier
–“if” matches both
–Treats “if” as a keyword not an identifier
Error Handling
• What if
No rule matches a prefix of input ?
• Problem: Can’t just get stuck …
• Solution:
–Write a rule matching all “bad” strings
–Put it last
• Lexer tools allow the writing of:
R = R1 + ... + Rn +Error
–Token Error matches if nothing else matches
Regular Languages & FiniteAutomata
Basic formal language theory result:
Regular expressions and finite automata both define the class of regular languages.
Thus, we are going to use:
• Regular expressions for specification
• Finite automata for implementation (automatic generation of lexical analyzers)
FiniteAutomata
• A finite automaton is a recognizer for the strings of a regular language
A finite automaton consists of
–A finite input alphabet 
–A set of states S
–A start state n
–A set of accepting states F  S
–A set of transitions state  input state
• Transition
s1 a s2
• Is read
In state s1 on input “a” go to states2
• If end of input (or no transition possible)
–If in accepting state  accept
–Otherwise  reject
Finite Automata State Graphs
• A state
a
• The start state
• An accepting state
• A transition
A Simple Example
• A finite automaton that accepts only “1”
1
Another Simple Example
• A finite automaton accepting any number of 1’s
followed by a single 0
• Alphabet: {0,1}
1
0
And Another Example
• Alphabet {0,1}
• What language does this recognize?
1
1
1
0
0 0
• Alphabet still { 0, 1 }
1
1
• The operation of the automaton is not completely
defined by the input
– On input “11” the automaton could be in either state
Epsilon Moves
• Another kind of transition: -moves

A B
• Machine can move from state A to state B without
reading input
Deterministic and Non-Deterministic Automata
• Deterministic Finite Automata (DFA)
–One transition per input per state
–No - moves
• Non-deterministic Finite Automata (NFA)
–Can have multiple transitions for one input in a given state
–Can have - moves
• Finite automata have finite memory
–Enough to only encode the current state
Execution of FiniteAutomata
• A DFA can take only one path through the state graph
– Completely determined by input
• NFAs can choose
–Whether to make  -moves
–Which of multiple transitions for a single input to take.
Acceptance of NFAs
• An NFA can get into multiple states
1
0
0
1
• Input: 1 0
1
• Rule: NFA accepts an input if it can get in a final state
NFA vs. DFA (1)
• NFAs and DFAs recognize the same set of languages
(regular languages)
• DFAs are easier to implement
– There are no choices to consider
NFA vs. DFA (2)
• For a given language the NFA can be simpler than the DFA
NF
A
1
0
0
0
DF
A
0
1
1
1
0 0
• DFA can be exponentially larger than NFA
Regular Expressions to FiniteAutomata
• High-level sketch
NFA
Regular expressions DFA
Lexical Specification Table-driven Implementation of
DFA
Regular Expressions to NFA(1)
• For each kind of reg. expr, define an NFA
– Notation: NFA for regular expression M
• For 
• For input a
M

a
Regular Expressions to NFA(2)
• ForAB
A B

• For A + B
A
B




Regular Expressions to NFA(3)
• ForA*
A



The Trick of NFA to DFA
• Simulate the NFA
• Each state of DFA
= a non-empty subset of states of the NFA
• Start state
= the set of NFA states reachable through  -moves from NFA start state
• Add a transition S  a S’ to DFA iff
–S’ is the set of NFA states reachable from any state in S after seeing the input a
•considering  -moves as well
IMPLEMENTATION
• A DFA can be implemented by a 2D table T
–One dimension is “states”
–Other dimension is “input symbols”
–For every transition Si  a Sk define T[i,a] =k
• DFA “execution”
–If in state Si and input a, read T[i,a] = k and skip to state Sk
–Very efficient
Table Implementation of a DFA
S
U
0
1
1
0 1
T
0 1
S T U
T T U
U T U
Implementation (Cont.)
• NFA → DFA conversion is at the heart of tools such
as lex, ML-Lex or flex.
• But, DFAs can be huge.
• In practice, lex/ML-Lex/flex-like tools trade off
speed for space in the choice of NFA and DFA
representations.
DFA and Lexer
Two differences:
• DFAs recognize lexemes. A lexer must return a type of acceptance (token
type) rather than simply an accept/reject indication.
• DFAs consume the complete string and accept or reject it. A lexer must
find the end of the lexeme in the input stream and then find the next one,
etc.
THANK YOU

Mais conteúdo relacionado

Mais procurados

Logics for non monotonic reasoning-ai
Logics for non monotonic reasoning-aiLogics for non monotonic reasoning-ai
Logics for non monotonic reasoning-aiShaishavShah8
 
NLP_KASHK:Finite-State Morphological Parsing
NLP_KASHK:Finite-State Morphological ParsingNLP_KASHK:Finite-State Morphological Parsing
NLP_KASHK:Finite-State Morphological ParsingHemantha Kulathilake
 
Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)swapnac12
 
I. AO* SEARCH ALGORITHM
I. AO* SEARCH ALGORITHMI. AO* SEARCH ALGORITHM
I. AO* SEARCH ALGORITHMvikas dhakane
 
Local search algorithm
Local search algorithmLocal search algorithm
Local search algorithmMegha Sharma
 
Issues in knowledge representation
Issues in knowledge representationIssues in knowledge representation
Issues in knowledge representationSravanthi Emani
 
Finite automata-for-lexical-analysis
Finite automata-for-lexical-analysisFinite automata-for-lexical-analysis
Finite automata-for-lexical-analysisDattatray Gandhmal
 
Lecture 02 lexical analysis
Lecture 02 lexical analysisLecture 02 lexical analysis
Lecture 02 lexical analysisIffat Anjum
 
Intermediate code generation in Compiler Design
Intermediate code generation in Compiler DesignIntermediate code generation in Compiler Design
Intermediate code generation in Compiler DesignKuppusamy P
 
Artificial Intelligence -- Search Algorithms
Artificial Intelligence-- Search Algorithms Artificial Intelligence-- Search Algorithms
Artificial Intelligence -- Search Algorithms Syed Ahmed
 
LR(1) and SLR(1) parsing
LR(1) and SLR(1) parsingLR(1) and SLR(1) parsing
LR(1) and SLR(1) parsingR Islam
 
Language for specifying lexical Analyzer
Language for specifying lexical AnalyzerLanguage for specifying lexical Analyzer
Language for specifying lexical AnalyzerArchana Gopinath
 
ProLog (Artificial Intelligence) Introduction
ProLog (Artificial Intelligence) IntroductionProLog (Artificial Intelligence) Introduction
ProLog (Artificial Intelligence) Introductionwahab khan
 
Adversarial search
Adversarial searchAdversarial search
Adversarial searchNilu Desai
 

Mais procurados (20)

Parsing
ParsingParsing
Parsing
 
Logics for non monotonic reasoning-ai
Logics for non monotonic reasoning-aiLogics for non monotonic reasoning-ai
Logics for non monotonic reasoning-ai
 
NLP_KASHK:Finite-State Morphological Parsing
NLP_KASHK:Finite-State Morphological ParsingNLP_KASHK:Finite-State Morphological Parsing
NLP_KASHK:Finite-State Morphological Parsing
 
Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)
 
COMPILER DESIGN
COMPILER DESIGNCOMPILER DESIGN
COMPILER DESIGN
 
I. AO* SEARCH ALGORITHM
I. AO* SEARCH ALGORITHMI. AO* SEARCH ALGORITHM
I. AO* SEARCH ALGORITHM
 
Input-Buffering
Input-BufferingInput-Buffering
Input-Buffering
 
Local search algorithm
Local search algorithmLocal search algorithm
Local search algorithm
 
Type Checking(Compiler Design) #ShareThisIfYouLike
Type Checking(Compiler Design) #ShareThisIfYouLikeType Checking(Compiler Design) #ShareThisIfYouLike
Type Checking(Compiler Design) #ShareThisIfYouLike
 
Issues in knowledge representation
Issues in knowledge representationIssues in knowledge representation
Issues in knowledge representation
 
Finite automata-for-lexical-analysis
Finite automata-for-lexical-analysisFinite automata-for-lexical-analysis
Finite automata-for-lexical-analysis
 
Lecture 02 lexical analysis
Lecture 02 lexical analysisLecture 02 lexical analysis
Lecture 02 lexical analysis
 
Intermediate code generation in Compiler Design
Intermediate code generation in Compiler DesignIntermediate code generation in Compiler Design
Intermediate code generation in Compiler Design
 
Artificial Intelligence -- Search Algorithms
Artificial Intelligence-- Search Algorithms Artificial Intelligence-- Search Algorithms
Artificial Intelligence -- Search Algorithms
 
LR(1) and SLR(1) parsing
LR(1) and SLR(1) parsingLR(1) and SLR(1) parsing
LR(1) and SLR(1) parsing
 
Language for specifying lexical Analyzer
Language for specifying lexical AnalyzerLanguage for specifying lexical Analyzer
Language for specifying lexical Analyzer
 
Phases of Compiler
Phases of CompilerPhases of Compiler
Phases of Compiler
 
ProLog (Artificial Intelligence) Introduction
ProLog (Artificial Intelligence) IntroductionProLog (Artificial Intelligence) Introduction
ProLog (Artificial Intelligence) Introduction
 
Specification-of-tokens
Specification-of-tokensSpecification-of-tokens
Specification-of-tokens
 
Adversarial search
Adversarial searchAdversarial search
Adversarial search
 

Semelhante a Implementation of lexical analyser

Regular Expression to Finite Automata
Regular Expression to Finite AutomataRegular Expression to Finite Automata
Regular Expression to Finite AutomataArchana Gopinath
 
Introduction to the theory of computation
Introduction to the theory of computationIntroduction to the theory of computation
Introduction to the theory of computationprasadmvreddy
 
Automata_Theory_and_compiler_design_UNIT-1.pptx.pdf
Automata_Theory_and_compiler_design_UNIT-1.pptx.pdfAutomata_Theory_and_compiler_design_UNIT-1.pptx.pdf
Automata_Theory_and_compiler_design_UNIT-1.pptx.pdfTONY562
 
02. chapter 3 lexical analysis
02. chapter 3   lexical analysis02. chapter 3   lexical analysis
02. chapter 3 lexical analysisraosir123
 
Lecture 1 - Lexical Analysis.ppt
Lecture 1 - Lexical Analysis.pptLecture 1 - Lexical Analysis.ppt
Lecture 1 - Lexical Analysis.pptNderituGichuki1
 
Nondeterministic Finite Automata
Nondeterministic Finite Automata Nondeterministic Finite Automata
Nondeterministic Finite Automata parmeet834
 
Lexical analysis, syntax analysis, semantic analysis. Ppt
Lexical analysis, syntax analysis, semantic analysis. PptLexical analysis, syntax analysis, semantic analysis. Ppt
Lexical analysis, syntax analysis, semantic analysis. Pptovidlivi91
 
Lexical Analyzer Implementation
Lexical Analyzer ImplementationLexical Analyzer Implementation
Lexical Analyzer ImplementationAkhil Kaushik
 
Unitiv 111206005201-phpapp01
Unitiv 111206005201-phpapp01Unitiv 111206005201-phpapp01
Unitiv 111206005201-phpapp01riddhi viradiya
 

Semelhante a Implementation of lexical analyser (20)

Regular Expression to Finite Automata
Regular Expression to Finite AutomataRegular Expression to Finite Automata
Regular Expression to Finite Automata
 
SS UI Lecture 5
SS UI Lecture 5SS UI Lecture 5
SS UI Lecture 5
 
Lexicalanalyzer
LexicalanalyzerLexicalanalyzer
Lexicalanalyzer
 
Lexicalanalyzer
LexicalanalyzerLexicalanalyzer
Lexicalanalyzer
 
2_4 Finite Automata.ppt
2_4 Finite Automata.ppt2_4 Finite Automata.ppt
2_4 Finite Automata.ppt
 
Introduction to the theory of computation
Introduction to the theory of computationIntroduction to the theory of computation
Introduction to the theory of computation
 
Ch3.ppt
Ch3.pptCh3.ppt
Ch3.ppt
 
Automata_Theory_and_compiler_design_UNIT-1.pptx.pdf
Automata_Theory_and_compiler_design_UNIT-1.pptx.pdfAutomata_Theory_and_compiler_design_UNIT-1.pptx.pdf
Automata_Theory_and_compiler_design_UNIT-1.pptx.pdf
 
02. chapter 3 lexical analysis
02. chapter 3   lexical analysis02. chapter 3   lexical analysis
02. chapter 3 lexical analysis
 
Unit2 Toc.pptx
Unit2 Toc.pptxUnit2 Toc.pptx
Unit2 Toc.pptx
 
Lexical
LexicalLexical
Lexical
 
SS UI Lecture 6
SS UI Lecture 6SS UI Lecture 6
SS UI Lecture 6
 
Lecture 1 - Lexical Analysis.ppt
Lecture 1 - Lexical Analysis.pptLecture 1 - Lexical Analysis.ppt
Lecture 1 - Lexical Analysis.ppt
 
Nondeterministic Finite Automata
Nondeterministic Finite Automata Nondeterministic Finite Automata
Nondeterministic Finite Automata
 
Lexical analysis, syntax analysis, semantic analysis. Ppt
Lexical analysis, syntax analysis, semantic analysis. PptLexical analysis, syntax analysis, semantic analysis. Ppt
Lexical analysis, syntax analysis, semantic analysis. Ppt
 
Optimization of dfa
Optimization of dfaOptimization of dfa
Optimization of dfa
 
TOC Introduction
TOC Introduction TOC Introduction
TOC Introduction
 
Lecture4 lexical analysis2
Lecture4 lexical analysis2Lecture4 lexical analysis2
Lecture4 lexical analysis2
 
Lexical Analyzer Implementation
Lexical Analyzer ImplementationLexical Analyzer Implementation
Lexical Analyzer Implementation
 
Unitiv 111206005201-phpapp01
Unitiv 111206005201-phpapp01Unitiv 111206005201-phpapp01
Unitiv 111206005201-phpapp01
 

Mais de Archana Gopinath

Data Transfer & Manipulation.pptx
Data Transfer & Manipulation.pptxData Transfer & Manipulation.pptx
Data Transfer & Manipulation.pptxArchana Gopinath
 
DP _ CO Instruction Format.pptx
DP _ CO Instruction Format.pptxDP _ CO Instruction Format.pptx
DP _ CO Instruction Format.pptxArchana Gopinath
 
A simple approach of lexical analyzers
A simple approach of lexical analyzersA simple approach of lexical analyzers
A simple approach of lexical analyzersArchana Gopinath
 
A Role of Lexical Analyzer
A Role of Lexical AnalyzerA Role of Lexical Analyzer
A Role of Lexical AnalyzerArchana Gopinath
 
minimization the number of states of DFA
minimization the number of states of DFAminimization the number of states of DFA
minimization the number of states of DFAArchana Gopinath
 
Fundamentals of big data analytics and Hadoop
Fundamentals of big data analytics and HadoopFundamentals of big data analytics and Hadoop
Fundamentals of big data analytics and HadoopArchana Gopinath
 
Map reduce in Hadoop BIG DATA ANALYTICS
Map reduce in Hadoop BIG DATA ANALYTICSMap reduce in Hadoop BIG DATA ANALYTICS
Map reduce in Hadoop BIG DATA ANALYTICSArchana Gopinath
 
Programming with R in Big Data Analytics
Programming with R in Big Data AnalyticsProgramming with R in Big Data Analytics
Programming with R in Big Data AnalyticsArchana Gopinath
 
If statements in c programming
If statements in c programmingIf statements in c programming
If statements in c programmingArchana Gopinath
 
Guided media Transmission Media
Guided media Transmission MediaGuided media Transmission Media
Guided media Transmission MediaArchana Gopinath
 

Mais de Archana Gopinath (16)

Data Transfer & Manipulation.pptx
Data Transfer & Manipulation.pptxData Transfer & Manipulation.pptx
Data Transfer & Manipulation.pptx
 
DP _ CO Instruction Format.pptx
DP _ CO Instruction Format.pptxDP _ CO Instruction Format.pptx
DP _ CO Instruction Format.pptx
 
A simple approach of lexical analyzers
A simple approach of lexical analyzersA simple approach of lexical analyzers
A simple approach of lexical analyzers
 
A Role of Lexical Analyzer
A Role of Lexical AnalyzerA Role of Lexical Analyzer
A Role of Lexical Analyzer
 
minimization the number of states of DFA
minimization the number of states of DFAminimization the number of states of DFA
minimization the number of states of DFA
 
Fundamentals of big data analytics and Hadoop
Fundamentals of big data analytics and HadoopFundamentals of big data analytics and Hadoop
Fundamentals of big data analytics and Hadoop
 
Map reduce in Hadoop BIG DATA ANALYTICS
Map reduce in Hadoop BIG DATA ANALYTICSMap reduce in Hadoop BIG DATA ANALYTICS
Map reduce in Hadoop BIG DATA ANALYTICS
 
Business intelligence
Business intelligenceBusiness intelligence
Business intelligence
 
Hadoop
HadoopHadoop
Hadoop
 
Programming with R in Big Data Analytics
Programming with R in Big Data AnalyticsProgramming with R in Big Data Analytics
Programming with R in Big Data Analytics
 
If statements in c programming
If statements in c programmingIf statements in c programming
If statements in c programming
 
un Guided media
un Guided mediaun Guided media
un Guided media
 
Guided media Transmission Media
Guided media Transmission MediaGuided media Transmission Media
Guided media Transmission Media
 
Main Memory RAM and ROM
Main Memory RAM and ROMMain Memory RAM and ROM
Main Memory RAM and ROM
 
Java thread life cycle
Java thread life cycleJava thread life cycle
Java thread life cycle
 
PCSTt11 overview of java
PCSTt11 overview of javaPCSTt11 overview of java
PCSTt11 overview of java
 

Último

PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docxPoojaSen20
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxVishalSingh1417
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxnegromaestrong
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingTeacherCyreneCayanan
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Shubhangi Sonawane
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxVishalSingh1417
 

Último (20)

PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 

Implementation of lexical analyser

  • 1. COMPILER DESIGN Myself Archana R Assistant Professor In Department Of Computer Science SACWC. I am here because I love to give presentations. IMPLEMENTATION OF LEXICAL ANALYZER
  • 3. Outline • Specifying lexical structure using regular expressions • Finite automata –Deterministic Finite Automata (DFAs) –Non-deterministic Finite Automata (NFAs) • Implementation of regular expressions Reg Exp NFA DFA Tables
  • 4. Notation • For convenience, we use a variation (allow user- defined abbreviations) in regular expression notation. • Union: A + B  A | B • Option: A +   A? • Range: ‘a’+’b’+…+’z’  [a-z] • Excluded range: complement of [a- z]  [^a-z]
  • 5. Regular Expressions in Lexical Specification • Last lecture: a specification for the predicate, s  L(R) • But a yes/no answer is not enough ! • Instead: partition the input into tokens. • We will adapt regular expressions to this goal.
  • 6. Regular Expressions  Lexical Spec. (1) 1. Select a set of tokens • Integer, Keyword, Identifier, OpenPar, ... 2. Write a regular expression (pattern) for the lexemes of each token • Integer = digit + • Keyword = ‘if’ + ‘else’ + … • Identifier = letter (letter + digit)* • OpenPar = ‘(‘ • …
  • 7. Regular Expressions  Lexical Spec. (2) 3. Construct R, matching all lexemes for all tokens R = Keyword + Identifier + Integer + … = R1 + R2 + R3 + … Facts: If s  L(R) then s is a lexeme – Furthermore s  L(Ri) for some “i” – This “i” determines the token that is reported
  • 8. Regular Expressions  Lexical Spec. (3) 4. Let input be x1…xn • (x1 ... xn arecharacters) • For 1  i  n check x1…xi  L(R) ? 5. It must be thatt x1…xi  L(Rj) for some j (if there is a choice, pick a smallest such j) 6. Remove x1…xi from input and go to previous step
  • 9. How to Handle Spaces and Comments? 1. We could create a token Whitespace Whitespace = (‘ ’ + ‘n’ + ‘t’)+ – We could also add comments in there – An input “ tn 5555 “ is transformed into Whitespace Integer Whitespace 2. Lexer skips spaces (preferred) • Modify step 5 from before as follows: It must be that xk ... xi L(Rj) for some j such that x1 ... xk-1 L(Whitespace) • Parser is not bothered with spaces
  • 10. Ambiguities (1) • There are ambiguities in the algorithm • How much input is used? What if • x1…xi  L(R) and also • x1…xK  L(R) –Rule: Pick the longest possible substring –The “maximal munch”
  • 11. Ambiguities (2) • Which token is used? What if • x1…xi  L(Rj) and also • x1…xi  L(Rk) – Rule: use rule listed first (j if j < k) • Example: –R1 = Keyword and R2 = Identifier –“if” matches both –Treats “if” as a keyword not an identifier
  • 12. Error Handling • What if No rule matches a prefix of input ? • Problem: Can’t just get stuck … • Solution: –Write a rule matching all “bad” strings –Put it last • Lexer tools allow the writing of: R = R1 + ... + Rn +Error –Token Error matches if nothing else matches
  • 13. Regular Languages & FiniteAutomata Basic formal language theory result: Regular expressions and finite automata both define the class of regular languages. Thus, we are going to use: • Regular expressions for specification • Finite automata for implementation (automatic generation of lexical analyzers)
  • 14. FiniteAutomata • A finite automaton is a recognizer for the strings of a regular language A finite automaton consists of –A finite input alphabet  –A set of states S –A start state n –A set of accepting states F  S –A set of transitions state  input state
  • 15. • Transition s1 a s2 • Is read In state s1 on input “a” go to states2 • If end of input (or no transition possible) –If in accepting state  accept –Otherwise  reject
  • 16. Finite Automata State Graphs • A state a • The start state • An accepting state • A transition
  • 17. A Simple Example • A finite automaton that accepts only “1” 1 Another Simple Example • A finite automaton accepting any number of 1’s followed by a single 0 • Alphabet: {0,1} 1 0
  • 18. And Another Example • Alphabet {0,1} • What language does this recognize? 1 1 1 0 0 0 • Alphabet still { 0, 1 } 1 1 • The operation of the automaton is not completely defined by the input – On input “11” the automaton could be in either state
  • 19. Epsilon Moves • Another kind of transition: -moves  A B • Machine can move from state A to state B without reading input
  • 20. Deterministic and Non-Deterministic Automata • Deterministic Finite Automata (DFA) –One transition per input per state –No - moves • Non-deterministic Finite Automata (NFA) –Can have multiple transitions for one input in a given state –Can have - moves • Finite automata have finite memory –Enough to only encode the current state
  • 21. Execution of FiniteAutomata • A DFA can take only one path through the state graph – Completely determined by input • NFAs can choose –Whether to make  -moves –Which of multiple transitions for a single input to take.
  • 22. Acceptance of NFAs • An NFA can get into multiple states 1 0 0 1 • Input: 1 0 1 • Rule: NFA accepts an input if it can get in a final state
  • 23. NFA vs. DFA (1) • NFAs and DFAs recognize the same set of languages (regular languages) • DFAs are easier to implement – There are no choices to consider
  • 24. NFA vs. DFA (2) • For a given language the NFA can be simpler than the DFA NF A 1 0 0 0 DF A 0 1 1 1 0 0 • DFA can be exponentially larger than NFA
  • 25. Regular Expressions to FiniteAutomata • High-level sketch NFA Regular expressions DFA Lexical Specification Table-driven Implementation of DFA
  • 26. Regular Expressions to NFA(1) • For each kind of reg. expr, define an NFA – Notation: NFA for regular expression M • For  • For input a M  a
  • 27. Regular Expressions to NFA(2) • ForAB A B  • For A + B A B    
  • 28. Regular Expressions to NFA(3) • ForA* A   
  • 29. The Trick of NFA to DFA • Simulate the NFA • Each state of DFA = a non-empty subset of states of the NFA • Start state = the set of NFA states reachable through  -moves from NFA start state • Add a transition S  a S’ to DFA iff –S’ is the set of NFA states reachable from any state in S after seeing the input a •considering  -moves as well
  • 30. IMPLEMENTATION • A DFA can be implemented by a 2D table T –One dimension is “states” –Other dimension is “input symbols” –For every transition Si  a Sk define T[i,a] =k • DFA “execution” –If in state Si and input a, read T[i,a] = k and skip to state Sk –Very efficient
  • 31. Table Implementation of a DFA S U 0 1 1 0 1 T 0 1 S T U T T U U T U
  • 32. Implementation (Cont.) • NFA → DFA conversion is at the heart of tools such as lex, ML-Lex or flex. • But, DFAs can be huge. • In practice, lex/ML-Lex/flex-like tools trade off speed for space in the choice of NFA and DFA representations.
  • 33. DFA and Lexer Two differences: • DFAs recognize lexemes. A lexer must return a type of acceptance (token type) rather than simply an accept/reject indication. • DFAs consume the complete string and accept or reject it. A lexer must find the end of the lexeme in the input stream and then find the next one, etc.