
Compilador (compiler). Se você é um entusiasta de tecnologia, já deve ter ouvido esta palavra ou suas variações, como: compilar, compilado, etc.
Veremos neste artigo o que é um compilador.
Basicamente o compilador é um programa que processa comandos escrito em uma linguagem de programação específica e o “traduz” em linguagem de máquina ou “código” que o processador utiliza.
Cada tipo/modelo de processador pode ter um compilador equivalente, pois as instruções/comandos podem variar.
Compilador: como funciona
O nome compilador vem da forma como ele funciona, observando o código-fonte inteiro e coletando e reorganizando suas instruções. Um compilador é diferente de um interpretador, que analisa e executa cada linha de código fonte em sequência, sem olhar para todo o programa. A vantagem dos interpretadores é que eles podem executar um programa imediatamente. Compiladores exigem uma etapa anterior: a criação de um programa executável. No entanto, os programas produzidos pelos compiladores são muito mais rápidos do que os mesmos programas executados por um interpretador.
Normalmente o programador escreve seu programa em uma linguagem como Visual Basic ou C# utilizando um editor. O arquivo criado desta forma também é chamado de código-fonte. O programador então executa o compilador específico sobre este arquivo.
Ao ser executado, o compilador primeiro analisa todas as instruções de linguagem sintaticamente uma após a outra e então, em uma ou mais etapas sucessivas ou “passagens“, constrói o código de saída, certificando-se de que as instruções que se referem a outras instruções são referidas corretamente no código final. Tradicionalmente, a saída da compilação tem sido chamada de objeto-código (object code) ou às vezes um módulo objeto (object module). O objeto é código de máquina que o processador pode executar, uma instrução de cada vez.
Evolução
A linguagem de programação Java (usada na programação orientada a objetos) introduziu a possibilidade de compilação de saída (chamada bytecode) que pode ser executada em qualquer plataforma de sistema de computador que possua uma máquina virtual Java ou intérprete de bytecode para converter o bytecode em instruções que podem ser executados pelo processador de hardware real. Usando esta máquina virtual, o bytecode pode opcionalmente ser recompilado na plataforma de execução por um compilador just-in-time.
Tradicionalmente, em alguns sistemas operacionais, era necessária uma etapa adicional após a compilação – a de resolver a localização relativa de instruções e dados quando mais de um módulo de objeto deveria ser executado ao mesmo tempo e eles se referiam mutuamente a sequências de instruções ou dados. Este processo foi às vezes chamado de edição de ligação (linkage editing) e a saída conhecida como um módulo de carga (load module).
Um compilador funciona com o que às vezes são chamados de 3GL e linguagens de nível superior (higher-level languages). Um assembler funciona em programas escritos usando a linguagem assembler do processador.
Lembrando que a fanpage do Celso no Facebook também tem conteúdo sobre empreendedorismo!
Seja o primeiro a comentar!