Professional Documents
Culture Documents
Chapter 1
Strings
a
ab u = ab
abba v = bbbaaa
baba w = abba
aaabbbaabab
Languages, Grammars, and Automata 9
String Operations
Concatenation
Reverse
w = an a2 a1
R
bbbaaababa
Examples: abba = 4
aa = 2
a =1
Languages, Grammars, and Automata 12
Length of Concatenation
uv = u + v
Example: u = aab, u = 3
v = abaab, v = 5
uv = aababaab = 8
uv = u + v = 3 + 5 = 8
Languages, Grammars, and Automata 13
Empty String
A string with no letters:
Observations: =0
w = w = w
String Substring
abbab ab
abbab abba
abbab b
abbab bbab
Languages, Grammars, and Automata 15
Prefix and Suffix
abbab
Prefixes Suffixes
abbab w = uv
a bbab
prefix
ab bab
suffix
abb ab
abba b
abbab
Languages, Grammars, and Automata 16
Another Operation
w = ww
n
w
n
Definition: w =
0
(abba ) = 0
= a, b
* = , a, b, aa, ab, ba, bb, aaa, aab,
= a, b
* = , a, b, aa, ab, ba, bb, aaa, aab,
+
= * −
+
= a, b, aa, ab, ba, bb, aaa, aab,
Languages, Grammars, and Automata 19
Languages
A language is any subset of *
Example: = a, b
* = , a, b, aa, ab, ba, bb, aaa,
Languages:
a, aa, aab
{ , abba, baba, aa, ab, aaaaaa}
Languages, Grammars, and Automata 20
Note that:
Sets = { } {}
Set size {} = = 0
An infinite language L = {a b : n 0} n n
ab
L abb L
aabb
aaaaabbbbb
Languages, Grammars, and Automata 22
Operations on Languages
The usual set operations
Definition: L = {w : w L}
R R
L = {a b : n 0}
n n
L = {b a : n 0}
R n n
L = {a b : n 0}
n n
L = {a b a b : n, m 0}
2 n n m m
aabbaaabbb L 2
Definition: L* = L L L
0 1 2
Example:
,
a, bb,
a, bb* =
aa , abb , bba , bbbb,
aaa, aabb, abba, abbbb,
Languages, Grammars, and Automata 28
Positive Closure
Definition: +
L = L L 1 2
= L * −
a, bb,
+
a, bb = aa, abb, bba, bbbb,
aaa, aabb, abba, abbbb,
Languages, Grammars, and Automata 29
Grammars
Let G = (V, T, S, P)
The set
L(G) = {w T* : S w}
*
Input
String
Output
Finite String
Automaton
Input
String
Output
“Accept”
Finite
or
Automaton
“Reject”
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
initial final
state state
transition
state “accept”
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
a b b a
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Output: “accept”
Languages, Grammars, and Automata 45
Ex2: Rejection
a b a
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
a b a
a, b
Output:
q5 “reject”
a, b
b a a b
q0 a q1 b q2 b q3 a q4
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Output:
“reject”
Languages, Grammars, and Automata 49
Another Example
a a b
a a, b
b a, b
q0 q1 q2
a a b
a a, b
Output: “accept”
b a, b
q0 q1 q2
b a b
a a, b
b a, b
q0 q1 q2
b a b
a a, b
b a, b
q0 q1 q2
Output: “reject”
M = (Q, , , q0 , F )
Q : set of states
: input alphabet
: transition function
q0 : initial state
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
* : Q * → Q
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
* (q, w) = q
q w q
w = 1 2 k
1 2 k
q q
* (q0 , abbbaa) = q5
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
q w q1 q
* ( q , w ) = q
* (q, w ) = (q1, )
(q1, ) = q
* (q, w ) = ( * (q, w), )
* (q, w) = q1
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Languages, Grammars, and Automata 63
Languages Accepted by DFAs
Take DFA M
Definition:
The language L(M ) contains
all input strings accepted by M
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
accept
a, b
q5
b a a a, b
b
q0 a q1 b q2 b q3 a q4
accept accept accept
Language accepted by M :
L(M ) = w * : * (q0 , w) F
q0 w q q F
L(M ) = w * : * (q0 , w) F
q0 w q q F
L(M ) = {a b : n 0}n
a a, b
b a, b
q0 q1 q2
q0 a q1 b q2
b a accept
q3 a, b
1 0 0,1
1
0 1
0 00 001
0
Languages, Grammars, and Automata 71
Regular Languages
b a
q4
a, b
Languages, Grammars, and Automata 74
There exist languages which are not Regular:
Example: L= {a b : n 0}
n n