Saudações. Dijkstra escreveu que mesmo algumas linhas de código aparentemente simples poderiam ser irremediavelmente ambíguas. Em pelo menos um trabalho, que não consigo encontrar agora para salvar minha vida, ele deu um pequeno exemplo de programa para demonstrar essa ambiguidade. Alguém pode me apontar para um artigo dele onde ele inclui um desses exemplos?
12
FILE_NOT_FOUND
;)Tem certeza de que o jornal foi escrito por Dijkstra? Reflections on Trusting Trust de Ken Thompson parece que poderia ser o que você estava pensando. Ele demonstra como programas absolutamente simples, diretos e corretos podem acabar fazendo algo absolutamente inesperado que não é visível na fonte. Mesmo que não seja o que você estava pensando, é um artigo que vale a pena ler.
Indo em uma direção diferente, se você quiser excelentes exemplos de programas curtos com comportamento surpreendente, o concurso C secreto é ótimo. Por exemplo, olhe o vencedor de 2008 . O desafio era escrever um programa de linha de comando para esvaziar parte de uma imagem, de modo que a imagem fosse visualmente apagada perfeitamente, mas o arquivo retém algumas informações sobre a parte editada da imagem. E de maneira que seu código possa passar na revisão. (Você pode escolher o formato em que a imagem é armazenada.)
fonte