What are recursive languages?
The theory of computing defines two higher sets of languages: recursively enumerable and recursive. Recursively enumerable languages are the universal set of all the languages, and the remaining languages are their subsets.
Recursively enumerable languages
Recursively enumerable languages are those whose strings the Turing machine (TM) accepts. These strings may do one of the following:
Halt and accept
Halt and reject
Loop forever
Turing machines for recursively enumerable languages may not always halt, and continue to run endlessly for strings that are not a part of that language. Recursively enumerable languages are also called Turing recognizing languages.
Recursive languages
Recursive languages are those whose strings are accepted by a
Halt and accept
Halt and reject
A TM of a recursive language never goes into a loop and always halts in every case. Recursive languages are hence also called Turing decidable languages.
Note: To learn more about turing machines, we can click here.
Closure properties
Some closure properties of recursive languages are as follows:
Union: The union of two recursive languages
and is also a recursive language. This is, if the TM accepts any one of the languages, it also accepts .
Intersection: The intersection of two recursive languages
and is also a recursive language. This is, if the TM accepts both languages, it also accepts .
Complement: The complement of a recursive language
is also a recursive language. This is, if the TM accepts , it rejects it as a final output.
Kleene's closure: The Kleene's closure of a recursive language
is also recursive. This is, if is recursive, then is also recursive.
Note: All recursively enumerable languages are recursive, but not vice versa.
Free Resources