Conceito
Teoria da computação é um ramo responsável em lidar com a eficiência que problemas podem ser resolvidos em um modelo computacional, usando algoritmos.
Cientistas da computação trabalharam com uma abstração matemática de computadores chamado modelo de computação. Diferentes modelos foram propostos, mas utilizado é a Máquina de Turing.
A teoria da computação é o ramo que estuda os modelos genéricos de computação, assim como os limites da computação.
O modelo computacional atual é incapaz de reconhecer a linguagem humana direta, pois é uma linguagem ambígua, ou seja, uma mesma palavra pode representar diferentes significados de acordo com o contexto.
Linguagens Formais
Com objetivo de aproximar a linguagem humana das linguagens compreensíveis pelos computadores, foram criadas as linguagens de programação. Estas são linguagens formais, que visam remover todo tipo de ambiguidade, garantindo que cada palavra reservada tenha uma unica função independente de onde seja usada. Assim como a linguagem humana, as linguagens formais também possuem sua própria gramática.