En el libro de Andrew W. Appel, Modern Compiler Implementation in ML , dice en el capítulo 17 que la teoría de la computabilidad muestra que siempre será posible inventar nuevas transformaciones optimizadoras y procede a demostrar que un compilador completamente optimizador resolverá el problema de detención: un programa Q que no produce salida y nunca se detiene se puede reemplazar fácilmente por su representación óptima, Opt (Q) , que es "L: goto L". Por lo tanto, un compilador completamente optimizado puede resolver el problema de detención.
Entonces mi pregunta es esta: ¿Existe un compilador completamente optimizado para terminar programas? Mis únicos pensamientos son los siguientes: aunque se garantiza que un programa finalizará, aún puede ser arbitrariamente complejo, y para cualquier compilador de optimización concreto, C, uno podría construir un programa que tome C como entrada y de alguna manera produzca un programa peor. algún tipo de caja de esquina.
Además, ¿cuáles son las implicaciones de restringirnos a la terminación de programas?