No livro de Andrew W. Appel, Modern Compiler Implementation in ML , ele diz no capítulo 17 que a teoria da Computabilidade mostra que sempre será possível inventar novas transformações de otimização e prossegue para provar que um compilador totalmente otimizado resolverá o problema de parada: Um programa Q que não produz saída e nunca pára pode ser facilmente substituído por sua representação ideal, Opt (Q) , sendo "L: goto L". Portanto, um compilador totalmente otimizado pode resolver o problema de parada.
Portanto, minha pergunta é a seguinte: Existe um compilador totalmente otimizado para finalizar programas? Meus únicos pensamentos são os seguintes: Mesmo que um programa seja garantido para terminar, ele ainda pode ser arbitrariamente complexo e, para qualquer compilador de otimização concreto, C, talvez seja possível construir um programa que tome C como entrada e, de alguma forma, produza um programa pior. algum tipo de caixa de canto.
Além disso, quais são as implicações de nos restringir ao encerramento de programas?