A syntax-directed approach to inverse compilation

A general syntax-directed strategy is described for translating computer programs written in a machine-level source language into equivalent programs in a higher-level target language. This translation process is referred to as decompilation or inverse compilation. Work on decompilation is potentially applicable in such areas as software portability, source-level debugging and diagnostic systems, and program analysis and validation.