Compilador

 Nota: "Compilação" redireciona para este artigo. Se procura por compilação musical, veja Coletânea musical.
Uma captura de tela do compilador GCC versão 4.0.2 rodando em uma janela xterm. Um programa simples está sendo compilado e então executado.

Um compilador é um programa de computador (ou um grupo de programas) que, a partir de um código fonte escrito em uma linguagem compilada, cria um programa semanticamente equivalente, porém escrito em outra linguagem, código objeto.[1] Classicamente, um compilador traduz um programa de uma linguagem textual facilmente entendida por um ser humano para uma linguagem de máquina , específica para um processador e sistema operacional. Atualmente, porém, são comuns compiladores que geram código para uma máquina virtual que é, depois, interpretada por um interpretador. Ele é chamado compilador por razões históricas; nos primeiros anos da programação automática, existiam programas que percorriam bibliotecas de sub-rotinas e as reunia, ou compilava,[Nota 1] as subrotinas necessárias para executar uma determinada tarefa.[2][3]

O nome "compilador" é usado principalmente para os programas que traduzem o código fonte de uma linguagem de programação de alto nível para uma linguagem de programação de baixo nível (por exemplo, Assembly ou código de máquina). Contudo alguns autores citam exemplos de compiladores que traduzem para linguagens de alto nível como C.[4] Para alguns autores um programa que faz uma tradução entre linguagens de alto nível é normalmente chamado um tradutor, filtro[5] ou conversor de linguagem. Um programa que traduz uma linguagem de programação de baixo nível para uma linguagem de programação de alto nível é um descompilador.[6] Um programa que faz uma tradução entre uma linguagem de montagem e o código de máquina é denominado montador (assembler).[5] Um programa que faz uma tradução entre o código de máquina e uma linguagem de montagem é denominado desmontador (disassembler).[6] Se o programa compilado pode ser executado em um computador cuja CPU ou sistema operacional é diferente daquele em que o compilador é executado, o compilador é conhecido como um compilador cruzado.[7]

  1. Aho, Alfred V.; Ullman, Jeffrey D. (1977). Principles of Compiler Design (em inglês). Reading, Massachusetts, EUA: Addison-Wesley. p. 1. 604 páginas. ISBN 0-201-00022-9 
  2. Parsons, Thomas W. (1992). Introduction to Compiler Construction (em inglês). Nova Iorque, EUA: Computer Science Press. p. 1. 359 páginas. ISBN 0-7167-8261-8 
  3. Appel, Andrew W. (1998). Modern Compiler Implementation in Java (em inglês). Cambridge: Cambridge University Press. p. 3. 548 páginas. ISBN 0-521-58388-8 
  4. Cooper, Torczon (2003). Engineering a Compiler (em inglês). San Francisco: Morgan Kaufmann. p. 2. ISBN 1-55860-698-X 
  5. a b Neto, João José (1987). Introdução à Compilação. Rio de Janeiro: LTC. 222 páginas. ISBN 978-85-216-0483-9 
  6. a b Watt, David A.; Brown, Deryck F. (2000). Programming Language Processors in Java (em inglês). Harlow, England: Prentice Hall. p. 27. 436 páginas. ISBN 0-130-25786-9 
  7. Elder, John (1994). Compiler Conctruction. A Recursive Descent Model (em inglês). 1. Englewood Cliffs, Nova Jersey, EUA: Prentice Hall. p. 7-8. 437 páginas. ISBN 0-13-291139-6 


Erro de citação: Existem etiquetas <ref> para um grupo chamado "Nota", mas não foi encontrada nenhuma etiqueta <references group="Nota"/> correspondente


Developed by StudentB