Un lenguaje de programación se considera Turing Complete si puede simular cualquier Turing Machine de una sola cinta. De acuerdo con la Tesis de Church-Turing, cualquier operación matemática es informalmente computable (solucionable, posible, tiene sentido en el mundo real) si y solo si es computable por una Máquina de Turing. Por lo tanto, un lenguaje Turing Complete es capaz de completar cualquier operación matemática imaginable (dada la memoria y el tiempo ilimitados). A la inversa, un lenguaje completo que no sea de Turing solo es capaz de completar un subconjunto de operaciones matemáticas imaginables.
“¿Es ‘importante?'”, Pregunta Warren.
Depende de lo que estés tratando de hacer. ¿Necesita una prueba formal de que, por ejemplo, Java es Turing Complete para escribir una aplicación web de pedidos de pizza? Probablemente no. Sin embargo, si comienza a utilizar algunos de los lenguajes de programación puramente funcionales más esotéricos que existen, se separa de una clase de problemas que puede resolver.
Sin embargo, si está utilizando algunos de los lenguajes puramente funcionales más esotéricos, probablemente también sepa en qué se está metiendo.
- ¿Cuál es la sabiduría colectiva de la India?
- ¿Cuál es el mejor argumento para el antinatalismo (en contra de la permisibilidad ética de la procreación)?
- ¿Por qué está Platón en contra de los artistas si cree que pueden ser inspirados por Dios (por ejemplo, Homero)?
- ¿Cuál es nuestro mejor objetivo como humanidad?
- ¿Qué significa el término «posmoderno» en la cultura popular?