What is an analytical decompiler?

Viewed 501

IntelliJ incorporates Fernflower, a Java decompiler made by JetBrains.

On its GitHub page you can read the following:

Fernflower is the first actually working analytical decompiler for Java and probably for a high-level programming language in general.

What does this mean? What is an analytical decompiler? How does it differ from other types of decompilers?

1 Answers

An analytical decompiler is one that analyzes compiled output and then figures out what source code would best match it, rather than trying to be the exact inverse of a traditional compiler. Sometimes this is necessary in case of optimizing compilers or obfuscated bytecode.

Related