Teoría da computación

[miniatura|Representación artística dunha [máquina de Turing, empregadas adoito como modelos teóricos para a computación]]
En informática teórica e matemáticas, a **teoría da computación** é a rama que estuda como de eficientemente poden resolverse os problemas nun modelo de computación, empregando un algoritmo. O campo divídese en tres áreas principais: a teoría e linguaxe de autómatas, a teoría da computabilidade e a teoría da complexidade computacional, que están ligadas pola pregunta: "*cales son as capacidades fundamentais e as limitacións das computadoras?*".

Para establecer un estudo rigoroso sobre a computación, os científicos computacionais traballan cunha abstracción matemática de computadoras denominada modelo de computación. Existen varios modelos en uso, mais o máis comunmente examinado é a máquina de Turing. Os científicos computacionais estudan a máquina de Turing porque é sinxela de formular, pode ser analizada e empregada para demostrar resultados e representa o que a maioría considera o posible modelo "razoable" máis poderoso de computación (tese de Church-Turing). Pode parecer que a capacidade de memoria potencialmente infinita é un atributo irrealizable, pero calquera problema decidible resolto mediante unha máquina de Turing requirirá só unha cantidade finita de memoria. Así, en principio, calquera problema que se poida resolver (decidir) mediante unha máquina de Turing pode ser resolto mediante unha computadora cunha cantidade finita de memoria.

## Historia 
A teoría da computación pode considerarse como a creación de modelos de todas as clases no campo da informática. Polo tanto, emprégase a lóxica matemática. No século XX converteuse nunha disciplina académica diferente e separada das matemáticas.

Algúns pioneiros neste campo foron Alonzo Church, Kurt Gödel, Alan Turing, Stephen Kleene, John von Neumann e Claude Shannon.

## Ramas 
### Teoría de autómatas 
A teoría de autómatas é o estudo de máquinas abstractas e problemas de computación que poden resolverse mediante as máquinas abstractas chamadas autómatas. O vocábulo "autómata" procede da palabra grega Αυτόματα, que significa que algo está facendo algo por el mesmo. A teoría de autómatas está moi relacionada coa teoría da linguaxe formal, xa que os autómatas adoitan clasificarse segundo a clase de linguaxe formal que son capaces de recoñecer.

### Teoría da computabilidade 
A teoría da computabilidade estuda principalmente que alcance dun problema é resoluble cunha computadora. A afirmación de que o problema da parada non pode ser resolto por unha máquina de Turing é un dos máis importantes resultados da teoría da computabilidade, xa que é un exemplo dun problema concreto que é simple de formular e imposible de resolver cunha máquina de Turing.

Outro chanzo importante na teoría da computabilidade foi o teorema de Rica, que afirma que para todas as propiedades non triviais das funcións parciais, é indecidible se unha máquina de Turing computa unha función parcial con esa propiedade.

A teoría da computabilidade está moi relacionada coa rama da lóxica matemática chamada teoría da recursión, que suprime a restrición de estudar só modelos de computación reducibles ao modelo de Turing.

### Teoría da complexidade computacional 
miniatura|Representación da relación entre clases de complexidade
A teoría da complexidade considera non só se un problema pode ou non ser resolto nunha computadora, senón como de eficientemente pode ser resolto. Considéranse dous aspectos principais: a complexidade do tempo e a complexidade do espazo, que son respectivamente cantos pasos son necesarios para establecer unha computación e canta memoria se requira para realizala.

## Notas 
## Véxase tamén 
### Bibliografía 
* Hopcroft, John E., e Jeffrey D. Ullman (2006). *Introduction to Automata Theory, Languages, and Computation. 3rd ed*  Reading, MA: Addison-Wesley. ISBN 978-0-321-45536-9
* 
* 
* Hein, James L. (1996) *Theory of Computation.*  Sudbury, MA: Jones & Bartlett. ISBN 978-0-86720-497-1
* Taylor, R. Gregory (1998). *Models of Computation and Formal Languages.*  Nova York: Oxford University Press. ISBN 978-0-19-510983-2
* Lewis, F. D. (2007). *Essentials of theoretical computer science*
* Martin Davis, Ron Sigal, Elaine J. Weyuker, *Computability, complexity, and languages: fundamentals of theoretical computer science*, 2nd ed., Academic Press, 1994, ISBN 0-12-206382-1

### Outros artigos 
* Teoría da computabilidade
### Ligazóns externas 
* Theory of Computation no MIT
* Theory of Computation en Harvard
* Computability Logic