Tutorial C - Parte 05 - Noções de compilação
Compilação
Todo
o código em linguagem C que escrevermos deve ser salvo em um arquivo, em
formato texto, com a extensão ".c". Esse código não tem significado
nenhum para a unidade de processamento; para que o processador possa executar
nosso programa, este deve ser traduzido para a linguagem de máquina. Essa
tradução se chama compilação e
é feita pelo programa denominado compilador.
O
compilador lê todo o código e cria um arquivo executável, em linguagem de máquina,
específica para uma arquitetura de processadores e para um tipo de sistema
operacional, o que significa que um programa compilado no Windows, por exemplo,
não rodará nativamente no Linux se simplesmente copiarmos o executável.
Devemos, para isso, recompilar o código-fonte do programa.
No
Windows, os arquivos executáveis são aqueles com extensão ".exe". No
Linux, os executáveis são simplesmente arquivos com o atributo
"executável".
Etapas da compilação
O
processo que chamamos corriqueiramente de compilação na verdade é um conjunto
de etapas:
· o preprocessamento,
etapa em que o pré-processador (programa às vezes acoplado ao compilador) lê o
código-fonte e faz algumas substituições para que o programa possa ser
compilado. Em C, o preprocessador tem diversos usos: compilação condicional
(por exemplo, usar trechos diferentes do código para sistemas operacionais
diferentes), macros, substituição de símbolos e inclusão de arquivos externos
que declaram funções e variáveis.
·
a verificação
sintática, que procura por eventuais erros nos códigos dos programas:
parênteses não fechados, falta de ponto-e-vírgula no final da instrução, etc.
Todos esses problemas são alertados e causam a interrupção da compilação.
· a compilação propriamente dita, que transforma o código
preprocessado em um programa-objeto,
que está em linguagem de máquina porém não pronto para ser executado.
· a linkedição (linking, em inglês) dos
programas-objeto e bibliotecas necessárias em um único executável, feita pelo linkeditor (linker). Em C, pode-se
distribuir um programa em vários arquivos-fonte, o que ajuda na organização e
permite compilar apenas a parte do programa correspondente quando é necessário
realizar alguma mudança. Na montagem, todas as partes constituintes do programa
são deslocadas e/ou cortadas conforme necessário para que tenhamos um programa
executável.
Seja o primeiro a comentar
Postar um comentário