Decompile

Why Trust Techopedia

What Does Decompile Mean?

Decompile is the process of converting computer readable code into human readable source code with original code functionality. Decompile is the reverse of compile.

Advertisements

It is impossible use decompilation for original source code reproduction because original code identifiers, such as variable and function names, are rarely stored in computer code. However, code containing metadata or debugging information may include identifiers.

Techopedia Explains Decompile

Decompilation is often performed on computer code when source code is no longer available. Thus, it is a form of reverse engineering. Additionally, decompilation may be used for computer security, interoperability and error correction.

Decompilation is applied for multiple reasons, including:

  • Understanding code functionality
  • Correcting errors
  • Enhancing computer security
  • Removing restrictions, such as passwords, copy protection and time limit
  • Studying computer viruses
  • Recovering lost source code for archiving purposes

Successful decompilation depends on available code information and complexity.

A decompiler (the tool used in decompilation) may be obtained separately, rather than bundled with vendor development tools.

In most cases, copyrighted software decompilation is illegal. However, in the U.S. and Europe, copyright laws allow limited decompilation usage, such as interoperability.

Advertisements

Related Terms

Margaret Rouse
Technology expert
Margaret Rouse
Technology expert

Margaret is an award-winning writer and educator known for her ability to explain complex technical topics to a non-technical business audience. Over the past twenty years, her IT definitions have been published by Que in an encyclopedia of technology terms and cited in articles in the New York Times, Time Magazine, USA Today, ZDNet, PC Magazine, and Discovery Magazine. She joined Techopedia in 2011. Margaret’s idea of ​​a fun day is to help IT and business professionals to learn to speak each other’s highly specialized languages.