A program that examines another computer program and attempts to generate language code that would, in theory, reproduce the target program.