No discurso de premiação de Turing de 1990 , Fernando J. Corbató listou as razões pelas quais sistemas complexos falharão inevitavelmente. Em sua conclusão, ele dá algumas sugestões para diminuir a probabilidade de falha. Ele lista uma ideia da seguinte maneira:
O uso de linguagens restritas para design ou síntese é uma metodologia poderosa. Ao não permitir que um programador ou designer expresse idéias irrelevantes, o domínio de possíveis erros se torna muito mais limitado.
O que ele quer dizer com "linguagem restrita"?
Por um momento, considerei a programação de restrições . No entanto, a programação de restrição consiste em restringir o espaço de solução do programa. É uma ferramenta que capacita um programador. O recurso a que Corbató está se referindo parece ser algo que realmente restringe o programador, ou pelo menos a torna mais inclinada a escrever código de terser.
Meu segundo pensamento é que ele está se referindo a linguagens de programação conservadoras . Corbató recebeu seu prêmio Turing pelo trabalho realizado nas décadas de 1960 e 1970. Entendo que ele lidou com muitos cartões perfurados. Eu nunca vi um cartão perfurado, então certamente não sei como programar um, mas acho que a programação do cartão perfurado é extremamente liberal. Eu suspeito que as noções de verificação de tipo, análise estática e assim por diante simplesmente não existiam. Então, Corbató talvez esteja se referindo à idéia de linguagens que impedem o desenvolvedor de cometer erros estúpidos? Este também não parece ser o caso. A verificação de segurança e a modelagem de dados não têm nada a ver com a concisão, que é o que ele parece estar falando quando menciona "não permitir ... idéias irrelevantes".