A decompiler performs, as far as possible, the reverse operation to that of a compiler.
That is, it translates a file containing information at a relatively low level of abstraction (usually designed to be computer readable rather than human readable) into a form having a higher level of abstraction (usually designed to be human readable).
The decompiler does not reconstruct the original source code, and its output is far less intelligible to a human than original source code.
Resources