# What is the theory of computation?

Computation is the movement and alteration which occurs during the transition of data or the processing of data based on a set of operations.

The theory of computation includes the fundamental mathematical properties of computer hardware, software and their applications. It is a computer science branch which deals with how a problem can be solved efficiently by using an algorithm on a model of computation.

The theory of computation field is divided into three concepts, which are as follows −

• Automated theory and language.
• Computability theory.
• Complexity theory.

Let us understand these concepts in detail.

## Automated Theory and language

It deals with the definition and properties of various mathematical models of computers.

For example,

• Finite Automata − These are used in compilers, hardware design and text processing.
• Context free grammar − These are used to define the programming languages and in artificial intelligence.
• Turing machine − These are simple abstract models of a real computer.

## Computability theory

Computability theory deals with what can and cannot be computed by the model respectively. The theoretical models are proposed in order to understand the solvable and unsolvable problems which lead to the development of the real computers.

## Complexity theory

Complexity theory groups the computable problems based on their hardness.

For example,

• Any problem is easy, if it is solved efficiently. For example, sorting sequence, searching name.
• Any problem is hard, if it cannot be solved efficiently. For example, factoring a 500-digit integer into its prime factor.

The main purpose of theory of computation is to develop a formal mathematical model of computation that reflects the real world computers.

## Applications of Theory of computation

The theory of computation is applied in the following −

• Traffic lights.
• Lifts and elevators.
• Marketing.
• Compilers.
• Cloud computing.