# What is a recursive and recursively enumerable language?

Data Structure AlgorithmsComputer ScienceComputers

Let us understand the concept of recursive language before learning about the recursively enumerable language in the theory of computation (TOC).

Recursive Language

A language L is recursive (decidable) if L is the set of strings accepted by some Turing Machine (TM) that halts on every input.

Example

When a Turing machine reaches a final state, it halts. We can also say that a Turing machine M halts when M reaches a state q and a current symbol ‘a’ to be scanned so that δ(q, a) is undefined.

There are TMs that never halt on some inputs in any one of these ways, So we make a distinction between the languages accepted by a TM that halts on all input strings and a TM that never halts on some input strings.

Recursive Enumerable Language

A language L is recursively enumerable if L is the set of strings accepted by some TM.

If L is a recursive enumerable language then −

If w ∈ L then a TM halts in a final state,

If w ∉ L then a TM halts in a non-final state or loops forever.

If L is a recursive language then −

If w ∈ L then a TM halts in a final state,

If w ∉ L then TM halts in a non-final state.

Recursive Languages are also recursive enumerable

Proof − If L is a recursive then there is TM which decides a member in language then −

• M accepts x if x is in language L.

• M rejects on x if x is not in language L.

According to the definition, M can recognize the strings in language that are accepted on those strings.