71
Thopson NFA Presenter: Yuen-Shuo Li Date: 2014/5/7 Department of Computer Science and Information Engineering National Cheng Kung University, Taiwan R.O.C.

Thopson NFA

  • Upload
    aliza

  • View
    58

  • Download
    1

Embed Size (px)

DESCRIPTION

Thopson NFA. Presenter : Yuen- Shuo Li Date : 2014/5/7. Department of Computer Science and Information Engineering National Cheng Kung University, Taiwan R.O.C. Introduction. A regular expression (regex or regexp for short) is a special text string for describing a search pattern. - PowerPoint PPT Presentation

Citation preview

Page 1: Thopson  NFA

Thopson NFA

Presenter: Yuen-Shuo Li

Date: 2014/5/7

Department of Computer Science and Information Engineering National Cheng Kung University, Taiwan R.O.C.

Page 2: Thopson  NFA

Introduction

A regular expression (regex or regexp for short) is a special text string for describing a search pattern.

National Cheng Kung University CSIE Computer & Internet Architecture Lab

2

Page 3: Thopson  NFA

Introduction

Regular expression grammar

National Cheng Kung University CSIE Computer & Internet Architecture Lab

3

Syntax Example

Any character except[\^$.|?*+() a matches a

.  . matches x or (almost) any other character

|  (abc|def|xyz) matches abc, defor xyz

*  “ab*c" matches “ac“, “abc“, “abbc”, “abbbc”, ...

+  “a+" matches “a“, “aa“, “aaa”, “aaa”, ...

? abc? matches abc or ab

[] [abc] matches a, b or c

{n}  a{3} matches aaa

{n,m} {n,m} where n >= 0 and m >= n

Page 4: Thopson  NFA

Introduction

In automata theory, a nondeterministic finite automaton (NFA), or nondeterministic finite state machine, is a finite state machine that • does not require input symbols for state transitions• is capable of transitioning to zero or two or more states for a

given start state and input symbol. 

National Cheng Kung University CSIE Computer & Internet Architecture Lab

4

ε

a

Page 5: Thopson  NFA

Introduction

Thompson's Construction Algorithm (TCA) derives a nondeterministic finite automaton (NFA) from any regular expression by splitting it into its constituent subexpressions, from which the NFA will be constructed using a set of rules.

National Cheng Kung University CSIE Computer & Internet Architecture Lab

5

Page 6: Thopson  NFA

The expression ε is converted to

National Cheng Kung University CSIE Computer & Internet Architecture Lab

6

ε

e.g. A? => (A|ε)

Page 7: Thopson  NFA

A symbol a of the input alphabet is converted to

National Cheng Kung University CSIE Computer & Internet Architecture Lab

7

a

Page 8: Thopson  NFA

The union expression RE1|RE2 is converted to

National Cheng Kung University CSIE Computer & Internet Architecture Lab

8

a

ε

RE1

ε

εRE2

ε

Page 9: Thopson  NFA

The concatenation expression RE1. RE2 is converted to

National Cheng Kung University CSIE Computer & Internet Architecture Lab

9

a

RE1 RE2

Page 10: Thopson  NFA

The concatenation expression RE1. RE2 is converted to

National Cheng Kung University CSIE Computer & Internet Architecture Lab

10

a

RE1 RE2

or

Page 11: Thopson  NFA

The Kleene star expression RE* is converted to

National Cheng Kung University CSIE Computer & Internet Architecture Lab

11

εRE

ε

ε

ε

Page 12: Thopson  NFA

(AB|CD)E*

National Cheng Kung University CSIE Computer & Internet Architecture Lab

12

A

Page 13: Thopson  NFA

(AB|CD)E*

National Cheng Kung University CSIE Computer & Internet Architecture Lab

13

A B

Page 14: Thopson  NFA

(AB|CD)E*

National Cheng Kung University CSIE Computer & Internet Architecture Lab

14

A B

A B

Page 15: Thopson  NFA

(AB|CD)E*

National Cheng Kung University CSIE Computer & Internet Architecture Lab

15

A B

Page 16: Thopson  NFA

(AB|CD)E*

National Cheng Kung University CSIE Computer & Internet Architecture Lab

16

A B

C D

Page 17: Thopson  NFA

(AB|CD)E*

National Cheng Kung University CSIE Computer & Internet Architecture Lab

17

A B

C D

ε

ε ε

ε

Page 18: Thopson  NFA

(AB|CD)E*

National Cheng Kung University CSIE Computer & Internet Architecture Lab

18

A B

C D

ε

ε ε

ε

Page 19: Thopson  NFA

(AB|CD)E*

National Cheng Kung University CSIE Computer & Internet Architecture Lab

19

A B

C D

ε

ε ε

ε

εε

ε

ε

E

Page 20: Thopson  NFA

(AB|CD)E*

National Cheng Kung University CSIE Computer & Internet Architecture Lab

20

A B

C D

ε

ε ε

ε εε

ε

ε

E

Page 21: Thopson  NFA

National Cheng Kung University CSIE Computer & Internet Architecture Lab

21

     .   |     * .   .A B C D E

(AB|CD) E*

Regex Parse Tree NFA

Page 22: Thopson  NFA

National Cheng Kung University CSIE Computer & Internet Architecture Lab

22

     .   |     * .   .A B C D E

http://matt.might.net/articles/parsing-regex-with-recursive-descent/

Page 23: Thopson  NFA

National Cheng Kung University CSIE Computer & Internet Architecture Lab

23

     .   |     * .   .A B C D E

Page 24: Thopson  NFA

A

National Cheng Kung University CSIE Computer & Internet Architecture Lab

24

     .   |     * .   .A B C D E

Page 25: Thopson  NFA

AB

National Cheng Kung University CSIE Computer & Internet Architecture Lab

25

     .   |     * .   .A B C D E

Page 26: Thopson  NFA

AB.

National Cheng Kung University CSIE Computer & Internet Architecture Lab

26

     .   |     * .   .A B C D E

Page 27: Thopson  NFA

AB. C

National Cheng Kung University CSIE Computer & Internet Architecture Lab

27

     .   |     * .   .A B C D E

Page 28: Thopson  NFA

AB. CD

National Cheng Kung University CSIE Computer & Internet Architecture Lab

28

     .   |     * .   .A B C D E

Page 29: Thopson  NFA

AB. CD.

National Cheng Kung University CSIE Computer & Internet Architecture Lab

29

     .   |     * .   .A B C D E

Page 30: Thopson  NFA

AB. CD. |

National Cheng Kung University CSIE Computer & Internet Architecture Lab

30

     .   |     * .   .A B C D E

Page 31: Thopson  NFA

AB. CD. |E

National Cheng Kung University CSIE Computer & Internet Architecture Lab

31

     .   |     * .   .A B C D E

Page 32: Thopson  NFA

AB. CD. |E*

National Cheng Kung University CSIE Computer & Internet Architecture Lab

32

     .   |     * .   .A B C D E

Page 33: Thopson  NFA

AB. CD. |E*.

National Cheng Kung University CSIE Computer & Internet Architecture Lab

33

     .   |     * .   .A B C D E

Page 34: Thopson  NFA

AB. CD. |E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

34

     .   |     * .   .A B C D E

postfix notation

Page 35: Thopson  NFA

AB. CD. |E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

35

Page 36: Thopson  NFA

AB. CD. |E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

36

stack

Page 37: Thopson  NFA

B. CD. |E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

37

stack

A

Page 38: Thopson  NFA

B. CD. |E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

38

stack

AA

Page 39: Thopson  NFA

B. CD. |E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

39

stack

A

Page 40: Thopson  NFA

. CD. |E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

40

stack

A

B

Page 41: Thopson  NFA

. CD. |E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

41

stack

A

BB

Page 42: Thopson  NFA

. CD. |E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

42

stack

A

B

Page 43: Thopson  NFA

CD. |E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

43

stack

A

B .

Page 44: Thopson  NFA

CD. |E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

44

stack

A

B

Page 45: Thopson  NFA

CD. |E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

45

stack

B

A

Page 46: Thopson  NFA

CD. |E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

46

stack

BA

Page 47: Thopson  NFA

CD. |E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

47

stack

B

A

Page 48: Thopson  NFA

D. |E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

48

stack

B

A

C

Page 49: Thopson  NFA

D. |E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

49

stack

B

A

C C

Page 50: Thopson  NFA

D. |E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

50

stack

B

A

C

Page 51: Thopson  NFA

. |E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

51

stack

B

A

CD

D

Page 52: Thopson  NFA

. |E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

52

stack

BA

C

D

Page 53: Thopson  NFA

|E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

53

stack

BA

C

D.

Page 54: Thopson  NFA

|E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

54

stack

BA

C

.D

Page 55: Thopson  NFA

|E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

55

stack

BA

.D

C

Page 56: Thopson  NFA

|E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

56

stack

BA

DC

Page 57: Thopson  NFA

|E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

57

stack

BA

DC

Page 58: Thopson  NFA

E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

58

stack

BA

DC

|

Page 59: Thopson  NFA

E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

59

stack

BA

|

DC

Page 60: Thopson  NFA

E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

60

stack

|

DC

BA

Page 61: Thopson  NFA

E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

61

stack

A B

C D

ε

ε ε

ε

Page 62: Thopson  NFA

E* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

62

stack

A B

C Dε

ε

ε

ε

Page 63: Thopson  NFA

* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

63

stack

A B

C Dε

ε

ε

ε

E

Page 64: Thopson  NFA

* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

64

stack

A B

C Dε

ε

ε

ε

EE

Page 65: Thopson  NFA

* .

National Cheng Kung University CSIE Computer & Internet Architecture Lab

65

stack

A B

C Dε

ε

ε

ε

E

Page 66: Thopson  NFA

National Cheng Kung University CSIE Computer & Internet Architecture Lab

66

stack

A B

C Dε

ε

ε

ε

E *

Page 67: Thopson  NFA

National Cheng Kung University CSIE Computer & Internet Architecture Lab

67

stack

A B

C Dε

ε

ε

ε

*E

Page 68: Thopson  NFA

National Cheng Kung University CSIE Computer & Internet Architecture Lab

68

stack

A B

C Dε

ε

ε

ε

*

εε

ε

ε

E

Page 69: Thopson  NFA

National Cheng Kung University CSIE Computer & Internet Architecture Lab

69

stack

A B

C Dε

ε

ε

ε

*

εεεε E

Page 70: Thopson  NFA

National Cheng Kung University CSIE Computer & Internet Architecture Lab

70

A B

C D

ε

ε ε

ε εε

ε

ε

E

Page 71: Thopson  NFA

Regular Expression to NFA DFA http://

hackingoff.com/compilers/regular-expression-to-nfa-dfa

National Cheng Kung University CSIE Computer & Internet Architecture Lab

71