CS 3240 Chuck Allison Theory of Computation Abstract
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 CS 3240 - Introduction 2
Formal Languages 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
Operations on Strings Length operator If x = abaa, then |x| = 4 Concatenation If y = bab then xy = abaabab Replication (concatenation with self) a 3 = aaa x 2 = abaa Note: the empty string is denoted by λ xλ = λx = x, x 0 = λ CS 3240 - Introduction 4
Star Closure The * 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 “Proper order” Example: Alphabet, Σ = {a, b} Σ* = {λ, a, b, aa, ab, ba, bb, aaa, aab, …} Always an infinite set Always includes λ CS 3240 - Introduction 5
Operations on 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} L 0 = {λ}, L 1 = L, L 2 = {aa, abb, bba, bbbb} CS 3240 - Introduction 6
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 7
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 recursive rule is necessary to generate an infinite language See next 3 slides CS 3240 - Introduction 8
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 9
Generating (“Deriving”) a Sentence <S> => the <NP> <VP> => the <ADJ> <NP> <VP> => the slow dead <N> <VP> => the slow dead student <V> <ADV> => the slow dead student drank happily CS 3240 - Introduction 10
A Grammar for n n ab, n≥ 0 S => a. Sb | λ S => a. Sb => aa. Sbb => aaa. Sbbb => aaabbb CS 3240 - Introduction 11
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 12
General Automata Model Figure 01. 04: CS 3240 - Introduction 13
An Accepter for CS 3240 - Introduction * * a bb 14
An Incrementer Transducer Section 1. 3 A machine with output (aka “transducer” or “Mealy machine”) CS 3240 - Introduction 15
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 16
Figure 01. 07:
Figure 01. 09:
Automatic Door Application Front pad Rear, Neither, Both Rear pad Front, Rear, Both Front closed open Neither CS 3240 - Introduction 19
Scope of Course Language Machine Grammar Regular Finite Automaton Regular Expression, Regular Grammar Context-Free Pushdown Automaton Context-Free Grammar Recursively Enumerable Turing Machine Unrestricted Phrase. Structure Grammar CS 3240 - Introduction 20
- Slides: 20