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

Notes: 15 April 2002

Schedule
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 655 University of Virginia
Department of Computer Science
CS 200: Computer Science
David Evans
evans@virginia.edu
Using these Materials