Run-time Debugging Aids
Richard Bornat · 1979
A program presented to a compiler is not written for the purpose of being compiled. Compilation is a means to an end and the compiler is just an aid to programming in the original source language. Once a program has been compiled it would be wrong to expect that the user should debug the actual instructions of the object program, because that would view the compiler as an ‘auto-coder’ which merely helps in the business of programming in machine code. The source program prescribes a sequence of actions which the machine must carry out: when the object program behaves unexpectedly the cause is a source program error. Run-time debugging aids must therefore help to find source program errors: only the compiler-writer should be concerned with the possibility that there are errors in the object program which make it other than a faithful representation of the user’s expressed intentions.