In this article, we are going to describe the basics concepts of the restricted Turing machine and for basic understanding, you can first read the pre-requisite which will help you to understand the topic clearly.

**Prerequisite –** Turing Machine

- Turing Machine accepts the recursively enumerable language. It is more powerful than any other automata such as FA, PDA, and LBA. It computes the partial recursive function. It can be further divided into Deterministic Turing Machine(DTM) or Non-Deterministic Machine(NTM). By default, Turing Machine is DTM, and the power of DTM and NTM are the same.
- This machine acts as a Recognizer or Acceptor and as an Enumerator.
- The machine is said to be as acceptor which accepts or recognizes the strings of a recursively enumerable language (L) over the input alphabet(∑ ) and the machine is said to be as enumerator which enumerates the string of recursively enumerable language over the input alphabet ∑.

The restricted Turing machines can be of the following types :

**Halting Turing Machine :**

A Turing Machine is said to be a halting Turing machine if it always halts for every input string. It can accept the recursive language and is less powerful than Turing machine.**Linear Bounded Automata :**

It behaves as a Turing machine but the storage space of tape is restricted only to the length of the input string. It is less powerful than a Turing machine but more powerful than push down automata.

**Unidirectional Turing Machine :**

The head of this type of turing machine can move only in one direction. It can accept the only regular language. It has the same power as finite automata but less powerful than push down automata.**Read Only Turing Machine :**

It is equivalent to finite automata. It contains a read head only which doesn’t have written capability. It accepts only regular languages.**Read Only-Unidirectional Turing Machine :**

It is similar to finite automata. It contains a read-only head and can move only in one direction. It accepts a regular language.

Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.

## Recommended Posts:

- Mealy and Moore Machines in TOC
- DFA machines accepting odd number of 0’s or/and even number of 1’s
- Construction of the machines to produce residue modulo ‘2’ of binary numbers
- Moore and Mealy machines to count number of substring ‘ab’
- Moore and Mealy machines to produce 'A', 'B', 'C' depends on inputs that end with ’10’ or with ’11’ else other
- Construction of the machines that produce 'A', 'B', or 'C' if input ends with '1', '0', or nothing
- Construction of finite machines to prints ‘1’ as the output for every occurrence of ‘a’ as a substring
- NFA machines accepting all strings that ends or not ends with substring 'ab'
- Moore Machines implementation in C++
- Turing Machine for subtraction | Set 2
- Construct Turing machine for L = {a
^{n}b^{m}a^{(n+m)}| n,m≥1} - Construct a Turing Machine for language L = {0
^{n}1^{n}2^{n}| n≥1} - Construct a Turing Machine for language L = {ww
^{r}| w ∈ {0, 1}} - Construct a Turing Machine for language L = {ww | w ∈ {0,1}}
- Construct a Turing machine for L = {a
^{i}b^{j}c^{k}| i>j>k; k ≥ 1} - Turing Machine for addition
- Turing machine for multiplication
- Turing machine for subtraction | Set 1
- Turing machine for copying data
- Construct a Turing machine for L = {a
^{i}b^{j}c^{k}| i*j = k; i, j, k ≥ 1}

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.