¿Cuáles son los critera o las características básicas que se requieren para decirle que X o Y es (o ¿no) un lenguaje de programación?Criterios para determinar si se trata de un lenguaje de programación
que he hecho alguna lectura (Is HTML considered a programming language?, Turing complete y others), y llegó a la conclusión de que una lengua o una sintaxis tiene que ser Turing completa para ser considerado un lenguaje de programación. ¿Es esto correcto? ¿Es suficiente?
¿Y cómo puedo determinar si algo es Turing complete? ¿Hay algún criterio específico?
Tiene estructuras de control de flujo (instrucciones condicionales y bucles) suficientes para considerarse Turing complete?
Un programa funcional no computa nada; dice cuál debe ser el resultado. Lo mismo ocurre con los lenguajes de programación lógica como Prolog. Desde la perspectiva de la teoría del lenguaje, el único requisito para un lenguaje de programación es que exista una gramática no ambigua para él, de modo que existe una estructura sintáctica única para cualquier secuencia válida. El significado de dicha estructura depende del intérprete o traductor; una impresora bonita, un analizador de métricas y un compilador, le dan diferentes significados al mismo _programa_ (a una impresora bonita no le importan los tipos y operaciones no coincidentes, f.i.). – Apalala
El protocolo TCP es un lenguaje de programación. – Apalala