University of Virginia, Department of Computer Science
CS200: Computer Science, Spring 2003

Notes: Wednesday 9 April 2003
Schedule

Design Reviews
You should come to your design review prepared to answer these questions:
Models of Computation
What is a model?






What do we need to model computation?






Finite State Machine
FSM ::= <Alphabet, States, InitialState, HaltingStates, TransitionRules>
Alphabet ::= { Symbol* }
    A set of symbols for the input.
States ::= { StateName* }
InitialState ::= StateName
    Must be one of the states in States.
HaltingStates ::= { StateName* }
    Must all be states in States.
TransitionRules ::= { TransitionRule* }
TransitionRule ::= < StateName, Symbol, StateName>
    StateName X SymbolStateName


Turing Machine
TM ::= <Alphabet, Tape, TFSM>

Alphabet ::= { Symbol*}
    A set of symbols for the tape.

Tape ::= < LeftSide, OneSquare, RightSide >
OneSquare ::= Symbol | #
LeftSide ::= [ Squares* ]
    Everything to left of LeftSide is #. RightSide ::= [ Squares* ]
    Everything to right of RightSide is #. Squares ::= OneSquare, Squares
Squares ::=

TFSM ::= <States, InitialState, HaltingStates, TransitionRules>
    Like a FSM, except the transition rules write to the tape and move the tape head.

States ::= { StateName* }
InitialState ::= StateName    Must be one of the states in States.
HaltingStates ::= { StateName* }    Must all be states in States.
TransitionRules ::= { TransitionRule* }
TransitionRule ::= < StateName, OneSquare, StateName, OneSquare, Direction>
    StateName X OneSquareStateName X OneSquare X Direction

Universal Turing Machine

A Turing Machine that can simulate any other Turing Machine on an input: TMU (P, I) = the output of running TM-P on input I

Links
CS 200


CS 200: Computer Science
Department of Computer Science
University of Virginia

Circle Fractal by Ramsey Arnaoot and Qi Wang

cs200-staff@cs.virginia.edu
Using these Materials