Así que estoy leyendo esta entrevista con Walter brillante sobre la lengua D en modo bit (http://www.bitwisemag.com/copy/programming/d/interview/d_programming_language.html), y me encuentro con esta cita muy interesante sobre el lenguaje de análisis:Uso de Walter Bright de la palabra "redundancia" ... o "¿Qué diablos significa eso?"
Desde una perspectiva teórica, sin embargo, ser capaz de generar un buen diagnóstico requiere que haya redundancia en la sintaxis. La redundancia se usa para adivinar lo que se pretendía, y mientras más redundancia, más probable es que adivinar sea correcta. Es como el idioma inglés: si escribimos mal una palabra de vez en cuando, o si falta una palabra, la redundancia nos permite adivinar correctamente el significado. Si no hay redundancia en un idioma, cualquier secuencia aleatoria de caracteres es un programa válido.
Y ahora estoy tratando de averiguar qué diablos quiere decir cuando dice "redundancia".
Apenas puedo entender la última parte, donde menciona que es posible tener un lenguaje en el que "cualquier secuencia aleatoria de caracteres sea un programa válido". Me enseñaron que hay tres tipos de errores: sintáctico, de tiempo de ejecución y semántico. ¿Hay idiomas en los que los únicos errores posibles son semánticos? Es asamblea así? ¿Qué pasa con el código de máquina?
Supongo que está hablando de sintaxis aquí. El código de máquina es probablemente muy cercano a lo que él está hablando. Cualquier cadena de operaciones de código de máquina válidas es una sintaxis válida. –
Depende de qué conjunto de instrucciones. Algunos ciertamente tienen instrucciones ilegales, que a menudo causan una trampa. –
Pero eso es como usar caracteres no válidos de un conjunto de caracteres en un script, no es realmente un problema de sintaxis. Si limita el conjunto de caracteres de entrada a operaciones de código de máquina válidas, puede colocarlos en cualquier orden y tiene un programa válido (en lo que respecta a la sintaxis del idioma). Entonces este lenguaje no tiene redundancia. –