There are two types of languages in the theory of computation (TOC), which are as follows −
A problem is called decidable, when there is a solution to that problem and also can construct algorithms corresponding to that.
Find all the odd numbers in the range from 1 to 50.
For this problem, we can easily find a solution by constructing an algorithm. In terms of Turing Machine (TM), if a problem is decidable, then the Turing machine halts whether or not it accepts its input.
In terms of finite automata (FA), decidable refers to the problem of testing whether a deterministic finite automata (DFA) accepts an input string. A decidable language corresponds to algorithmically solvable decision problems.
A language L over Σ is called decidable if,
There exist a Turing Machine M, that accepts language L
w€Σ*, M halts
For the Recursive Language
A language ‘L’ is said to be recursive if there exists a Turing Machine which will accept all the strings in ‘L’ and reject all the strings not in ‘L’.
The TM will halt every time and give an answer either accepted or rejected for each and every input.
Recursively Enumerable languages −
A language ‘L’ is said to be recursively enumerable if there exists a TM which accepts and halt for all input in ‘L’.
But may or may not halt for all input, which are not in ‘L’.
A Language ‘L’ is decidable if it is a recursive language.
All decidable languages are recursive languages and vice versa.
The diagram given below explains the decidable language −