Download - Formal Languages Models of Computation
![Page 1: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/1.jpg)
Spring 2005 Costas Busch - RPI
Formal Languages
Models of Computation
![Page 2: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/2.jpg)
2
Computation
CPU memory
![Page 3: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/3.jpg)
3
CPU
input memory
output memory
Program memory
temporary memory
![Page 4: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/4.jpg)
4
CPU
input memory
output memoryProgram memory
temporary memory
3)( xxf
compute xx
compute xx 2
Example:
![Page 5: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/5.jpg)
5
CPU
input memory
output memoryProgram memory
temporary memory
3)( xxf
compute xx
compute xx 2
2x
![Page 6: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/6.jpg)
6
CPU
input memory
output memoryProgram memory
temporary memory3)( xxf
compute xx
compute xx 2
2x
42*2 z82*)( zxf
![Page 7: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/7.jpg)
7
CPU
input memory
output memoryProgram memory
temporary memory3)( xxf
compute xx
compute xx 2
2x
42*2 z82*)( zxf
8)( xf
![Page 8: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/8.jpg)
8
Automaton
CPU
input memory
output memory
Program memory
temporary memory
Automaton
![Page 9: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/9.jpg)
9
Different Kinds of Automata
Automata are distinguished by the temporary memory
• Finite Automata: no temporary memory
• Pushdown Automata: stack
• Turing Machines: random access memory
![Page 10: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/10.jpg)
10
input memory
output memory
temporary memory
Finite
Automaton
Finite Automaton
Example: Vending Machines
(small computing power)
![Page 11: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/11.jpg)
11
input memory
output memory
Stack
Pushdown
Automaton
Pushdown Automaton
Example: Compilers for Programming Languages
(medium computing power)
Push, Pop
![Page 12: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/12.jpg)
12
input memory
output memory
Random Access Memory
Turing
Machine
Turing Machine
Examples: Any Algorithm
(highest computing power)
![Page 13: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/13.jpg)
13
Finite
Automata
Pushdown
Automata
Turing
Machine
Power of Automata
Less power More power
Solve more
computational problems
![Page 14: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/14.jpg)
14
Languages
![Page 15: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/15.jpg)
15
A language is a set of strings
String: A sequence of letters
Examples: “cat”, “dog”, “house”, …
Defined over an alphabet: zcba ,,,,
![Page 16: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/16.jpg)
16
Alphabets and StringsWe will use small alphabets:
Strings
abbaw
bbbaaav
abu
ba,
baaabbbaaba
baba
abba
ab
a
![Page 17: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/17.jpg)
17
String Operations
m
n
bbbv
aaaw
21
21
bbbaaa
abba
mn bbbaaawv 2121
Concatenation
abbabbbaaa
![Page 18: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/18.jpg)
18
12aaaw nR
naaaw 21 ababaaabbb
Reverse
bbbaaababa
![Page 19: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/19.jpg)
19
String Length
Length:
Examples:
naaaw 21
nw
1
2
4
a
aa
abba
![Page 20: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/20.jpg)
20
Length of Concatenation
Example:
vuuv
853
8
5,
3,
vuuv
aababaabuv
vabaabv
uaabu
![Page 21: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/21.jpg)
21
Empty StringA string with no letters:
Observations:
abbaabbaabba
www
0
![Page 22: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/22.jpg)
22
SubstringSubstring of string:
a subsequence of consecutive characters
String Substring
bbab
b
abba
ab
abbab
abbab
abbab
abbab
![Page 23: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/23.jpg)
23
Prefix and Suffix
Prefixes Suffixesabbab
abbab
abba
abb
ab
a
b
ab
bab
bbab
abbab uvw
prefix
suffix
![Page 24: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/24.jpg)
24
Another Operation
Example:
Definition:
n
n wwww
abbaabbaabba 2
0w
0abba
![Page 25: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/25.jpg)
25
The * Operation : the set of all possible strings from alphabet
*
,,,,,,,,,*
,
aabaaabbbaabaaba
ba
![Page 26: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/26.jpg)
26
The + Operation : the set of all possible strings from alphabet except
,,,,,,,,,*
,
aabaaabbbaabaaba
ba
*
,,,,,,,, aabaaabbbaabaaba
![Page 27: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/27.jpg)
27
LanguagesA language is any subset of
Example:
Languages:
*
,,,,,,,,*
,
aaabbbaabaaba
ba
},,,,,{
,,
aaaaaaabaababaabba
aabaaa
![Page 28: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/28.jpg)
28
Note that:
}{}{
0}{
1}{
0
Sets
Set size
Set size
String length
![Page 29: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/29.jpg)
29
Another Example
An infinite language }0:{ nbaL nn
aaaaabbbbb
aabb
ab
L Labb
![Page 30: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/30.jpg)
30
Operations on LanguagesThe usual set operations
Complement:
aaaaaabbbaaaaaba
ababbbaaaaaba
aaaabbabaabbbaaaaaba
,,,,
}{,,,
},,,{,,,
LL *
,,,,,,, aaabbabaabbaa
![Page 31: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/31.jpg)
31
Reverse
Definition:
Examples:
}:{ LwwL RR
ababbaabababaaabab R ,,,,
}0:{
}0:{
nabL
nbaL
nnR
nn
![Page 32: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/32.jpg)
32
Concatenation
Definition:
Example:
2121 ,: LyLxxyLL
baaabababaaabbaaaab
aabbaaba
,,,,,
,,,
![Page 33: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/33.jpg)
33
Another OperationDefinition:
Special case:
n
n LLLL
bbbbbababbaaabbabaaabaaa
babababa
,,,,,,,
,,,, 3
0
0
,, aaabbaa
L
![Page 34: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/34.jpg)
34
More Examples
}0:{ nbaL nn
}0,:{2 mnbabaL mmnn
2Laabbaaabbb
![Page 35: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/35.jpg)
35
Star-Closure (Kleene *)
Definition:
Example:
210* LLLL
,,,,
,,,,
,,
,
*,
abbbbabbaaabbaaa
bbbbbbaabbaa
bbabba
![Page 36: Formal Languages Models of Computation](https://reader036.vdocuments.us/reader036/viewer/2022062315/56814de2550346895dbb4fc1/html5/thumbnails/36.jpg)
36
Positive Closure
Definition:
*
21
L
LLL
,,,,
,,,,
,,
,
abbbbabbaaabbaaa
bbbbbbaabbaa
bba
bba