Date post: | 15-Mar-2016 |
Category: |
Documents |
Upload: | samson-lowery |
View: | 31 times |
Download: | 1 times |
1
CD5560
FABER
Formal Languages, Automata and Models of Computation
Lecture 2
Mälardalen University2010
2
ContentLanguages, Alphabets and Strings
Strings & String OperationsLanguages & Language Operations
Regular ExpressionsFinite Automata, FADeterministic Finite Automata, DFA
3
Languages, Alphabets and
Strings
4
defined over an alphabet:
Languages
zcba ,,,,
A language is a set of strings
A String is a sequence of letters
An alphabet is a set of symbols
5
Alphabets and Strings
We will use small alphabets:
abbawbbbaaavabu
baaabbbaabababaabbaaba
Strings
ba,
6
Operations on Strings
7
String Operations
m
n
bbbvaaaw
21
21
y bbbaaax abba
mn bbbaaawv 2121
Concatenation (sammanfogning)
xy abbabbbaaa
8
12aaaw nR
naaaw 21 ababaaabbb
Reverse (reversering)
bbbaaababa
Example:Longest odd length palindrome in a natural language:
saippuakauppias (Finnish: soap sailsman)
9
String Length
naaaw 21
12
4
aaaabba
nw Length:
Examples:
10
Recursive Definition of Length
For any letter:
For any string :
Example:
1a
1wwawa
41111
11111
1
aab
abbabba
11
Length of Concatenation
vuuv
8538
vuuvaababaabuv
5,3,
vabaabvuaabuExample:
12
Proof of Concatenation Length
Claim:
Proof: By induction on the length
Induction basis: From definition of length:
vuuv
v
1v
vuuuv 1
13
Inductive hypothesis:
vuuv
nv
1nv
vuuv
Inductive step: we will prove
for
for
14
Inductive StepWrite , where
From definition of length:
From inductive hypothesis:
Thus:
wav 1, anw
11
wwauwuwauv
wuuw
vuwauwuuv 1
END OF PROOF
15
Empty String
A string with no letters: (Also denoted as )
Observations:
}{{}
0
abbaabbaabbawww
16
Substring (delsträng)Substring of a string:
a subsequence of consecutive characters
String Substring
bbabbabbaab
abbababbababbababbab
17
Prefix and Suffix
Suffixesabbab
abbababbaabbaba
babbabbbababbab uvw
prefix
suffix
Prefixes
18
Repetition
Example:
Definition:
n
n www... w
abbaabbaabba 2
0w
0abba
}
(String repeated n times)w
19
The (Kleene* star) Operation
the set of all possible strings from alphabet
*
,,,,,,,,,*
,aabaaabbbaabaaba
ba
[* Kleene is pronounced "clay-knee“]
http://en.wikipedia.org/wiki/Kleene_star
20
The + (Kleene plus) Operation
: the set of all possible strings from the alphabet except
,ba ,,,,,,,,,* aabaaabbbaabaaba
*
,,,,,,,, aabaaabbbaabaaba
21
Example
* , oj, fy, usch, ojoj, fyfy,uschusch, ojfy, ojusch
*
, fyoj , usch
oj, fy, usch, ojoj, fyfy,uschusch, ojfy, ojusch
22
Operations on Languages
23
Language
A language is any subset of
Example:
Languages:
*
,,,,,,,,*,
aaabbbaabaababa
},,,,,{,,
aaaaaaabaababaabbaaabaaa
24
Example
An infinite language }0:{ nbaL nn
Labb
aaaaabbbbbaabbab
L
25
Operations on Languages
The usual set operations
aaaaaabbbaaaaaba
ababbbaaaaabaaaaabbabaabbbaaaaaba
,,,,}{,,,
},,,{,,,
,,,,,,, aaabbabaabbaa ,,,,,,,,,* aabaaabbbaabaaba
LL *Complement:
26
Reverse
}:{ LwwL RR
ababbaabababaaabab R ,,,,
}0:{
}0:{
nabL
nbaLnnR
nn
Examples:
Definition:
27
Concatenation
Definition: 2121 ,: LyLxxyLL
baaabababaaabbaaaab
aabbaaba,,,,,
,,,
Example
28
RepeatDefinition:
Special case:
n
n LLLL
bbbbbababbaaabbabaaabaaa
babababa,,,,,,,
,,,, 3
0
0
,, aaabbaa
L
29
Example
}0:{ nbaL nn
}0,:{2 mnbabaL mmnn
2Laabbaaabbb
30
Star-Closure (Kleene *)
Definition:
Example:
210* LLLL
,,,,,,,,
,,,
*,
abbbbabbaaabbaaabbbbbbaabbaa
bbabba
31
Positive ClosureDefinition
*L 21 LLL
,,,,,,,,
,,,
abbbbabbaaabbaaabbbbbbaabbaa
bbabba
32
Regular Expressions
33
Regular Expressions: Recursive Definition
1
1
21
21
*r
rrrrr
are Regular Expressions
,,Primitive regular expressions:
2rGiven regular expressions and 1r
34
Examples
)(* ccbaA regular expression:
baNot a regular expression:
35
Zero or more. a* means "zero or more a's."
To say "zero or more ab's," that is,
{, ab, abab, ababab, ...}, you need to say (ab)*.
ab* denotes {a, ab, abb, abbb, abbbb, ...}.
cba ,,Building Regular Expressions
36
One or more. Since a* means "zero or more a's", you can use aa* (or equivalently, a*a) to mean "one or more a's.“
Similarly, to describe "one or more ab's," that is, {ab, abab, ababab, ...}, you can use ab(ab)*.
cba ,,Building Regular Expressions
37
Any string at all. To describe any string at all (with = {a, b, c}), you can use (a+b+c)*.
Any nonempty string. This can be written as any character from followed by any string at all: (a+b+c)(a+b+c)*.
cba ,,
Building Regular Expressions
38
Any string not containing.... To describe any string at all that doesn't contain an a (with = {a, b, c}), you can use (b+c)*.
Any string containing exactly one... To describe any string that contains exactly one a, put "any string not containing an a," on either side of the a, like this: (b+c)*a(b+c)*.
cba ,,Building Regular Expressions
39
Languages of Regular Expressions
,...,,,,,*)( bcaabcaabcacbaL
Example
rL rlanguage of regular expression
40
Definition
For primitive regular expressions:
aaL
L
L
41
Definition (continued)
For regular expressions and
1r 2r
2121 rLrLrrL
2121 rLrLrrL
** 11 rLrL
11 rLrL
42
Example *aba
*abaL *aLbaL
*aLbaL
*aLbLaL
*aba
,...,,,, aaaaaaba
,...,,,...,,, baababaaaaaa
Regular expression:
43
Example
Regular expression
bbabar *
,...,,,,, bbbbaabbaabbarL
44
Example
Regular expression
bbbaar **
}0,:{ 22 mnbbarL mn
45
Example
Regular expression
*)10(00*)10( r
)(rL { all strings with at least two consecutive 0 }
1,0
46
Example
Regular expression
(consists of repeating 1’s and 01’s).
)0(*)011(1 r
)(rL = { all strings without two consecutive 0 }
1,0
47
Example L = { all strings without
two consecutive 0 }
)0(*1)0(**)011*1(2 r
(In order not to get 00 in a string, after each 0 there must be an 1, which means that strings of the form 1....101....1are repeated. That is the first parenthesis. To take into account strings that end with 0, and those consisting of 1’s solely, the rest of the expression is added.)
Equivalent solution:
48
Equivalent Regular Expressions
Regular expressions and
1r 2r
)()( 21 rLrL are equivalent if
Definition:
49
Example L = { all strings without
two consecutive 0 }
)0(*1)0(**)011*1(2 r
LrLrL )()( 21 1r 2randare equivalentregular expressions.
)0(*)011(1 r
Additional Sourceshttp://www.math.uu.se/~salling/ Lennart Salling
http://www.math.uu.se/~salling/AUTOMATA_DV/index.htmlIntroduktion movie .movProgram, strings, integers and integer functions .movDifferent infinities and integer functions that can not be calculated
by a program .movStrings and languages .mov
Regular languages and regular expressions .mov
50