12Models of computation
Automata theory and formal languagesTuring machine
Computability
Algorithm
Complexity
12Models of computation
Automaton is model of computerinput/output functionstand alonebatch process
Add notion of interaction ->concurrency theory, process theory
12Thesis
Process theory is just as important to every computer science student as automata theory
Can be taught together in every undergraduate curriculum
Analogies help, standardization can ensue
12From automata theory:A regular language:
deterministic finite automatonnon-deterministic finite automatonright-linear grammarleft-linear grammarregular expression
12From process theory:A regular process:
deterministic finite automatonnon-deterministic finite automatonright-linear grammarleft-linear grammarregular expression
12A regular process
A finite transition system modulo bisimulationedge-labeled, initial state, set of final
statesA finite guarded linear recursive specification:
action prefix+recursion01
12A regular expression
Not all regular processes can be described by a regular expression (w.r.t. bisimulation)
12
X = a.Y + 1Y = b.X + 1
X = a.Y + 1 = a.(b.X + 1) + 1 = a.b.X + a.1 + 1X = (ab)*(a.1 + 1)Y = b(ab)*(a.1 + 1) + 1= left distributivity of • over + holds in language equivalence
Exampleb
a
12Milner 1984
Not for bisimulation equivalence.
Question: which finite behaviours are bisimulation equivalent to a regular expression?
Answer: well-behaved ones
B, Corradini, Grabmayer. JACM 2007.
12Regular expressions
+ choice
• sequential composition
0 inaction, 1 skip, a action
* iteration
So, not recursion
12Need conditional rule
RSP*: x = y•x + z x = y*z
guarded, i.e.
y does not have the empty word property,
y ≠ y + 1
12What is a context-free process?
A guarded recursive specification over TSP:
+ choice
• sequential composition
0 inaction
1 skip
a action (prefix)
12A push-down automaton?
Theorem: any context-free process is bisimulation equivalent to a regular process communicating with a stack.
12Different classes of processes
Regular: action, +, 0, 1
Context-free: add seq. comp.Basic parallel: add ||, no communicationBasic communicating: add || with comm.Parallel: add seq.comp. to basic parallelCommunicating: add seq.comp. to basic
comm.
12A non-theorem
Theorem: any basic parallel process is bisimulation equivalent to a regular process communicating with a bag.
Problem: need to detect termination.Bag with termination is not basic
parallel.
12Turing machine
Theorem: any computable process is bisimulation equivalent to a regular process communicating with two stacks.
B, Bergstra, Klop, TCS 1987.
12Another question
What set of processes do you get as a regular process communicating with a queue (with termination)?
A queue is a communicating process, only if arbitrary communication is allowed (or binary communication plus renaming).