SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

Lexical analyzer generator lex
Lexical analyzer generator lexLexical analyzer generator lex
Lexical analyzer generator lexAnusuya123
 
Lecture 14 run time environment
Lecture 14 run time environmentLecture 14 run time environment
Lecture 14 run time environmentIffat Anjum
 
phases of a compiler
 phases of a compiler phases of a compiler
phases of a compilerMs.SHANTHI.S CSE
 
Finite Automata: Deterministic And Non-deterministic Finite Automaton (DFA)
Finite Automata: Deterministic And Non-deterministic Finite Automaton (DFA)Finite Automata: Deterministic And Non-deterministic Finite Automaton (DFA)
Finite Automata: Deterministic And Non-deterministic Finite Automaton (DFA)Mohammad Ilyas Malik
 
Chess board problem(divide and conquer)
Chess board problem(divide and conquer)Chess board problem(divide and conquer)
Chess board problem(divide and conquer)RASHIARORA8
 
Translation of expression(copmiler construction)
Translation of expression(copmiler construction)Translation of expression(copmiler construction)
Translation of expression(copmiler construction)IrtazaAfzal3
 
Deterministic Finite Automata (DFA)
Deterministic Finite Automata (DFA)Deterministic Finite Automata (DFA)
Deterministic Finite Automata (DFA)Animesh Chaturvedi
 
Decision properties of reular languages
Decision properties of reular languagesDecision properties of reular languages
Decision properties of reular languagesSOMNATHMORE2
 
1.1. the central concepts of automata theory
1.1. the central concepts of automata theory1.1. the central concepts of automata theory
1.1. the central concepts of automata theorySampath Kumar S
 
Relationship Among Token, Lexeme & Pattern
Relationship Among Token, Lexeme & PatternRelationship Among Token, Lexeme & Pattern
Relationship Among Token, Lexeme & PatternBharat Rathore
 
Planning in AI(Partial order planning)
Planning in AI(Partial order planning)Planning in AI(Partial order planning)
Planning in AI(Partial order planning)Vicky Tyagi
 
Finite Automata in compiler design
Finite Automata in compiler designFinite Automata in compiler design
Finite Automata in compiler designRiazul Islam
 
Code generation in Compiler Design
Code generation in Compiler DesignCode generation in Compiler Design
Code generation in Compiler DesignKuppusamy P
 
Type checking in compiler design
Type checking in compiler designType checking in compiler design
Type checking in compiler designSudip Singh
 
Finite automata-for-lexical-analysis
Finite automata-for-lexical-analysisFinite automata-for-lexical-analysis
Finite automata-for-lexical-analysisDattatray Gandhmal
 
Automata theory - Push Down Automata (PDA)
Automata theory - Push Down Automata (PDA)Automata theory - Push Down Automata (PDA)
Automata theory - Push Down Automata (PDA)Akila Krishnamoorthy
 
Process synchronization in Operating Systems
Process synchronization in Operating SystemsProcess synchronization in Operating Systems
Process synchronization in Operating SystemsRitu Ranjan Shrivastwa
 
Compiler Construction introduction
Compiler Construction introductionCompiler Construction introduction
Compiler Construction introductionRana Ehtisham Ul Haq
 

Was ist angesagt? (20)

Lexical analyzer generator lex
Lexical analyzer generator lexLexical analyzer generator lex
Lexical analyzer generator lex
 
Lecture 14 run time environment
Lecture 14 run time environmentLecture 14 run time environment
Lecture 14 run time environment
 
phases of a compiler
 phases of a compiler phases of a compiler
phases of a compiler
 
Finite Automata: Deterministic And Non-deterministic Finite Automaton (DFA)
Finite Automata: Deterministic And Non-deterministic Finite Automaton (DFA)Finite Automata: Deterministic And Non-deterministic Finite Automaton (DFA)
Finite Automata: Deterministic And Non-deterministic Finite Automaton (DFA)
 
Finite Automata
Finite AutomataFinite Automata
Finite Automata
 
Chess board problem(divide and conquer)
Chess board problem(divide and conquer)Chess board problem(divide and conquer)
Chess board problem(divide and conquer)
 
Translation of expression(copmiler construction)
Translation of expression(copmiler construction)Translation of expression(copmiler construction)
Translation of expression(copmiler construction)
 
Deterministic Finite Automata (DFA)
Deterministic Finite Automata (DFA)Deterministic Finite Automata (DFA)
Deterministic Finite Automata (DFA)
 
Decision properties of reular languages
Decision properties of reular languagesDecision properties of reular languages
Decision properties of reular languages
 
1.1. the central concepts of automata theory
1.1. the central concepts of automata theory1.1. the central concepts of automata theory
1.1. the central concepts of automata theory
 
