Baixe o app para aproveitar ainda mais
Prévia do material em texto
UVA – UNIVERSIDADE VEIGA DE ALMEIDA ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES AVA2 – Compilação x Interpretação PROFESSOR: Thiago Alberto Ramos Gabriel NOME: Rodrigo Maia Diniz MATRÍCULA: 20191301456 Rio de Janeiro 2022.2 Enunciado da Avaliação 2 Independentemente da arquitetura de computadores, e podemos tomar como base o modelo da arquitetura de Von Newmann, tanto o processo de compilação quanto o processo de interpretação são possíveis. É fato que programadores de computadores ficam em dúvidas quanto à diferenciação da compilação e da interpretação de programas. Muitas das vezes, isso ocorre por falta de conhecimento aprofundado acerca da arquitetura de computadores e de como os programas são executados nas máquinas. Tomando como base as etapas de um ciclo de máquina apresentadas por Corrêa (2016), faça a representação gráfica dos dois processos, compilação e interpretação, explicando, no final, a real diferença existente entre eles. Representação Gráfica dos dois Processos COMPILADOR INTERPRETADOR Ler uma instrução no algoritmo Ler uma instrução no algoritmo Depurar somente a instrução lida Depurar somente a instrução lida Traduzir a instrução lida para linguagem de máquina Traduzir a instrução lida para linguagem de máquina Seguir para próxima instrução na sequência do algoritmo Executar a instrução traduzida Manter o ciclo acima em execução até o fim do algoritmo Seguir para próximo instrução na sequência do algoritmo Executar o algoritmo totalmente traduzido e em linguagem de máquina Manter o ciclo acima em execução até o fim do algoritmo Compilador x Interpretador A diferença está na forma de execução, o compilador é o processo de alto nível para uma linguagem de máquina, analisa o código por inteiro a fim de traduzir de uma única vez, o interpretador traduz cada instrução para uma apresentação interna realizando esse trabalho de conversão aos poucos, sempre que uma declaração ou função é executada. Primeiro Processo Compilador O programa conversor recebe a primeira instrução do programa fonte, confere-a para ver se está escrita corretamente, converte-a para linguagem de máquina em caso afirmativo e passa para a próxima instrução, repetindo o processo sucessivamente até a última instrução do programa fonte. Caso tenha terminado a transformação da última instrução do programa fonte e nenhum erro tenha sido detectado, o computador volta à primeira instrução, já transformada para linguagem de máquina e executa-a. Passa à instrução seguinte, executa-a, etc., até a última. Se este programa for executado uma segunda vez, não haverá necessidade de uma nova tradução, uma vez que todos os comandos em linguagem binária foram memorizados em um novo programa completo. Neste método, o programa conversor recebe o nome de Compilador é um programa (ou um conjunto deles) como qualquer outro, porém seu objetivo principal é o de traduzir todas as suas linhas de código para outra linguagem normalmente, uma de alto nível para outra de baixo nível (Assembly ou linguagem de máquina). Delphi, Rust, C++ e Swift figuram na lista de compiladas. 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. Segundo Processo Interpretador O programa conversor recebe a primeira instrução do programa fonte, confere para ver se está escrita corretamente, converte-a em linguagem de máquina e então ordena ao computador que execute esta instrução. Depois repete o processo para a segunda instrução, e assim sucessivamente, até a última instrução do programa fonte. Quando a segunda instrução é trabalhada, a primeira é perdida, isto é, apenas uma instrução fica na memória em cada instante. Se este 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. Neste método, o programa conversor recebe o nome de Interpretador ele executa diretamente cada instrução, passo a passo. MATLAB, Lisp, Perl e PHP são apontadas como interpretadas. 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;
Compartilhar