O Que É Compilação No Mundo Da Programação?

O que é compilação
O que é compilaçã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.

O que é compilação?

O que é compilação?
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:

  1. Front end: mapeia o código legal em representação intermediária (RI);
  2. 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

História do Compilador
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

Etapas para sistemas de processamento de linguagem
Processador

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

Ferramentas para construir compiladores
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 CERTIFICADO

Enfim, 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!!

Tags: | |

Sobre o Autor

Programador Viking
Programador Viking

DICA EXTRA: Algumas pessoas estão me perguntando qual é o curso que recomendo para quem deseja aprender programação, mesmo sem ter qualquer conhecimento sobre o assunto. Minha recomendação, tanto para quem está iniciando, como para quem já possui mais experiência, é essa AQUI...

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

plugins premium WordPress