in reply to Question of Reverse Engineering

Well, (assuming it's your own code and you're legally allowed to reverse engineer the output) depending on your language's compiler instructions, the generated binary code might not be as simple as you think or hope: even a pseudo-non-existant-language with only a '+' operator and no flow or loop instructions whatsoever could still create really messy executables, specially if it has optimizing compiling options and if the languages support multi-length variables and numbers.

As you pointed out yourself, parsing is indeed a nice job for Perl and there are a lot of available modules to help you out. You should probably take a look at some parsers such as Parse::RecDescent or Parse::Earley, and modules like Disassemble::X86 (if the binary code was generated for a x86 computer) and Win32::Exe (if it's a 32-bits MS-Windows box).

Hope this helps!