160 likes | 394 Views
TRANSITION DIAGRAM BASED LEXICAL ANALYZER and FINITE 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.
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)
NFA 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
More about NFA • Given an input a, NFA allows to go from one state to a multiple state a a • ϵ-transition is allowed ϵ
DFA 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)
More on DFA • No ϵ-transition is allowed • For a given input a, DFA allows to moves from one state to a single state a
Simulating DFA 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;