Relationship Among Token, Lexeme & Pattern
Relationship Among Token, Lexeme & PatternRelationship Among Token, Lexeme & Pattern
Relationship Among Token, Lexeme & Pattern
 
Planning in AI(Partial order planning)
Planning in AI(Partial order planning)Planning in AI(Partial order planning)
Planning in AI(Partial order planning)
 
Finite Automata in compiler design
Finite Automata in compiler designFinite Automata in compiler design
Finite Automata in compiler design
 
Code generation in Compiler Design
Code generation in Compiler DesignCode generation in Compiler Design
Code generation in Compiler Design
 
COMPILER DESIGN Run-Time Environments
COMPILER DESIGN Run-Time EnvironmentsCOMPILER DESIGN Run-Time Environments
COMPILER DESIGN Run-Time Environments
 
Type checking in compiler design
Type checking in compiler designType checking in compiler design
Type checking in compiler design
 
Finite automata-for-lexical-analysis
Finite automata-for-lexical-analysisFinite automata-for-lexical-analysis
Finite automata-for-lexical-analysis
 
Automata theory - Push Down Automata (PDA)
Automata theory - Push Down Automata (PDA)Automata theory - Push Down Automata (PDA)
Automata theory - Push Down Automata (PDA)
 
Process synchronization in Operating Systems
Process synchronization in Operating SystemsProcess synchronization in Operating Systems
Process synchronization in Operating Systems
 
Compiler Construction introduction
Compiler Construction introductionCompiler Construction introduction
Compiler Construction introduction
 

Ähnlich wie Implement Lexical Analyzer Using Finite Automata

Regular Expression to Finite Automata
Regular Expression to Finite AutomataRegular Expression to Finite Automata
Regular Expression to Finite AutomataArchana Gopinath
 
SS UI Lecture 5
SS UI Lecture 5SS UI Lecture 5
SS UI Lecture 5Avinash Kapse
 
2_4 Finite Automata.ppt
2_4 Finite Automata.ppt2_4 Finite Automata.ppt
2_4 Finite Automata.pptRatnakar Mikkili
 
Introduction to the theory of computation
Introduction to the theory of computationIntroduction to the theory of computation
Introduction to the theory of computationprasadmvreddy
 
Ch3.ppt
Ch3.pptCh3.ppt
Ch3.pptMDSayem35
 
02. chapter 3 lexical analysis
02. chapter 3   lexical analysis02. chapter 3   lexical analysis
02. chapter 3 lexical analysisraosir123
 
SS UI Lecture 6
SS UI Lecture 6SS UI Lecture 6
SS UI Lecture 6Avinash Kapse
 
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
 
Optimization of dfa
Optimization of dfaOptimization of dfa
Optimization of dfaKiran Acharya
 
Lexical Analyzer Implementation
Lexical Analyzer ImplementationLexical Analyzer Implementation
Lexical Analyzer ImplementationAkhil Kaushik
 
Unitiv 111206005201-phpapp01
Unitiv 111206005201-phpapp01Unitiv 111206005201-phpapp01
Unitiv 111206005201-phpapp01riddhi viradiya
 
Lecture 12 Bottom-UP Parsing.pptx
Lecture 12 Bottom-UP Parsing.pptxLecture 12 Bottom-UP Parsing.pptx
Lecture 12 Bottom-UP Parsing.pptxYusra11491
 

Ähnlich wie Implement Lexical Analyzer Using Finite Automata (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
 
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
 
Lecture 12 Bottom-UP Parsing.pptx
Lecture 12 Bottom-UP Parsing.pptxLecture 12 Bottom-UP Parsing.pptx
Lecture 12 Bottom-UP Parsing.pptx
 

Mehr von 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
 
Language for specifying lexical Analyzer
Language for specifying lexical AnalyzerLanguage for specifying lexical Analyzer
Language for specifying lexical AnalyzerArchana 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
 
Business intelligence
Business intelligenceBusiness intelligence
Business intelligenceArchana 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
 
Main Memory RAM and ROM
Main Memory RAM and ROMMain Memory RAM and ROM
Main Memory RAM and ROMArchana Gopinath
 
Java thread life cycle
Java thread life cycleJava thread life cycle
Java thread life cycleArchana Gopinath
 
PCSTt11 overview of java
PCSTt11 overview of javaPCSTt11 overview of java
PCSTt11 overview of javaArchana Gopinath
 

Mehr von 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
 
Language for specifying lexical Analyzer
Language for specifying lexical AnalyzerLanguage for specifying lexical Analyzer
Language for specifying lexical Analyzer
 
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
 

KĂźrzlich hochgeladen

Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
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
 
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
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...anjaliyadav012327
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...Pooja Nehwal
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...fonyou31
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 

KĂźrzlich hochgeladen (20)

Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
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
 
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
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
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"
 
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
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
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
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
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 

Implement Lexical Analyzer Using Finite Automata

  • 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.