Nel libro di Andrew W. Appel, Modern Compiler Implementation in ML , afferma nel capitolo 17 che la teoria della computabilità mostra che sarà sempre possibile inventare nuove trasformazioni di ottimizzazione e procede per dimostrare che un compilatore completamente ottimizzato risolverà il problema di arresto: un programma Q che non produce output e che non si ferma mai può essere facilmente sostituito dalla sua rappresentazione ottimale, Opt (Q) , essendo "L: goto L". Quindi un compilatore completamente ottimizzato può risolvere il problema di arresto.
Quindi la mia domanda è questa: esiste un compilatore che ottimizza completamente per terminare i programmi? I miei unici pensieri sono i seguenti: anche se un programma è garantito per essere terminato, può comunque essere arbitrariamente complesso, e per qualsiasi compilatore di ottimizzazione concreta, C, si potrebbe forse costruire un programma che accetta C come input e in qualche modo produce un programma peggiore come una specie di custodia ad angolo.
Inoltre, quali sono le implicazioni di limitarci a terminare i programmi?