Chapter 1

advertisement
CS 3240 – Chuck Allison

A model of computation
 A very simple, manual computer (we draw
pictures!)

Our machines: automata
 1) Finite automata (“finite-state machines”)
 2) Push-down automata
 3) Turing Machines
CS 3240 - Introduction
2


Meaningless sets of strings
We study their syntax properties
 Not interested in semantics

Example:
 The language over the alphabet* {a, b} with a run
of a’s followed by an equal-length run of b’s
 anbn = {ab, aabb, aaabbb, …}
* An alphabet is a finite
set of symbols.
CS 3240 - Introduction
3

Length operator
If x = abaa, then |x| = 4

Concatenation
 If y = bab then xy = abaabab

Replication (concatenation with self)
 a3 = aaa
 x2 = abaaabaa

Note: the empty string is denoted by λ
 xλ = λx = x, x0 = λ
CS 3240 - Introduction
4

Also called “Kleene closure” or “Kleene star”
 (roughly pronounced “CLAY-nee”)


The set of all possible concatenations of
elements of a set, taken zero or more times
Example:
 Alphabet, Σ = {a, b}
“Proper order”
 Σ* = {λ, a, b, aa, ab, ba, bb, aaa, aab, …}
 Always an infinite set
 Always includes λ
CS 3240 - Introduction
5


Languages are just sets of strings
You can therefore do set operations on them:
 union, intersection, difference, cartesian product

Let L = {a, bb}, M = {aa, b}
 L ∪ M = {a, b, aa, bb}
 L∩M=∅
(in this case)
 L - M = L, M – L = M
(in this case)
 LM = {ab, aaa, bbb, bbaa}, ML = {ba, aaa, bbb, aabb}
 L0 = {λ}, L1 = L, L2 = {aa, abb, bba, bbbb}
CS 3240 - Introduction
6

Complement: L
 L’ = ∑* - L = {λ, b, aa, ab, ba, aaa, …}

Star Closure:
 L* = {λ, a, aa, bb, aaa, abb, bba, aaaa, …}

Positive Closure (one or more):
 L+ = {a, aa, bb, aaa, abb, bba, aaaa, …}
 Just missing λ
 Equivalent to LL* = L*L
CS 3240 - Introduction
7

A set of rules for generating strings
(“sentences”) in a language
 A symbol on the left of the rule can be replaced by
the string on the right


A recursive rule is necessary to generate an
infinite language
See next 3 slides
CS 3240 - Introduction
8







<S> => the <NP> <VP>
<NP> => <N> | <ADJ> <NP>
<VP> => <V> | <V> <ADV>
<N> => dog | cat | professor | student | rat
<V> => ran | ate | slept | drank
<ADJ> => red | slow | dead
<ADV> => quickly | happily | well
Start with <S> (the “start symbol”)
CS 3240 - Introduction
9







<S> => the <NP> <VP>
=> the <ADJ> <NP> <VP>
=> the <ADJ> <ADJ> <NP> <VP>
=> the slow dead <N> <VP>
=> the slow dead student <VP>
=> the slow dead student <V> <ADV>
=> the slow dead student drank happily
CS 3240 - Introduction
10

S => aSb | λ

S => aSb => aaSbb => aaaSbbb => aaabbb
CS 3240 - Introduction
11

A finite automaton is a finite-state machine
 It reads an input string 1 letter at a time
 Different inputs place the machine in different states

Machines that emit output as they move from
state-to-state are called transducers
 aka “Mealy Machines”

Machines that just answer “yes” or “no”
(depending on the state they finish in) are called
accepters
CS 3240 - Introduction
12
Figure 01.04:
CS 3240 - Introduction
13
CS 3240 - Introduction
14
A machine with output
(aka “transducer” or
“Mealy machine”)
CS 3240 - Introduction
15



Adds two bit strings according to the rules of
arithmetic
Traverses digits right-to-left
The output is either a 0 or 1 (duh)
 but we also have to track whether we carry or not
 leads to two states (carry vs. no-carry)

See next two slides
CS 3240 - Introduction
16
Figure 01.07:
Figure 01.09:
Front
pad
Rear,
Neither,
Both
Rear
pad
Front,
Rear,
Both
Front
closed
open
Neither
CS 3240 - Introduction
19
Language
Machine
Grammar
Regular
Finite Automaton
Regular Expression,
Regular Grammar
Context-Free
Pushdown Automaton
Context-Free
Grammar
Recursively
Enumerable
Turing Machine
Unrestricted PhraseStructure Grammar
CS 3240 - Introduction
20
Download