Related articles |
---|
[3 earlier articles] |
Re: Help on disassembler/decompilers raul@sdnp1.ucsd.edu (1990-09-07) |
Re: Help on disassembler/decompilers seanf@sco.COM (1990-09-09) |
Re: Help on disassembler/decompilers rwallace@vax1.tcd.ie (1990-09-09) |
Re: Help on disassembler/decompilers vu0310@bingvaxu.cc.binghamton.edu.cc.binghamton.ed (1990-09-10) |
Re: Help on disassembler/decompilers hankd@dynamo.ecn.purdue.edu (1990-09-09) |
Re: Help on disassembler/decompilers Chuck.Phillips@FtCollins.NCR.COM (1990-09-10) |
Re: Help on disassembler/decompilers adamsf@turing.cs.rpi.edu (1990-09-10) |
Re: Help on disassembler/decompilers harrison@necssd.NEC.COM (1990-09-11) |
Re: Help on disassembler/decompilers freek@fwi.uva.nl (1990-09-12) |
Re: Help on disassembler/decompilers dik@cwi.nl (1990-09-10) |
Re: Help on disassembler/decompilers markh@csd4.csd.uwm.edu (Mark William Hopkins) (1990-09-10) |
Re: Help on disassembler/decompilers Jonathan.Bowen@prg.oxford.ac.uk (Jonathan Bowen) (1990-09-13) |
Re: Help on disassembler/decompilers nreadwin@miclon.uucp (1990-09-13) |
[13 later articles] |
Newsgroups: | comp.compilers |
From: | adamsf@turing.cs.rpi.edu (Frank Adams) |
Keywords: | code, assembler, debug |
Organization: | RPI CS Dept. |
References: | <HOW.90Sep5173755@sundrops.ucdavis.edu> <12976@june.cs.washington.edu> |
Date: | 10 Sep 90 22:20:33 GMT |
In article <12976@june.cs.washington.edu> pardo@cs.washington.edu (David Keppel) writes:
>My guess is that decompiling in to a language that is e.g.,
>saccarine-sweetened assembler (C) is `easy', while decompiling e.g.,
>in to APL is hard.
If we assume that the program is to be decompiled into the language in
which it was written, it is in general easier to decompile the less the
compiler optimizes the generated code.
A second problem is type inference. APL, with a fixed set of data types,
is easier in this respect than C. For example, when the code loads a pointer
into a register and indexes off of it, what kind of struct is the pointer
pointing to?
If the object is only to get some kind of higher-level language representation
of an arbitrary executable, C will indeed be easier. But this kind of
decompilation is not very useful -- what read
foo.bar = 0;
in the original is likely to come out as
*(int *)(((char *)&foo + 8)) = 0;
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.