|
|
|
|
|
by krackers
264 days ago
|
|
As far as I can tell (although I"m a novice at RE), in the native world all non-trivial decompilers are "analytical", doing things like control-flow recovery and such. I guess the only reason why the first java decompiler was "non-analytical" is that the bytecode (at least in early days) was simple enough that you could basically pattern-match it back to instructions. So if I'd have to give a definition I pulled out of my ass: * non-analytical compiler: "local", works only at the instruction or basic-block level, probably done by just pattern matching templates * analytical: anything that does non-local transformations, working across basic-blocks to recover logic and control flow |
|