Re: Help on disassembler/decompilers

adamsf@turing.cs.rpi.edu (Frank Adams)
10 Sep 90 22:20:33 GMT

          From comp.compilers

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]
| List of all articles for this month |

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;


--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.