When Can a Language Be Accepted by a Turing Machine?
This section resolves the multiple-choice statement:
A language may not be accepted by a Turing machine if:
- it is recursively enumerable;
- it is recursive;
- can be enumerated by some Turing machine;
- None of the above.
The correct answer is:
(iv) None of the above.
A language is accepted, or recognized, by a Turing machine precisely when it is recursively enumerable. Every recursive language is also recursively enumerable, and a language that can be enumerated by a Turing machine is recursively enumerable as well.2
Key terms: Language; Recognizer; Recursive language; Enumerator
Footnotes
-
Recursively enumerable language - Definitions of recursively enumerable, recognizable, and the distinction from recursive languages. ↩
-
Recognition and Enumeration, CSE 105 lecture notes - States and explains the theorem that a language is Turing-recognizable if and only if some enumerator enumerates it. ↩
Decidability and Undecidability
1. Acceptance, Recognition, and Decision
Let be a Turing machine and a language. The language accepted by is
A Turing machine accepts or recognizes if:
- for every , eventually halts and accepts;
- for every , may reject or run forever.
Thus, acceptance does not necessarily require the machine to halt on every input. This distinction is essential.
A machine that always halts and gives the correct answer is called a Decider. The language decided by such a machine is called recursive or decidable.
The relationship is:
The first two classes in the diagram are equal in meaning:
However,
The inclusion is proper because some languages are recognizable but not decidable, such as the acceptance problem.
Footnotes
-
Recursively enumerable language - Definitions of recursively enumerable, recognizable, and the distinction from recursive languages. ↩
-
Recursively Enumerable Languages, Turing Machines, and Decidability - Course notes on recognizable languages, undecidability, and the acceptance problem. ↩
2. Recursively Enumerable Languages
A language is recursively enumerable, abbreviated RE, if there exists a Turing machine such that:
and
Therefore, every recursively enumerable language is accepted by some Turing machine.
The word “enumerable” means that the strings in can be generated or listed by a Turing machine. The machine is not required to determine when all strings have been printed, especially when is infinite.
For example, consider
A Turing machine can compare the number of symbols with the number of symbols and accept exactly the strings in . Since this machine can also halt on inputs not in , the language is not merely recursively enumerable; it is recursive.
By contrast, a language such as the halting problem language
is recursively enumerable but not recursive. A universal Turing machine can simulate on and accept if accepts. However, if never accepts, the simulation may continue forever.
Footnotes
-
Recursively Enumerable Languages, Turing Machines, and Decidability - Course notes on recognizable languages, undecidability, and the acceptance problem. ↩
Core Rule
A language is accepted by a Turing machine if and only if it is recursively enumerable. Therefore, option (i) describes a class of languages that can be accepted.
3. Recursive Languages
A language is recursive if there exists a Turing machine such that, for every input :
- if , halts and accepts;
- if , halts and rejects.
The machine must halt in both cases. Consequently, every recursive language is accepted by a Turing machine.
Formally,
A decider is automatically a recognizer: whenever , the decider accepts. The additional guarantee is that the decider also halts and rejects whenever .2
| Property | Recognizer | Decider |
|---|---|---|
| Accepts strings in | Yes | Yes |
| Rejects strings outside | Not necessarily | Yes |
| May loop forever | Yes | No |
| Language class | Recursively enumerable | Recursive |
Thus, option (ii) cannot be correct. A recursive language is always accepted by some Turing machine.
Footnotes
-
Recursively enumerable language - Definitions of recursively enumerable, recognizable, and the distinction from recursive languages. ↩
-
Recursive and Recursively Enumerable Languages - Comparison of recognizers, deciders, recursive languages, and recursively enumerable languages. ↩
Determine Whether a Language Is Accepted
- 1Step 1
Determine whether the statement describes a recursively enumerable, recursive, or non-recursively-enumerable language.
- 2Step 2
If a Turing machine is guaranteed to accept every string in the language, then the language is recursively enumerable and is accepted by that machine.
- 3Step 3
If the machine must halt on every input, the language is recursive. Since every recursive language is recursively enumerable, it is also accepted.
- 4Step 4
If a Turing machine can enumerate exactly the strings in the language, then an input recognizer can simulate the enumerator and accept when the input appears.
- 5Step 5
Only a language that is not recursively enumerable cannot be accepted by any Turing machine. Therefore, among the listed choices, the correct answer is option (iv).
4. Enumeration and Acceptance
An Enumerator is a Turing machine with an output device that prints strings. It enumerates if it prints every string in and never prints a string outside .
A fundamental theorem states:
From an enumerator to a recognizer
Suppose an enumerator prints exactly the strings in . Construct a recognizer :
- Run .
- Whenever prints a string, compare it with the input .
- If the printed string equals , accept.
If , the enumerator eventually prints , so accepts. If , never prints , so may run forever. Therefore, recognizes .
From a recognizer to an enumerator
Suppose recognizes . List all strings over the alphabet in an effective order:
The enumerator simulates on these strings in a dovetailed manner:
- simulate on for one step;
- simulate on for one step each;
- simulate on for one step each;
- continue indefinitely;
- print whenever the simulation of accepts it.
Dovetailing prevents one nonterminating computation from blocking all later computations. Every accepted string is eventually printed.
Therefore, option (iii) also describes a language that can be accepted by a Turing machine.
Footnotes
-
Recognition and Enumeration, CSE 105 lecture notes - States and explains the theorem that a language is Turing-recognizable if and only if some enumerator enumerates it. ↩ ↩2
Do Not Confuse Acceptance with Decidability
A recognizer may loop forever on strings outside its language. A decider must halt on every input. Acceptance requires eventual acceptance of members, not guaranteed rejection of nonmembers.
5. Evaluating the Options
Option (i): is recursively enumerable
This statement means that some Turing machine recognizes . By definition, every string in is eventually accepted.
Therefore, option (i) is not the answer.
Option (ii): is recursive
A recursive language has a decider. A decider is also a recognizer because it accepts every member of the language.
Therefore, option (ii) is not the answer.
Option (iii): can be enumerated by some Turing machine
The enumeration theorem states:
Therefore, option (iii) is not the answer.
Option (iv): None of the above
Since each of options (i), (ii), and (iii) describes a language accepted by a Turing machine, the correct answer is:
More precisely, a language may fail to be accepted by any Turing machine only when it is not recursively enumerable.2
Footnotes
-
Recursively enumerable language - Definitions of recursively enumerable, recognizable, and the distinction from recursive languages. ↩
-
Recognition and Enumeration, CSE 105 lecture notes - States and explains the theorem that a language is Turing-recognizable if and only if some enumerator enumerates it. ↩
Relationship Between Language Classes
Conceptual comparison of guarantees, not numerical measurements
Common Confusions and Edge Cases
Acceptance and Enumerability
6. Final Answer
The statement asks when a language may not be accepted by a Turing machine.
- If is recursively enumerable, it is accepted.
- If is recursive, it is accepted.
- If can be enumerated by a Turing machine, it is accepted because enumerability is equivalent to recursive enumerability.
- Therefore, none of options (i), (ii), or (iii) identifies a language that cannot be accepted.
A more exact formulation is:
A language cannot be accepted by any Turing machine if and only if is not recursively enumerable.
Knowledge Check
Which class of languages is exactly the class of languages accepted by some Turing machine?
Explore Related Topics
CYK Membership Test for the String “baaba”
Hierarchy and Power of Bottom-Up Parsers: SLR, LALR, and CLR
Bottom‑up LR parsers form a strict hierarchy of power: LR(0) < SLR < LALR < CLR, with each level able to handle all grammars of the lower levels.
- SLR uses LR(0) items and resolves conflicts with FOLLOW sets; it is the weakest but simplest LR parser.
- LALR builds full LR(1) items then merges states that share the same core, keeping the same number of states as SLR while adding look‑ahead precision.
- CLR (canonical LR) retains all LR(1) states and look‑aheads, giving it the highest grammar coverage at the cost of many more states.
- Merging CLR states to form LALR can introduce reduce‑reduce conflicts (never shift‑reduce), making LALR strictly less powerful than CLR.
- In practice, tools like Yacc/Bison prefer LALR because it balances power with manageable memory usage.
The Power and Limitations of Turing Machines: Comparison with Pushdown Automata