Buscar

Processo de Compilação e Interpretação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

CENTRO UNIVERSITÁRIO JORGE AMADO – UNIJORGE
SISTEMA DA INFORMAÇÃO
PAULA DE SOUSA CUNHA MOTA 
PROCESSOS DE COMPILAÇÃO E INTERPRETAÇÃO
Salvador – Ba
2022
3
PAULA DE SOUSA CUNHA MOTA
PROCESSOS DE COMPILAÇÃO E INTERPRETAÇÃO
Trabalho apresentado como requisito parcial para fins avaliativos da disciplina de Organização e Arquitetura de Computadores curso de Sistema da Informação do Centro Universitário Jorge Amado- Unijorge.
Professor: Magno Luã De Jesus Souza
Salvador – Ba
2022
SUMÁRIO
1.INTRODUÇÃO................................................................................................................3
2. OBJETIVOS....................................................................................................................4
3. DESENVOLVIMENTO.................................................................................................4
3.1 Compilação ....................................................................................................................4
3.2 Interpretação ...................................................................................................................5
4. CONCLUSÃO.................................................................................................................7
REFERÊNCIAS..................................................................................................................8
1. INTRODUÇÃO
	O primeiro computador foi construído no século XX, e passou por várias modificações e melhorias, e são historicamente categorizados como gerações, até o computador VLSI que surgiu em 1980 e são utilizados até hoje (CORRÊA, 2016). 
O computador é um sistema complexo formado por milhões de componentes. De forma resumida, a função do computador é realizar o controle, processamento, armazenamento e entrada e saída dos dados. Os componentes estruturais principais dos computadores podem ser definidos como a unidade central de processamentos (CPU), memória principal, entrada e saída (E/S) e a interconexão do sistema (CORRÊA, 2016). 
Para Corrêa (2016), o CPU pode ser considerado como o cérebro do computador, nele são agrupados quatro componentes principais: unidade de controle, que é responsável pelo controle e operação da CPU, unidade aritmética e lógica que processa os dados do computador, os registradores que oferece o armazenamento à CPU, e a interconexão do sistema que realiza a comunicação entre a unidade de controle, ULA e registradores. 
O modelo de computador de Van Neumann é a base utilizada em quase todos os computadores digitais. Segundo Stallings (2017), este modelo é caracterizado pela possibilidade de uma máquina digital armazenar seus programas no mesmo espaço de memória em que os dados, podendo, assim, manipular tais programas. Essa arquitetura é um projeto-modelo de um computador digital de programa armazenado que utiliza uma unidade de processamento (CPU) e uma de armazenamento (memória) para comportar, respectivamente, instruções e dados.
O programa é um conjunto de instruções com a finalidade de gerar dados de saída a partir de dados de entrada. O computador utiliza programas para processar os dados. O CPU para conseguir executar estes programas utiliza ciclos de máquina, que pode ter três fases: busca, decodificação e execução. Na fase de busca, o sistema copia a próxima instrução no registrador de instruções da CPU, o endereço da instrução a ser copiada permanece no registrador. Essa instrução armazenada no registrador é decodificada, pela unidade de controle, em código binário para uma operação que o sistema vai realizar. Por último na fase de execução a ordem da tarefa é enviada pela unidade de controle para um componente da CPU (CORRÊA, 2016, p. 43 apud FOROUZAN; MOSHARRAF, 2011, p. 108).
2. OBJETIVOS
	Apresentar as representações gráficas dos processos de compilação e interpretação; relatar as principais diferenças entre os dois processos.
