A computer program has two faces. On the screen of the programmer, one face - the ``source-code'' - looks like a cross between recipes in a cookbook and mathematical proofs, each line containing a set of instructions for the computer to perform at a certain step in the program. Around these steps are comments, which explain how the program works.
Before the program can be run on a computer, however, it must be translated into the language the computer speaks.
The translator program takes the source-code, compacts it, and changes it into ``object-code,'' which can be executed quickly by a computer. This face is nearly impossible for a human to read, let alone decode.
Most computer programs are sold in object-code form today; software companies generally keep their source-code a carefully guarded secret.