TRANSITION DIAGRAM BASED LEXICAL ANALYZER and FINITE AUTOMATA

Download Presentation

TRANSITION DIAGRAM BASED LEXICAL ANALYZER and FINITE AUTOMATA

Loading in 2 Seconds...

- 120 Views
- Uploaded on
- Presentation posted in: General

TRANSITION DIAGRAM BASED LEXICAL ANALYZER and FINITE AUTOMATA

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

TRANSITION DIAGRAM BASED LEXICAL ANALYZERandFINITE AUTOMATA

Class date : 12 August, 2013

Prepared by : Karimgailiu R Panmei

Roll no. : 11CS10020

GROUP NO. : 9

State Transition Machine 1

Stream of input characters (source)

State Transition Machine 2

Token

State Transition Machine 3

Lex Compiler

pattern1 pattern 2 pattern 3

Simulating the transition machines :

Input string : x1,x2 ,x3 …… x n

- Scan the input using forward pointer
- Machine accepts or rejects based on the transition function
- Match the longest prefix of the input
- If accepted, token is produced

Two approach to simulate the machine :

Approach 1 :

Sequential simulation

- Sequentially simulate the transition machines
- If the previous machine fails, reset the forward pointer
- Start the next transition machine

Approach 2 :

Parallel simulation

- Simulate all transition diagrams in parallel
- The machine stops when no match is found

Lex compiler

generate state transition machines

NFA : Advantage

Pattern : Define based on regular expression

Pattern

C Compiler

a.out

tokens

Source code

a.out

DFA : advantage

FINITE AUTOMATA

- Recognize regular languages
- Accepts or rejects a possible input string
- Two types :
1. Non deterministic finite automata(NFA)

2. Deterministic finite automata(DFA)

Definition :

N={ Σ, S, so , F, Δ}

where

Σ : set of input symbol

S : finite set of states

so : start state

F : finite set of final states

Δ : transition function (S × Σ → P(S))

where P(S) is the power set of S

- Given an input a, NFA allows to go from one state to a multiple state
a

a

- ϵ-transition is allowed
ϵ

Definition :

D={ Σ, S, so , f, δ}

where

Σ : set of input symbol

S : finite set of states

so : start state

F : finite set of final states

δ : transition function (δ : S × Σ → S)

- No ϵ-transition is allowed
- For a given input a, DFA allows to moves from one state to a single state
a

Input :

- a string x

- DFA with start state so , accepting

states F and transition function

detect

Output :

“yes” if accepts and “no” if rejects

Algorithm :

s=so ;

c= read_next_char(); //read_next_char() returns the next

//character

while(c!=‘\0’)

{

s=detect(s,c);

c=read_next_char();

}

if(s ϵ F)

return yes;

else

return no;

THE END