How do you decompile a compiled program?

Basically, you can't. It would be like trying to take a baked cake and turn it back into its ingredients. It is maybe not that severe, but nevertheless very difficult to break a program and find some of its original components. That is why we keep the programs themselves in the form of source code.

But for some technologies it is possible. For example .Net programs can be decompiled.
And there are special tools which allow to do that - .net decompilers.
For an example look at the one at the related link below.