The goal of this project is to create a .NET decompiler.
Decompiler is a tool that translates machine code back to source code. That is, it does the opposite of a compiler â€“ it takes the executable file and it tries to recreate the original source code.
In general, decompilation can be extremely difficult or even impossible. Therefore this project focuses on something slightly simpler â€“ decompilation of .NET executables. The advantage of .NET executables is that they consist of processor independent bytecode which is easier to decompile then the traditional machine code because the instructions are more high level and the code is less optimized. The .NET executables also preserve a lot of metadata about the code like type information and method names.
Note that despite its name, the .NET Framework is unrelated to networking or the Internet and it is basically the equivalent of Java Development Kit.
To succeed, the produced decompiler is required to successfully decompile a console implementation of a quick-sort algorithm back to C# source code.