Para su discurso de premio Turing de 1990 , Fernando J. Corbató enumeró las razones por las cuales los sistemas complejos inevitablemente fallarán. En su conclusión, da algunas sugerencias para disminuir la probabilidad de falla. Él enumera una idea de la siguiente manera:
[U] se de lenguajes restringidos para diseño o síntesis es una metodología poderosa. Al no permitir que un programador o diseñador exprese ideas irrelevantes, el dominio de posibles errores se vuelve mucho más limitado.
¿Qué quiere decir con "lenguaje restringido"?
Por un momento consideré la programación de restricciones . Sin embargo, la programación de restricciones se trata de restringir el espacio de solución del programa. Es una herramienta que faculta a un programador. La característica a la que se refiere Corbató parece ser algo que realmente restringe al programador, o al menos la hace más propensa a escribir código terser.
Mi segundo pensamiento es que se está refiriendo a lenguajes de programación conservadores . Corbató recibió su premio Turing por el trabajo realizado en las décadas de 1960 y 1970. Tengo entendido que se ocupó de muchas tarjetas perforadas. Nunca he visto una tarjeta perforada, así que ciertamente no sé cómo programarla, pero creo que esa programación es extremadamente liberal. Sospecho que las nociones de verificación de tipo, análisis estático, etc. simplemente no existían. Entonces, ¿se está refiriendo Corbató a la idea de lenguajes que restringen al desarrollador de cometer errores tontos? Este tampoco parece ser el caso. La verificación de seguridad y el modelado de datos no tienen nada que ver con la brevedad, de lo que parece estar hablando cuando menciona "no permitir ... ideas irrelevantes".