Cs419 lec6 lexical analysis using nfa

42
Compilers WELCOME TO A JOURNEY TO CS419 Lecture 6 Scanning using Non-deterministic Finite automata (NFA) cont. Cairo University FCI Dr. Hussien Sharaf Computer Science Department [email protected]

Transcript of Cs419 lec6 lexical analysis using nfa

Page 1: Cs419 lec6   lexical analysis using nfa

Compilers

WELCOME TO A JOURNEY TO

CS419 Lecture 6

Scanning using Non-deterministic Finite automata (NFA) cont.

Cairo UniversityFCI

Dr. Hussien SharafComputer Science [email protected]

Page 2: Cs419 lec6   lexical analysis using nfa

2

NON DETERMINISTIC FINITE AUTOMATA NFA There is a fixed number of states but we can be in multiple

states at one time.

NFA = “a 5-tuple “ (Q, Σ, , q0, F)Q A finite set of statesΣ A finite input alphabetq0 The initial/starting state, q0 is in QF A set of final/accepting states, which is a subset of Qδ A transition function, which is a total function from Q x Σ to 2Q , this function:

Takes a state and input symbol as arguments. Returns a set of states instead a single state as in

DFA.δ: (Q x Σ) –> 2Q -2Q is the power set of Q, the set of

all subsets of Q δ(q,s) is a function from Q x S to 2Q (but not to Q)

Dr. Hussien M. Sharaf

Page 3: Cs419 lec6   lexical analysis using nfa

NFA

A finite automaton is deterministic if It has no edges/transitions labeled with

epsilon/lamda. For each state and for each symbol in

the alphabet, there is exactly one edge labeled with that symbol.

Page 4: Cs419 lec6   lexical analysis using nfa

4

1q 2q

3q

a

a

a

