domingo, 17 de julho de 2016

Compilador Vs Interpretador – Conceitos Fundamentais.

      Quando falamos sobre compiladores e interpretadores, pensamos logo sobre formas de tradução de um código de alto nível para um código que o computador possa interpretar e executar um determinado programa. Nesse post abordarei os conhecimentos iniciais sobre o assunto para começar uma análise mais profunda, que nos levara não só ao conhecimento sobre o processo de tradução, mas também nos ajudará a identificar vantagens, desvantagens e suas viabilidades de aplicações.

Compiladores

       O primeiro compilador foi escrito por Grace Murray Hopper, em 1952, para a linguagem de programação A-0. Hopper, foi uma analista de sistemas da Marinha dos Estados Unidos nas décadas de 1940 e 1950 e almirante. Foi ela quem criou a linguagem de programação Flow-Matic, hoje extinta. Esta linguagem serviu como base para a criação do COBOL. Ela também foi uma das primeiras programadoras do Harvard-Marck I em 1944. O compilador é um programa (ou um grupo de programas), que processa a linguagem de alto nível (código fonte) para uma linguagem de baixo nível (código objeto) que será interpretado e executado pelo computador. Os Compiladores analisam o código em três partes, de forma sintática ou hierárquica, léxica ou linear e analise semântica.

Vantagens:
O código compilado é mais rápido de ser acessado;
Impossibilita ou pelo menos dificulta ser quebrado e visualizado o código-fonte original;
Permite otimização do código por parte do compilador;
Compila o código somente se estiver sem algum erro.
Desvantagens:
Para ser utilizado o código precisa passar por muitos níveis de compilação;
Assim como vantagem a possibilidade de não poder visualizar o código-fonte, pode ser uma desvantagem;
     Processo de correção ou alteração do código requer que ele seja novamente recompilado. 

Interpretadores

          Já os interpretadores são programas que leem o código fonte de uma linguagem de programação e já converte em código executável traduzindo linha por linha, sendo que o programa é executado a medida em que a tradução ocorre. Se o programa fonte for executado uma segunda vez, novamente haverá uma nova tradução, comando por comando, pois os comandos em linguagem de máquina não ficam armazenados para futuras execuções. Os interpretadores analisam o código de duas formas: semanticamente e sintaticamente.



Vantagens:
Correções e alterações são mais rápidas de serem realizadas;
Código não precisa ser compilado para ser executado;
Consomem menos memória.

Desvantagens:
Execução é mais lenta do programa;
          Necessita sempre ser lido o código original para ser executado; 

          Agora que você já sabe oque é um compilador e um interpretador, pode estar se perguntando: qual dos dois é melhor? Bom, a resposta você encontrará nas nossas próximas postagens!! 

=)

-----------------------------------------------------------------------------------------------------------------
Fontes: https://www.dcc.fc.up.pt/~nam/aulas/0001/ic/slides/sliic0018/node3.html
              https://pt.wikipedia.org/wiki/Compilador
              https://pt.wikipedia.org/wiki/Grace_Hopper
              http://www.inf.ufsc.br/~barreto/cca/arquitet/arq4.htm

Nenhum comentário:

Postar um comentário