O Que É Compilação No Mundo Da Programação?
O que é compilação? Os tipos, as ferramentas de construção e exemplos serão esmiuçados neste artigo.
Um compilador é um programa de computador que ajuda a transformar o código-fonte escrito numa linguagem de alto nível em linguagem de máquina de baixo nível.
Desse modo, ele traduz o código escrito em uma linguagem de programação para alguma outra linguagem sem alterar o significado do código.
O compilador também torna o código final eficiente, que é otimizado para tempo de execução e espaço de memória.
O processo de compilação inclui mecanismos básicos de tradução além de detecção de erros.
Bem como, passa por análise lexical, sintaxe e semântica no front-end e geração e otimização de código no back-end.
Confira neste artigo:
O que é compilação?
Neste artigo você verá:
- O que é um compilador;
- Características dos compiladores;
- Tipos de compilador;
- Tarefas do compilador;
- História do compilador;
- Etapas para sistemas de processamento de linguagem;
- Ferramentas de construção de compiladores;
- Por que usar um compilador;
- Aplicação de compiladores.
Características dos compiladores
- Exatidão;
- Velocidade de compilação;
- Preserva o significado correto do código;
- Mantém a velocidade do código alvo;
- Reconhece construções de programa legais e ilegais;
- Bom relatório / tratamento de erros;
- Ajuda para depuração de código.
Tipos de compilador
A seguir você verá os diferentes tipos de compilador:
- De passe único;
- Com dois passes;
- Compiladores Multipass.
Compilador de passagem única
Compilador de duas passagens é dividido em duas seções:
- Front end: mapeia o código legal em representação intermediária (RI);
- Back end: mapeia o IR na máquina de destino.
O método do compilador Two pass também simplifica o processo de redirecionamento. Ele também permite várias front ends.
Multipass
O compilador multipass processa o código-fonte ou a árvore de sintaxe de um programa várias vezes.
Divide um grande programa em vários pequenos programas e os processa. Depois desenvolve vários códigos intermediários.
Todos esses multipass recebem a saída da fase anterior como uma entrada. Portanto, requer menos memória. Também é conhecido como Wide Compiler.
Tarefas do compilador
As principais tarefas realizadas pelo compilador são:
- Dividir o programa de origem em partes e impor uma estrutura gramatical a elas;
- Permitir construir o programa alvo desejado a partir da representação intermediária além de criar a tabela de símbolos;
- Compilar o código-fonte enquanto detecta erros nele;
- Gerenciar o armazenamento de todas as variáveis e códigos;
- Dar suporte para compilação separada;
- Ler, analisar todo o programa e traduzir para um equivalente semanticamente;
- Traduzir o código-fonte em código-objeto, dependendo do tipo de máquina.
História do Compilador
Marcos importantes na história do compilador:
- A palavra “compilador” foi usada pela primeira vez no início dos anos 1950 por Grace Murray Hopper;
- O primeiro compilador foi construído por John Backum e seu grupo entre 1954 e 1957 na IBM;
- COBOL foi a primeira linguagem de programação compilada em várias plataformas em 1960;
- O estudo dos problemas de digitalização e análise foi realizado nas décadas de 1960 e 1970 para fornecer uma solução completa.
Etapas para sistemas de processamento de linguagem
Após conhecer o conceito de compiladores, você precisa entender algumas outras ferramentas que funcionam com compiladores.
Etapas para sistemas de processamento de linguagem:
Processador:
É considerado parte do compilador, ou seja, é uma ferramenta que produz dados para o compilador. Ele lida com processamento de macro, aumento, extensão de linguagem, etc.
Intérprete:
É como o Compilador que traduz a linguagem de alto nível em linguagem de máquina de baixo nível.
A diferença entre os dois é que o interpretador lê e transforma o código linha por linha enquanto o compilador lê todo o código de uma vez e cria o código de máquina.
Assembler:
Traduz o código da linguagem assembly em linguagem compreensível por máquina.
O resultado de saída do assembler é conhecido como um arquivo de objeto que é uma combinação entre instruções de máquina e os dados necessários para armazenar essas instruções na memória.
Vinculador:
Ajuda a vincular e mesclar vários arquivos de objeto para criar um arquivo executável.
Todos esses arquivos podem ter sido compilados com montadores separados.
A principal tarefa de um vinculador é pesquisar os módulos chamados em um programa e descobrir a localização da memória onde todos os módulos estão armazenados.
Carregador:
É uma parte do sistema operacional que realiza as tarefas de carregar arquivos executáveis na memória e executá-los.
Ele também calcula o tamanho de um programa que cria espaço de memória adicional.
Compilador cruzado:
No design de compilador é uma plataforma que ajuda a gerar código executável.
Compilador de fonte para fonte:
É um termo usado quando o código-fonte de uma linguagem de programação é traduzido para a fonte de outra linguagem.
Ferramentas de construção de compiladores
Essas ferramentas foram introduzidas como tecnologias relacionadas a computadores e espalhadas por todo o mundo.
Elas também são conhecidas como compiladores-compiladores, compiladores-geradores ou tradutor.
Elas usam uma linguagem ou algoritmo próprios para especificar e implementar o componente do compilador.
A seguir estão os exemplos de ferramentas de construção de compiladores.
Geradores de scanner:
Usa expressões regulares como entrada, por exemplo, LEX para sistema operacional Unix.
Mecanismos de tradução direcionados à sintaxe:
Essas ferramentas de software oferecem um código intermediário usando a árvore de análise.
Ele tem o objetivo de associar uma ou mais traduções a cada nó da árvore de análise.
Geradores de analisador:
Recebe uma gramática como entrada e gera automaticamente o código-fonte que pode analisar fluxos de caracteres com a ajuda de uma gramática.
De códigos automáticos:
Pegam o código intermediário e os converte em linguagem de máquina.
Mecanismos de fluxo de dados:
Esta ferramenta é útil para otimização de código.
Veja também: Os 7 Melhores Livros Para Aprender Python Sozinho
Aqui, as informações são fornecidas pelo usuário e o código intermediário é comparado para analisar qualquer relação.
Também é conhecido como análise de fluxo de dados. Ajuda a descobrir como os valores são transmitidos de uma parte do programa para outra.
Por que usar um compilador?
- Ele verifica o programa inteiro, portanto, não há erros de sintaxe ou semântica;
- O arquivo executável é otimizado pelo compilador, desse modo é executado mais rapidamente;
- Permite que você crie uma estrutura interna na memória;
- Não há necessidade de executar o programa na mesma máquina em que foi construído;
- Traduz o programa inteiro em outro idioma;
- Gera arquivos no disco;
- Vincula os arquivos em um formato executável;
- Verifica se há erros de sintaxe e tipos de dados;
- Ajuda você a aprimorar sua compreensão da semântica da linguagem;
- Lida com problemas de desempenho de linguagem;
- Oferece oportunidade para um projeto de programação não trivial;
- Técnicas usadas para construir um compilador também podem ser úteis para outros fins.
Aplicação de compiladores
- Ajuda na implementação completa de linguagens de programação de alto nível;
- Otimização de suporte para paralelismo de arquitetura de computador;
- Projeto de novas hierarquias de memória de máquinas;
- Amplamente utilizado para programas de tradução;
- Usado com outras ferramentas de produtividade de software.
Resumo
- Um compilador é um programa de computador que ajuda a transformar o código-fonte escrito em uma linguagem de alto nível em linguagem de máquina de baixo nível;
- Correção, velocidade de compilação e preservação do significado correto do código são alguns recursos importantes do design do compilador;
- Eles são divididos em três partes: de passagem única; de duas passagens e compiladores de passagem múltipla;
- A palavra compilador foi usada pela primeira vez no início dos anos 1950 por Grace Murray Hopper;
- As etapas para o sistema de processamento da linguagem são: Pré-processador, Intérprete, Assembler, Linker / Loader;
- Ferramentas importantes de construção de compiladores são: Geradores de scanner; Sintaxe; Mecanismos de tradução direcionada; Geradores de analisador e Geradores de código automático;
A principal tarefa do compilador é verificar todo o programa para que não haja erros de sintaxe ou semântica.
O segredo para alcançar o topo da sua carreira na área da tecnologia está a um clique de distância. Toque no botão abaixo agora mesmo e mergulhe em mais de 1400 cursos completos, todos com certificados de peso.
ACESSAR CURSOS COM CERTIFICADOEnfim, espero que tenha gostado do conteúdo e que ele te ajude em sua jornada como programador.
Até o próximo artigo e um forte abraço!!
Sobre o Autor
0 Comentários