No está claro qué quiere decir con un "lenguaje de programación" y "una implementación de un lenguaje". Debe proporcionar definiciones rigurosas de estos dos para obtener una respuesta.
Un lenguaje de "programación" para calcular funciones (parciales) sobre cadenas puede considerarse una asignación de a . Mientras una de las funciones no computables esté dentro del rango, el lenguaje no se puede implementar.2 Σ ∗Σ∗2Σ∗
Por ejemplo, uno puede tomar aritmética de primer orden. Entonces es fácil definir funciones que no son computables, por ejemplo, la función que da una TM , decidir si devuelve en todas las entradas. Esto se puede expresar fácilmente mediante una fórmula de primer orden en el lenguaje de la aritmética. Por otro lado, es un resultado fácil en la teoría de computabilidad que no es una función computable, por lo que no puede implementarse la función.M 0MM0
Pero este no es el tipo de lenguaje de especificación que las personas quieren decir cuando usan la frase "lenguaje de programación". Un lenguaje de programación generalmente está destinado a ser un lenguaje para expresar funciones computables (procesos, ...) y para comunicar las instrucciones a una máquina y, por lo tanto, hay una TM que puede simular esos programas y generar sus resultados. Entonces, en cierto sentido, tener un lenguaje de programación que no se puede implementar no tiene sentido.
(Supongo que probablemente esté confundiendo los lenguajes de programación con lenguajes de especificación o con lenguajes formales . En cualquier caso, podemos definir lenguajes que no sean computables).