A compiler is a computer program (or set of programs) that translates text written in a computer language (the source language) into another computer language (the target language). The original sequence is usually called the source coude and the output called object code. Commonly the output has a form suitable for processing by other programs (e.g., a linker), but it may be a human readable text file.
The most common reason for wanting to translate source code is to create an executable program. The name "compiler" is reserved for programs that translate source code from a high level language to a lower level language (e.g., assembly language or machine language).
The taskes of a typical language processor, can be represented like in this diagram: [FALTA IMAGEM]