Differences between version 4 and revision by previous author of DeCompiler.
Other diffs: Previous Major Revision, Previous Revision, or view the Annotated Edit History
Newer page: | version 4 | Last edited on Saturday, August 23, 2003 9:32:12 am | by AristotlePagaltzis | Revert |
Older page: | version 2 | Last edited on Saturday, August 16, 2003 7:22:00 pm | by StuartYeates | Revert |
@@ -1,3 +1,5 @@
-A [DeCompiler] transforms a low level langauge
to a higher one
.
+A [DeCompiler] tries
to transform
a program available in MachineCode to the ProgrammingLanguage it was originally written in
.
-In languages such
as [Java], where
class files are
relatively close to the source code and where (currently) the compilers
do relatively little in the way optimisation, decompilation is a reasonably option
. Decompilation
of machine code to
[C] is also possible, but because
source and target languages are much further apart much more
is lost and
the more aggressive
the compile-time optimisations,
the more is lost
.
+When the MachineCode is that of a VirtualMachine,
as is the case with
[Java] class files, it is usually
relatively close to the source language. [Compiler]s for such languages also usually
do relatively little in the way optimisation. In such cases
, decompilation is quite viable, often outright trivial
.
+
+Contrast with cases when the MachineCode is that
of a real silicon [CPU], as is usually the case with
[C] code. Such a target language
is usually far apart from the
source language,
and most [Compiler]s optimise quite aggressively. Therefor, it
is at least very hard, if not impossible, to infer
the language constructs used in
the original source code by just looking at
the [Compiler] generated MachineCode
.