A compiler is a computer program that takes code and generates either object code or translates code in one language into another language. When it generates code into another language usually the other language is either compiled (into object code) , interpreted , or even compiled again into another language. Object code can be run on your computer as a regular program. In the days when compute time cost thousands of dollars compilation was done by hand. Now compilation is usually done by a program.
edit-hint Expand to compilation techniques?