Professional Documents
Culture Documents
2
2
computer science
Recursive languages
A recursive language is a formal language for which there exists a Turing
machine (or other computable function) that will always halt and accept when
presented with any string in the language as input, and will always halt and
reject when presented with a string not in the language. In other words, a
recursive language is a language that can be decided by a Turing machine.
Recursive languages are also called Type-0 languages in the Chomsky hierarchy
of formal languages. All regular, context-free, context-sensitive, and recursive
languages are recursively enumerable. The class of all recursively enumerable
languages is called RE.
Recursively enumerable languages
A recursively enumerable language is a formal language for which there exists
a Turing machine (or other computable function) that will enumerate all valid
strings of the language. In other words, a recursively enumerable language is a
language that can be generated by a Turing machine.
Recursively enumerable languages are also known as Type-0 languages in the
Chomsky hierarchy of formal languages. All regular, context-free, context-
sensitive, and recursive languages are recursively enumerable. The class of all
recursively enumerable languages is called RE.
Relationship between recursive and recursively enumerable languages
Every recursive language is also recursively enumerable. However, not every
recursively enumerable language is recursive. In other words, the class of
recursive languages is a subset of the class of recursively enumerable
languages.
The difference between recursive and recursively enumerable languages is that
a recursive language must have a Turing machine that always halts, while a
recursively enumerable language only needs to have a Turing machine that
halts when presented with a string in the language.
Examples of recursive languages
The set of all positive integers.
The set of all strings over the alphabet {0, 1} that are divisible by 2.
The set of all palindromes.
Examples of recursively enumerable languages
The set of all halting Turing machine programs.
The set of all true theorems of propositional logic.
The set of all Gödel numbers.
Universal Turing Machine
In the realm of theoretical computer science, the concept of a universal Turing
machine (UTM) stands as a groundbreaking innovation. Conceptualized by Alan
Turing in 1936, this theoretical device possesses the remarkable ability to
simulate the computations of any other Turing machine. This remarkable
property elevates the UTM to a position of unparalleled significance in the field
of computer science.
@At the heart of the UTM's functionality lies its ability to interpret and execute
instructions encoded on a tape. As it processes this input, the UTM transitions
through a series of states, each associated with a specific set of actions. These
actions may involve modifying the tape's contents, changing the machine's
state, or halting the computation.
@The UTM's versatility stems from its ability to manipulate symbols on the
tape, effectively mimicking the operations of other Turing machines. By
encoding the instructions of another Turing machine onto its tape, the UTM can
effectively replicate the behavior of that machine, performing the same
computations.
@The UTM's significance extends beyond its ability to simulate other Turing
machines. It serves as a fundamental model of computation, providing a
theoretical framework for understanding the limits and capabilities of
computation. The Church-Turing thesis, a cornerstone of theoretical computer
science, asserts that any computation that can be performed by an algorithm
can also be performed by a UTM. This profound statement highlights the UTM's
role as a universal computational device.
@The UTM's impact on the field of computer science is undeniable. Its
theoretical underpinnings have guided the development of modern computers
and programming languages. Its ability to simulate any other Turing machine
has paved the way for the creation of complex computational models.
(PDA) & (NPDA)