Los idiomas completos que no son de Turing ofrecen una gran ventaja sobre los idiomas completos de Turing, ya que son mucho más analizables y, por lo tanto, ofrecen posibilidades de optimización mucho más amplias. Sin embargo, apenas se usan y la integridad de Turing se vende realmente como una buena característica.
¿Hay algún lenguaje convencional no completo de Turing disponible hoy en día que esté hecho para programación de propósito general?
programming-languages
turing-completeness
MaiaVictor
fuente
fuente
Respuestas:
Hoy en día, no hay idiomas completos multipropósito que no sean Turing completos. Sin embargo, hay varios idiomas específicos de dominio completo que no son de Turing. ANSI SQL, expresiones regulares, lenguajes de datos (HTML, CSS, JSON, etc.) y expresiones s son algunos ejemplos notables.
Realmente no hay un beneficio para los lenguajes completos multipropósito que no son de Turing. El aspecto "mucho más analizable", que supongo es un guiño al teorema de Rice, se aplica, pero no tiene mucho sentido para los idiomas que se dirigen a varios dominios de aplicación diferentes, otros requisitos tienen prioridad. La flexibilidad de la integridad de Turing es mucho más importante que su complejidad. Los lenguajes de programación, como cualquier otra pieza de software, tienen que ver con compensaciones.
Para lenguajes específicos de dominio, por otro lado, podría ser al revés. Si no está creando "un idioma para gobernarlos a todos", puede implementar solo las funciones que tengan sentido para el propósito específico de su idioma. Y la mayoría de las veces, la integridad de Turing no es una de ellas.
fuente
La razón por la cual los lenguajes incompletos de Turing no son convencionales es que es fácil implementar el suyo propio cuando lo necesite y como lo necesite. Un ejemplo interesante es el script de bitcoin: https://github.com/bitcoin/bitcoin/blob/master/src/script.cpp
fuente