¿Qué tan importante es que un lenguaje de programación sea Turing completo?

Los idiomas que no están completos en Turing son bastante limitados. El lenguaje completo no Turing más utilizado son las expresiones regulares. Son bastante útiles, pero claramente extremadamente limitados. Ni siquiera son capaces de realizar operaciones aritméticas básicas.

SQL tampoco es Turing completo.

La programación de uso general siempre requerirá un lenguaje completo de Turing. Es capaz de expresar cualquier cosa que una computadora pueda hacer. Hacer un lenguaje completo de Turing no es difícil; Por lo general, solo requiere agregar algún tipo de memoria de acceso arbitrario y una pila (a través de la recursión u otra estructura de bucle indefinido).

Los sub-idiomas como REs o SQL tendrán un nicho dentro de esos idiomas, permitiendo que ciertas operaciones se expresen fácilmente, con la propiedad conveniente de terminación garantizada. Pero no se pueden expresar grandes clases de problemas importantes, por lo que deben integrarse en idiomas más grandes.

Hay lenguajes de programación funcionales totales que intentan dividir la diferencia; Con la adición de primitivas para hacer el trabajo como la aritmética, puede llegar bastante lejos sin encontrar problemas. Sin embargo, ninguno de estos ha despegado particularmente.

Es como pan y mantequilla para que el programador no lo complete. así que sí, es un gran problema.