Se dice que la teoría de la computabilidad también se llama teoría de la recursividad. ¿Por qué se llama así? ¿Por qué la recursión tiene tanta importancia?
fuente
Se dice que la teoría de la computabilidad también se llama teoría de la recursividad. ¿Por qué se llama así? ¿Por qué la recursión tiene tanta importancia?
En las décadas de 1920 y 1930, la gente intentaba descubrir qué significa "calcular efectivamente una función" (recuerde, no había máquinas informáticas de uso general, y la informática era algo que hacían las personas).
Se propusieron varias definiciones de "computable", de las cuales tres son mejor conocidas:
Estos resultaron definir la misma clase de funciones teóricas numéricas. Debido a que las funciones recursivas son más antiguas que las máquinas de Turing, y el cálculo aún más antiguo no se aceptó de inmediato como una noción adecuada de computabilidad, el adjetivo "recursivo" se utilizó ampliamente (funciones recursivas, conjuntos recursivos, conjuntos recursivamente enumerables, etc.)
Más tarde, hubo un esfuerzo, popularizado por Robert Soare , para cambiar "recursivo" a "computable". Por lo tanto, hoy en día hablamos de funciones computables y conjuntos computablemente enumerables. Pero muchos libros de texto antiguos, y muchas personas, todavía prefieren la terminología "recursiva".
Demasiado para la historia. También podemos preguntarnos si la recursividad es importante para el cálculo desde un punto de vista puramente matemático. La respuesta es un "sí" muy definitivo. La recursión se basa en los lenguajes de programación de propósito general (incluso los while
bucles son solo una forma de recursión porque while p do c
es lo mismo if p then (c; while p do c)
), y muchas estructuras de datos fundamentales, como listas y árboles, son recursivas. La recursión es simplemente inevitable en informática y específicamente en la teoría de la computabilidad.
La teoría de la computabilidad es el estudio de funciones computables :-).
Dichas funciones generalmente se definen (en esta comunidad) como funciones que se pueden expresar con una máquina de Turing.
Más formalmente, una función es computable si existe un Turing tal que si la entrada a es la salida de es
Resulta que si define funciones computables de esta manera (programas) son equivalentes al conjunto de funciones que uno puede obtener usando las reglas descritas aquí . Se llaman funciones recursivas ya que una de las reglas para obtener tales funciones es una definición recursiva (ver la 5ta regla en wikipedia).
Entonces, la razón por la cual la teoría de la recursividad tiene tanta importancia es equivalente a la pregunta de por qué son importantes las funciones computables. Y la respuesta a esto último debería ser bastante obvia :)