210 likes | 425 Views
CS 3240 – Chuck Allison. Theory of Computation. Abstract Machines Section 1.2. 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. Formal Languages.
E N D
CS 3240 – Chuck Allison Theory of Computation
Abstract MachinesSection 1.2 • 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
Formal Languages • Meaningless sets of strings • We study their syntaxproperties • 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
Operations on Strings • 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
Star ClosureThe * Operator • 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} • Σ* = {λ, a, b, aa, ab, ba, bb, aaa, aab, …} • Always an infinite set • Always includes λ “Proper order” CS 3240 - Introduction
Operations on Languages • 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
More Operations on Languages • Complement: • 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
Grammars • 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 recursiverule is necessary to generate an infinite language • See next 3 slides CS 3240 - Introduction
A Simple English Sentence Grammar • <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
Generating (“Deriving”) a Sentence • <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
A Grammar for anbn, n ≥ 0 • S => aSb | λ • S => aSb => aaSbb => aaaSbbb => aaabbb CS 3240 - Introduction
Finite Automata • 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
General Automata Model Figure 01.04: CS 3240 - Introduction
An Accepter for a*bb* CS 3240 - Introduction
An Incrementer TransducerSection 1.3 A machine with output (aka “transducer” or “Mealy machine”) CS 3240 - Introduction
A Binary Adder • 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
Frontpad Rearpad Front,Rear,Both Rear,Neither,Both Front closed open Neither Automatic Door Application CS 3240 - Introduction
Scope of Course CS 3240 - Introduction