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.
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