Decompiler

A decompiler is a computer program that translates executable programs (the output from a compiler) into an equivalent (relatively) high level language (source code). By comparison, a disassembler translates an executable program into assembly language.

Decompilation is a technique for the recovery of lost source code. It is also useful in some cases for computer security, interoperability, error correction, and more (see why decompilation). Decompilation of Java bytecode programs is relatively easy, and there are many successful Java decompilers. Decompilation of binary programs is much harder; as a result there are very few machine code decompilers, and they tend to fail (so far) on all but the smallest programs.

Discussion of legal and ethical issues of decompilation can be found in the article on reverse engineering.

See also

External links

See also: Decompiler, Abstract interpretation, Assembler, Assembly language, Byte-code, Compiler, Computer program, Computer security, Decompilation, Disassembler