# Introduction of Theory of Computation

Automata theory (also known as Theory Of Computing) is a computer science and mathematics theoretical area that focuses on the logic of computation in the context of fundamental machines or automata.
Scientists can utilize Automata to discover how machines solve problems and calculate functions. Automata Theory’s main purpose was to provide tools for both describing and understanding discrete systems’ dynamic behavior.
Automata” came from the word “Automaton,” which relates to “Automation.”
Let’s have a look at some of the most important and often used terms in computational theory.
The field of computing theory has three concepts.
Automated theory and language, Computability theory, Complexity theory.
Let us take a closer look at these ideas.

## Automated theory and language:

It basically covers the definitions and properties of several computer mathematical models.
For instance:
Finite Automata − Compilers, hardware design, and text processing are all examples of finite automata.
Context free grammar − These are used to define computer languages and artificial intelligence systems.
Turing machine − These are rudimentary abstract versions of real computers known as Turing machines.

## Computability theory:

The concept of computability refers to what the model can and cannot do. Theoretical models are there in order to comprehend the solvable and intractable difficulties that led to the creation of real computers.

## Complexity theory in Theory of Computation:

The hardness of a problem is to classify it in complexity theory.
For example:
If one can solve a problem efficiently, it is simple. Sorting by name, for instance.
It is difficult to solve if we cannot solve a problem quickly. A 500-digit number, for example, we can factor into its prime factor.
The basic goal of computational theory is to create a formal mathematical computation model that represents real-world computers.

## Basic Terminologies in Theory of Computation:

Symbol: The smallest building piece, a symbol (or a character), can be any alphabet, letter, or image.
Alphabets (Σ) are basically a collection of symbols that are always finite.
A string is a finite sequence of symbols from a certain alphabet. The letter w commonly symbolizes a string and its length is the letter |w|.
Language: A language is a collection of strings chosen from a set of Σ* or, in other words, a subset of Σ*. A finite or infinite language, we can build over ‘Σ’.