thopson nfa
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 PresentationTRANSCRIPT
![Page 1: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/1.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/2.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/3.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/4.jpg)
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
aε
![Page 5: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/5.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/6.jpg)
The expression ε is converted to
National Cheng Kung University CSIE Computer & Internet Architecture Lab
6
ε
e.g. A? => (A|ε)
![Page 7: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/7.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/8.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/9.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/10.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/11.jpg)
The Kleene star expression RE* is converted to
National Cheng Kung University CSIE Computer & Internet Architecture Lab
11
εRE
ε
ε
ε
![Page 12: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/12.jpg)
(AB|CD)E*
National Cheng Kung University CSIE Computer & Internet Architecture Lab
12
A
![Page 13: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/13.jpg)
(AB|CD)E*
National Cheng Kung University CSIE Computer & Internet Architecture Lab
13
A B
![Page 14: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/14.jpg)
(AB|CD)E*
National Cheng Kung University CSIE Computer & Internet Architecture Lab
14
A B
A B
![Page 15: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/15.jpg)
(AB|CD)E*
National Cheng Kung University CSIE Computer & Internet Architecture Lab
15
A B
![Page 16: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/16.jpg)
(AB|CD)E*
National Cheng Kung University CSIE Computer & Internet Architecture Lab
16
A B
C D
![Page 17: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/17.jpg)
(AB|CD)E*
National Cheng Kung University CSIE Computer & Internet Architecture Lab
17
A B
C D
ε
ε ε
ε
![Page 18: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/18.jpg)
(AB|CD)E*
National Cheng Kung University CSIE Computer & Internet Architecture Lab
18
A B
C D
ε
ε ε
ε
![Page 19: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/19.jpg)
(AB|CD)E*
National Cheng Kung University CSIE Computer & Internet Architecture Lab
19
A B
C D
ε
ε ε
ε
εε
ε
ε
E
![Page 20: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/20.jpg)
(AB|CD)E*
National Cheng Kung University CSIE Computer & Internet Architecture Lab
20
A B
C D
ε
ε ε
ε εε
ε
ε
E
![Page 21: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/21.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/22.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/23.jpg)
National Cheng Kung University CSIE Computer & Internet Architecture Lab
23
. | * . .A B C D E
![Page 24: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/24.jpg)
A
National Cheng Kung University CSIE Computer & Internet Architecture Lab
24
. | * . .A B C D E
![Page 25: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/25.jpg)
AB
National Cheng Kung University CSIE Computer & Internet Architecture Lab
25
. | * . .A B C D E
![Page 26: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/26.jpg)
AB.
National Cheng Kung University CSIE Computer & Internet Architecture Lab
26
. | * . .A B C D E
![Page 27: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/27.jpg)
AB. C
National Cheng Kung University CSIE Computer & Internet Architecture Lab
27
. | * . .A B C D E
![Page 28: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/28.jpg)
AB. CD
National Cheng Kung University CSIE Computer & Internet Architecture Lab
28
. | * . .A B C D E
![Page 29: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/29.jpg)
AB. CD.
National Cheng Kung University CSIE Computer & Internet Architecture Lab
29
. | * . .A B C D E
![Page 30: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/30.jpg)
AB. CD. |
National Cheng Kung University CSIE Computer & Internet Architecture Lab
30
. | * . .A B C D E
![Page 31: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/31.jpg)
AB. CD. |E
National Cheng Kung University CSIE Computer & Internet Architecture Lab
31
. | * . .A B C D E
![Page 32: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/32.jpg)
AB. CD. |E*
National Cheng Kung University CSIE Computer & Internet Architecture Lab
32
. | * . .A B C D E
![Page 33: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/33.jpg)
AB. CD. |E*.
National Cheng Kung University CSIE Computer & Internet Architecture Lab
33
. | * . .A B C D E
![Page 34: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/34.jpg)
AB. CD. |E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
34
. | * . .A B C D E
postfix notation
![Page 35: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/35.jpg)
AB. CD. |E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
35
![Page 36: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/36.jpg)
AB. CD. |E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
36
stack
![Page 37: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/37.jpg)
B. CD. |E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
37
stack
A
![Page 38: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/38.jpg)
B. CD. |E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
38
stack
AA
![Page 39: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/39.jpg)
B. CD. |E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
39
stack
A
![Page 40: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/40.jpg)
. CD. |E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
40
stack
A
B
![Page 41: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/41.jpg)
. CD. |E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
41
stack
A
BB
![Page 42: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/42.jpg)
. CD. |E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
42
stack
A
B
![Page 43: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/43.jpg)
CD. |E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
43
stack
A
B .
![Page 44: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/44.jpg)
CD. |E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
44
stack
A
.
B
![Page 45: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/45.jpg)
CD. |E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
45
stack
.
B
A
![Page 46: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/46.jpg)
CD. |E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
46
stack
BA
![Page 47: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/47.jpg)
CD. |E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
47
stack
B
A
![Page 48: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/48.jpg)
D. |E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
48
stack
B
A
C
![Page 49: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/49.jpg)
D. |E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
49
stack
B
A
C C
![Page 50: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/50.jpg)
D. |E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
50
stack
B
A
C
![Page 51: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/51.jpg)
. |E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
51
stack
B
A
CD
D
![Page 52: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/52.jpg)
. |E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
52
stack
BA
C
D
![Page 53: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/53.jpg)
|E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
53
stack
BA
C
D.
![Page 54: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/54.jpg)
|E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
54
stack
BA
C
.D
![Page 55: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/55.jpg)
|E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
55
stack
BA
.D
C
![Page 56: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/56.jpg)
|E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
56
stack
BA
DC
![Page 57: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/57.jpg)
|E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
57
stack
BA
DC
![Page 58: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/58.jpg)
E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
58
stack
BA
DC
|
![Page 59: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/59.jpg)
E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
59
stack
BA
|
DC
![Page 60: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/60.jpg)
E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
60
stack
|
DC
BA
![Page 61: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/61.jpg)
E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
61
stack
A B
C D
ε
ε ε
ε
![Page 62: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/62.jpg)
E* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
62
stack
A B
C Dε
ε
ε
ε
![Page 63: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/63.jpg)
* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
63
stack
A B
C Dε
ε
ε
ε
E
![Page 64: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/64.jpg)
* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
64
stack
A B
C Dε
ε
ε
ε
EE
![Page 65: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/65.jpg)
* .
National Cheng Kung University CSIE Computer & Internet Architecture Lab
65
stack
A B
C Dε
ε
ε
ε
E
![Page 66: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/66.jpg)
.
National Cheng Kung University CSIE Computer & Internet Architecture Lab
66
stack
A B
C Dε
ε
ε
ε
E *
![Page 67: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/67.jpg)
.
National Cheng Kung University CSIE Computer & Internet Architecture Lab
67
stack
A B
C Dε
ε
ε
ε
*E
![Page 68: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/68.jpg)
.
National Cheng Kung University CSIE Computer & Internet Architecture Lab
68
stack
A B
C Dε
ε
ε
ε
*
εε
ε
ε
E
![Page 69: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/69.jpg)
.
National Cheng Kung University CSIE Computer & Internet Architecture Lab
69
stack
A B
C Dε
ε
ε
ε
*
εεεε E
![Page 70: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/70.jpg)
National Cheng Kung University CSIE Computer & Internet Architecture Lab
70
A B
C D
ε
ε ε
ε εε
ε
ε
E
![Page 71: Thopson NFA](https://reader035.vdocument.in/reader035/viewer/2022070416/568150bb550346895dbed999/html5/thumbnails/71.jpg)
Regular Expression to NFA DFA http://
hackingoff.com/compilers/regular-expression-to-nfa-dfa
National Cheng Kung University CSIE Computer & Internet Architecture Lab
71