Enumerator (computer science)
Appearance
An enumerator is a Turing machine that lists, possibly with repetitions, elements of some set S, which it is said to enumerate. A set enumerated by some enumerator is said to be recursively enumerable.
Formal definition
An enumerator is usually represented as a 2-tape Turing machine. One working tape, and one print tape. It can be defined by a 7-tuple, following the notation of a Turing machine: where
- is a finite, non-empty set of states.
- is a finite, non-empty set of the output / print alphabet
- is a finite, non-empty set of the working tape alphabet
- is the transition function.
- is the start state
- is the print state.
- is the reject state with
Equivalence of Enumerator and Turing Machines
A language over a finite alphabet is Turing Recognizable if and only if it can be enumerated by an enumerator. Sipser, Michael (2012). Introduction to the Theory of Computation - International Edition. ISBN 978-1-133-18781-3.