0q

}{aAlphabet =

NFA NFA travels all possible paths, and so it remains in many states

at once. As long as at least one of the paths results in an accepting state, the NFA accepts the input.

Dr. Hussien M. Sharaf

Page 5: Cs419 lec6   lexical analysis using nfa

5

1q 2q

3q

a

a

a

0q

Two choices

}{aAlphabet =

NFA

Dr. Hussien M. Sharaf

Page 6: Cs419 lec6   lexical analysis using nfa

6

No transition

1q 2q

3q

a

a

a

0q

Two choicesNo transition

}{aAlphabet =

NFA

Dr. Hussien M. Sharaf

Page 7: Cs419 lec6   lexical analysis using nfa

7

An NFA accepts a string:if there is a computation of the NFAthat accepts the string

i.e., all the input string is processed and the automaton is in an accepting state

NFA

Dr. Hussien M. Sharaf

Page 8: Cs419 lec6   lexical analysis using nfa

8

a a

0q

1q 2q

3q

a

a

Acceptance Example 1

a

NFA

Dr. Hussien M. Sharaf

Page 9: Cs419 lec6   lexical analysis using nfa

9

a a

0q

1q 2q

3q

a

a

a

First ChoiceNFA

Dr. Hussien M. Sharaf

Page 10: Cs419 lec6   lexical analysis using nfa

10

a a

0q

1q 2q

3q

a

a

a “accept”

First Choice

All input is consumed

NFA

Dr. Hussien M. Sharaf

Page 11: Cs419 lec6   lexical analysis using nfa

11

a a

0q

1q 2q

3q

a

a

Second Choice

a

NFA

Dr. Hussien M. Sharaf

Page 12: Cs419 lec6   lexical analysis using nfa

12

a a

0q

1q 2qa

a

a

3q

Second Choice

“reject”

Input cannot be consumed

Automaton Halts

NFA

Dr. Hussien M. Sharaf

Page 13: Cs419 lec6   lexical analysis using nfa

13

aa is accepted by the NFA:

0q

1q 2q

3q

a

a

a

“accept”

0q

1q 2qa

a

a

3q “reject”

because this computationaccepts aa

this computationis ignored

NFA

Dr. Hussien M. Sharaf

Page 14: Cs419 lec6   lexical analysis using nfa

14

Dr. Hussien M. Sharaf

An NFA rejects a string:if there is no computation of the NFAthat accepts the string.

• All the input is consumed and the automaton is in a non final state

• The input cannot be consumed

OR

For each computation:

NFA

Page 15: Cs419 lec6   lexical analysis using nfa

15

a is rejected by the NFA:

0q

1q 2qa

a

a

3q “reject”

0q

1q 2qa

a

a

3q

“reject”

All possible computations lead to rejection

NFA

Dr. Hussien M. Sharaf

Page 16: Cs419 lec6   lexical analysis using nfa

16

aaais rejected by the NFA:

0q

1q 2q

3q

a

a

a

“reject”

0q

1q 2qa

a

a

3q “reject”

All possible computations lead to rejection

NFA

Dr. Hussien M. Sharaf

Page 17: Cs419 lec6   lexical analysis using nfa

17

1q 3qa0q

2q a

Dr. Hussien M. Sharaf

LAMBDA TRANSITIONS

Page 18: Cs419 lec6   lexical analysis using nfa

18

a a

1q 3qa0q

2q a

Dr. Hussien M. SharafLAMBDA TRANSITIONS

Acceptance Example 2

Page 19: Cs419 lec6   lexical analysis using nfa

19

a a

1q 3qa0q

2q a

Dr. Hussien M. SharafLAMBDA TRANSITIONS

Page 20: Cs419 lec6   lexical analysis using nfa

20

a a

1q 3qa0q

2q a

input tape head does not move

Dr. Hussien M. SharafLAMBDA TRANSITIONS

Page 21: Cs419 lec6   lexical analysis using nfa

21

a a

1q 3qa0q

2q a

“accept”

String is acceptedaa

all input is consumed

Dr. Hussien M. SharafLAMBDA TRANSITIONS

Page 22: Cs419 lec6   lexical analysis using nfa

22

a a

1q 3qa0q

2q a

Rejection Example 3

a

Dr. Hussien M. SharafDr. Hussien M. SharafLAMBDA TRANSITIONS

Page 23: Cs419 lec6   lexical analysis using nfa

23

a a

1q 3qa0q

2q a

a

Dr. Hussien M. SharafLAMBDA TRANSITIONS

Page 24: Cs419 lec6   lexical analysis using nfa

24

a a

1q 3qa0q

2q a

(read head doesn’t move)

a

Dr. Hussien M. SharafLAMBDA TRANSITIONS

Page 25: Cs419 lec6   lexical analysis using nfa

25

a a

1q 3qa0q

2q a

“reject”

String is rejectedaaa

a

Input cannot be consumed

Automaton halts

Dr. Hussien M. SharafLAMBDA TRANSITIONS

Page 26: Cs419 lec6   lexical analysis using nfa

26

Language accepted: }{aaL

1q 3qa0q

2q a

Dr. Hussien M. SharafLAMBDA TRANSITIONS

Page 27: Cs419 lec6   lexical analysis using nfa

27

Example 4

0q 1q 2qa b

3q

Dr. Hussien M. Sharaf

Page 28: Cs419 lec6   lexical analysis using nfa

28

a b

0q 1q 2qa b

3q

Dr. Hussien M. Sharaf

Page 29: Cs419 lec6   lexical analysis using nfa

29

0q 2qa b

3q

a b

1q

Dr. Hussien M. Sharaf

Page 30: Cs419 lec6   lexical analysis using nfa

30

a b

0q 1qa b

3q2q

“accept”

Dr. Hussien M. Sharaf

Page 31: Cs419 lec6   lexical analysis using nfa

31

0qa b

a b

Another String

a b

1q 2q 3q

Dr. Hussien M. Sharaf

Page 32: Cs419 lec6   lexical analysis using nfa

32

0qa b

a b a b

1q 2q 3q

Dr. Hussien M. Sharaf

Page 33: Cs419 lec6   lexical analysis using nfa

33

0qa b

a b a b

1q 2q 3q

Dr. Hussien M. Sharaf

Page 34: Cs419 lec6   lexical analysis using nfa

34

0qa b

a b a b

1q 2q 3q

Dr. Hussien M. Sharaf

Page 35: Cs419 lec6   lexical analysis using nfa

35

0qa b

a b a b

1q 2q 3q

Dr. Hussien M. Sharaf

Page 36: Cs419 lec6   lexical analysis using nfa

36

0qa b

a b a b

1q 2q 3q

Dr. Hussien M. Sharaf

Page 37: Cs419 lec6   lexical analysis using nfa

37

a b a b

0qa b

1q 2q 3q

“accept”

Dr. Hussien M. Sharaf

Page 38: Cs419 lec6   lexical analysis using nfa

38

ab

ababababababL ...,,,

Language accepted

0q 1q 2qa b

3q

Dr. Hussien M. Sharaf

Page 39: Cs419 lec6   lexical analysis using nfa

39

EXAMPLE 5

0q 1q 2q0

11,0

Dr. Hussien M. Sharaf

Page 40: Cs419 lec6   lexical analysis using nfa

40

{ }{ }*10=

...,101010,1010,10,λ=)(ML

0q 1q 2q0

11,0

Language accepted

(redundant state)

Dr. Hussien M. Sharaf

Page 41: Cs419 lec6   lexical analysis using nfa

41

DETERMINISTIC AND NONDETERMINISTIC AUTOMATA

Deterministic Finite Automata (DFA) One transition per input per state No -moves

Nondeterministic Finite Automata (NFA) Can have multiple transitions for one input

in a given state Can have -moves

Page 42: Cs419 lec6   lexical analysis using nfa

THANK YOU

Dr. Hussien M. Sharaf 42