Penguin

Differences between current version and previous revision of DeCompiler.

Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History

Newer page: version 4 Last edited on Saturday, August 23, 2003 9:32:12 am by AristotlePagaltzis
Older page: version 3 Last edited on Sunday, August 17, 2003 3:20:17 am by AristotlePagaltzis Revert
@@ -1,3 +1,5 @@
-A [DeCompiler] transforms a program from low level language to the high level language it was originally written in. In languages such as [Java], where the generated low level code is relatively close to the source language code and compilers do relatively little in the way optimisation, decompilation is viable
+A [DeCompiler] tries to transform a program available in MachineCode to the ProgrammingLanguage it was originally written in. 
  
-Decompiling MachineCode to [C ] is theoretically possible , but since the source and target languages are far apart and [C ] compilers often optimise, it is usually impossible to infer the originally used [C] code from looking at the [Compiler] generated MachineCode. 
+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.