3. DESENVOLVIMENTO
Para que os humanos consigam designar instruções como, somar, subtrair etc, para o computador de forma mais amigável, têm-se a linguagem de programação, de forma que as solicitações dos humanos sejam traduzidas em linguagem de máquina e, desta forma os computadores consigam interpretar os comandos passados aos mesmos (SILVA,2017).
Os interpretadores e compiladores são, essencialmente, programas cuja saída (ou output) não está estabelecido à partida, o seu resultado é definido através de um programa dado como input, escrito numa linguagem de programação (SECO, 2013). Os dados de entrada de um compilador e de um interpretador é um programa expresso numa linguagem de programação (linguagem fonte). Geralmente, a linguagem fonte é um programa expresso por um texto, podendo ser expresso, também, de outras formas (SECO, 2013). 
3.1 Processo de compilação
Os compiladores são responsáveis por transformar o código de uma linguagem fonte, geralmente de alto nível, para a linguagem objeto, geralmente de baixo nível. Os compiladores são formados por cinco unidades, que são o analisador léxico, o analisador sintático, o analisador semântico, o gerador de código e o otimizador (JÚNIOR, 2003).
O analisador léxico ou scanner é responsável pela identificação dos vários símbolos existentes no código fonte de um programa, além de realizar uma varredura no código fonte em busca de erros de grafia no programa. O analisador sintático ou parser, verifica se a ordem em que aparecem os tokens é gramaticalmente correta. O produto lógico de um parser é uma árvore sintática abstrata. O analisador semântico é encarregado de fazer a análise semântica utilizando a tabela de símbolos, ou correção de contexto, do que estiver escrito no código fonte do programa. Ele atua, entre outras coisas, para verificar se as variáveis foram declaradas antes de serem usadas, avalia as compatibilidades de funções, atribuições etc. Já o gerador de código é o primeiro componente de um compilador que depende da máquina em que a execução vai ser realizada, e sua função consiste em gerar sequências de instruções de máquina sempre que certas estruturas forem definidas após a análise semântica. Por último, o otimizador tem o papel de modificar o código gerado na tentativa de obter um melhor desempenho ou quanto a espaço ou quanto a velocidade de execução. A otimização pode ser feita em dois momentos, um antes de se realizar a geração do código (portanto mais complexa e eficiente) e outro após a geração do código (logo mais simples, porém menos eficiente) (FREITAS, 2006). Na figura 1 podemos visualizar de forma ilustrativa o processo de compilação.
Figura 1 - Processo de compilação.
Fonte - Autoria própria.
3.2 Processo de interpretação
De acordo com Almeida (2010):
Interpretador é uma espécie de tradutor de linguagens de alto nível que executa diretamente o código fonte para a máquina sem a criação de código intermediário, eliminando uma etapa que o diferencia dos compiladores, ou seja, ao invés de produzir um programa alvo como uma tradução, um interpretador executa diretamente na máquina as operações especificadas no programa fonte nas entradas fornecidas pelo usuário. 
No processo de interpretação cada comando do código fonte é transformado em uma ou mais instruções do código executável. Logo, esse processo é repetido até a última linha de código a ser executado. Em vez de traduzir de uma vez o programa fonte para então executá-lo, são traduzidas apenas pequenas unidades básicas do programa para executá-las imediatamente (BERTOLINI et al., 2019). De forma ilustrativa, na figura 2 podemos visualizar o fluxo deste processo.
Figura 2 – Processo de interpretação.
Fonte - Autoria própria.
 4. CONCLUSÃO
	Como visto anteriormente, a linguagem de máquina não é nem um pouco amigável para que os humanos consigam designar tarefas aos computadores. Para que a linguagem de programação seja transformada em linguagem de máquina e, assim, conseguirmos realizar operações no computador, temos o tradutor ou compilador e o interpretador dependendo dalinguagem utilizada. Assim, enquanto o tradutor ou compilador lê e analisa todo o programa de uma vez e o traduz para linguagem de máquina o interpretador lê o comando linha a linha e executa, e isso torna o processor do interpretador mais lento do que o do compilador. Porém, caso o compilador detecte algum erro ao final da tradução, é preciso reiniciar todo o processo para corrigir o erro, já no interpretador o erro é avisado na hora. Outra diferença é que o compilador cria um programa objeto e o executa e o interpretador não.	
REFERÊNCIAS
ALMEIDA, Wilson. Avaliação de performance de interpretadores Ruby. Florianópolis: Universidade Federal de Santa Catarina, 2010. Disponível em: < https://repositorio.ufsc.br/bitstream/handle/123456789/184513/trabalho-wilson-de-almeida.pdf?sequence=-1 >. Acesso em: 22 de nov. 2022.
BERTOLINI, Cristiano; et al. Linguagem de Programação I. 1 ed.; Santa Maria, RS: UFSM, NTE, 2019. p.18. Disponível em: < https://www.ufsm.br/app/uploads/sites/358/2020/02/linguagem-1.pdf >. Acesso em: 22 de nov. 2022.
CORRÊA, A. G. D. Organização e arquitetura de computadores. São Paulo: Pearson Education do Brasil, 2016. Disponível em: < https://plataforma.bvirtual.com.br/Leitor/Publicacao/124147/epub/42?code=Nd5xSwX5B/MxZSkOXmj0kratB6cUuzZZEL7Sd4aeVwmyi0uCHVMm7wCyYiUq7wMZrM3eXUtwsaCj32pnBWb0DA== >. Acesso em: 20 de nov. 2022.
FREITAS, Ricardo Luís. Compiladores. Compiladores. 18 de dez. 2006. Notas de aula. Disponível em: < http://www.cesarkallas.net/arquivos/faculdade/compiladores/teoria/apostila-de-compiladores-ec.pdf >. Acesso em: 22 de nov. 2022.
JUNIOR, Aleardo Manacero. Introdução à compiladores. Construção de compiladores. 2003. Notas de aula. Universidade Estadual Paulista. Disponível em: < https://www.dcce.ibilce.unesp.br/~aleardo/cursos/compila/ >.Acesso em: 22 de nov. 2022.
SECO, João Costa. Interpretação e Compilação de linguagem de programação. Dep. De Informática. 28 de fev. 2013. Notas de aula. NOVA School of Science and Technology | FCT NOVA. Disponível em: < https://moodle.fct.unl.pt/pluginfile.php/213715/mod_label/intro/01-overview.pdf >. Acesso em: 21 de nov. 2022.
SILVA, Edilson Hipolito. Introdução à Programação de Computadores: Fabricação Mecânica. Santa Catarina. 2017. Apresentação em Slide Share. 18 slides, color. Disponível em: < http://docente.ifsc.edu.br/edilson.hipolito/materiais/2017-1/introducao_programacao_fabricacao_mecanica_python/IAP_TFB%20-%20aula%2004%20-%20Linguagens%20de%20Programa%C3%A7%C3%A3o,%20Interpretador,%20compilador.pdf >. Acesso em: 22 de nov. 2022. 
STALLINGS, W. Arquitetura e organização de computadores. 10. ed. São Paulo: Pearson Education, 2017. Disponível em: < https://plataforma.bvirtual.com.br/Leitor/Publicacao/151479/pdf/389?code=apHnwwlK6BNgZKpJ7sN7fkD+h5VXmLNpn6aczxFCTwcHxZ35AO+5zQobATzmEYPjjquZuqVDo85g7E8DDNc4Ww==>.Acesso em: 20 de nov. 2022.

Continue navegando