1.4 Theory of computation Flashcards
Define automation
Creating a computer model of a real-life situation and putting it into action
Define representational abstraction
The process of removing unnecessary details so that only information that is required to solve the problem remains
Define abstraction by generalisation / categorisation
The concept of reducing problems by putting similar aspects of a problem into hierarchical catgegories
Define top-down design
Starts with the main system at the top and breaks it down into smaller units
Define functional abstraction
Breaking down a complex problem into a series of reusable functions
Define data abstraction
Hiding how data is represented so that it is easier to build a new kind of data object, for example building a stack from an array
Define problem abstraction
Removing unnecessary details in a problem until the underlying problem is identified to see if this is the same as a problem that has already been solved
Define information hiding
The process of hiding all details of an object that do not contribute to its essential characteristics
Define finite state machine
Any device that stores its current status and whose status can change as the result of an input. Mainly used as a conceptual model for designing and describing systems. There are a finite number of transitions that may take place
What is a state transition diagram?
A visual representation of an FSM using circles and arrows
Define accepting state
The state that identifies whether an output has been accepted
Define state transition table
A tabular representation of an FSM showing inputs, current state, and next state
Define Mealy machine
A type of finite state machine with outputs
What is a Turing machine?
A theoretical model of computation
What is the alphabet of a Turing machine?
The acceptable symbols (characters, numbers) for a given Turing machine
Define read/write head
The theoretical device that writes or reads from the current cell of tape in a Turing machine
Define halting state
The state that stops a Turing machine
Define start state
The initial state of a Turing machine
Define transition function/rule
A method of notating how a Turing machine moves from one state to another and how the data on the tape changes
Define state transition diagram
A visual representation of the transition function of a Turing machine
How does a Turing machine operate?
- Tape divided into an infinite number of cells which are used as memory
- Each cell will contain a symbol, either a character or number, the range of acceptable symbols is the alphabet
- The read/write head can either read what is in the cell, write to the cell, or erase its contents
- The tape can move left or right one cell at a time so every cell is accessible by a read/write head
- The machine can halt at any point if it enters the halting state or if the whole input has been processed
What is needed to represent programs with a Turing machine?
- A start state
- A halting state
- An alphabet
- Movement
- A transition function
Define instruction table
A method of describing a Turing machine in tabular form
Define universal machine
A machine that can simulate a Turing machine by reading a description of the machine along with the input of its own tape