Buscar

Compiladores, Interpretadores e Máquinas Virtuais

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

CURSO: Análise e desenvolvimento de sistemas TURNO: Noturno 
DOCENTE: Fábio Gomes TURMA: N1 
COMPONENTE CURRICULAR: TAARC DATA: 14/08/2021 
ESTUDANTE: Diego Bonfim de Santana 
 
 Atividade 1 
 
 
 
1) O que você entende por compilador e interpretador? Descreva, também, a 
diferença entre eles. 
 
COMPILADOR E INTERPRETADOR: 
São conversores de linguagens de códigos de alto nível para a linguagem de 
máquina,(0 e 1). 
Portanto entende-se que são tradutores de códigos! 
Esses conversores possibilitam que o computador entenda e execute um 
código que foi escrito em uma linguagem de programação de alto nível, 
de forma legível para seres humanos. 
 
DIFERENÇA ENTRE COMPILADOR E INTERPRETADOR: 
'COMPILAÇÃO'> A compilação, de fato, é uma tradução. 
Nesse processo, inicialmente, há um código escrito em uma linguagem de 
programação de alto nível. 
Este código será enviado ao compilador (que é nada mais nada menos que um 
programa), 
que possui a capacidade de traduzir códigos de uma determinada linguagem 
para outra. 
Os compiladores, geralmente, possuem dois módulos: "front-end e back-end". 
 
{Front-end}, é a primeira etapa do processo de compilação. 
Neste processo, serão checados possíveis erros de digitação, sintaxe da 
linguagem e tipos de dados. 
Caso tudo ocorra como o esperado e sem erros, o compilador continuará para 
o módulo back-end. 
 
{Back-end}, tem como responsabilidade alocar espaço de memória e gerar um 
arquivo de código-objeto, 
que é arquivo com o código traduzido da linguagem de programação inicial 
para a linguagem desejada. 
 
OBSERVAÇÃO: (Um código compilado, produzido por um compilador, não 
necessariamente é binário, em linguagem de máquina. 
Embora o mais comum seja a compilação diretamente para a linguagem de 
máquina.) 
----------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------- 
'INTERPRETAÇÃO'> O processo de interpretação é um pouco diferente, 
Isso porque, nesse processo, não há necessidade de gerar intermediários, 
como um código-objeto (arquivo gerado com o código compilado) ou um 
executável. 
Na interpretação, ocorre uma tradução instantânea, em tempo de execução. 
O interpretador irá ler o seu código linha a linha em tempo de execução 
e irá traduzir cada linha para uma linguagem alvo (que geralmente será 
bytecode ou linguagem de máquina). 
No mesmo momento que ele traduz, ele executa o código gerado, sem 
processos adicionais. 
O que é bem diferente do processo de compilação, em que você precisa 
primeiro compilar para somente depois executar. 
 
CONCLUSÃO >>> 
Um código compilado consome menos recursos da CPU, 
durante as fases de tradução e carregamento. Porém sua execução não é 
direta. 
Primeiro é preciso compilar, para somente depois executar (o que tira um 
pouco da agilidade). 
 
Um programa interpretado tem um intervalo menor entre a codificação e a 
execução do programa. 
Além disso, costuma também ter mais facilidades na linguagem e os erros são 
mais fáceis de serem encontrados. 
Porém, o custo computacional e a execução mais lenta são fatores a serem 
considerados na escolha. 
 
2) O que é uma máquina virtual e qual é a sua relação com as linguagens de 
programação? 
 
MÁQUNAS VIRTUAIS: São maquinas criadas através de softwares. 
Uma máquina virtual é um programa que age como um computador completo, 
com todas as instâncias de um sistema operacional funcional. 
Em resumo, é um computador funcionando dentro de outro. Utiliza um 
programa cliente, 
que age como uma camada de virtualização entre o sistema de um computador 
e outro que você quer instalar. 
Uma 'VIRTUAL MACHINE' é um programa que simula um ambiente 
computacional, 
capaz de executar sistemas operacionais e aplicativos como se fosse uma 
máquina física. 
 
RELAÇÃO ENTRE MAQUINA VIRTUAL E LINGUAGENS DE 
PROGRAMAÇÃO: 
A máquina virtual é utilizada pelos compiladores pra fazer a conversão de 
linguagem de alto nível para linguagem de máquina; 
Sem elas, a compilação não seria possível; 
Com isso, é possível que computadores de arquiteturas diferentes consigam 
utilizar o mesmo programa; 
Seguindo esta linha de raciocínio pode-se pensar em máquinas virtuais de 
vários níveis (1, 2, 3, ..., n); 
 
3) O que você entende por níveis de máquinas? 
 
É a organização estruturada para melhoria do desenvolvimento dos 
processadores, processadores modernos 
possuem 2 ou mais níveis, sendo que alguns processadores possuem até 6 
níveis de maquinas. 
Cada nivél é voltado para o desenvolvimento ou resolução de um problema 
específico dentro do processador. 
 
4) Descreva as principais características do nível de sistema operacional; 
 
>Fronteira entre o hardware e o software; 
>Assume as funções de gerenciar os recursos de hardware; 
>Oferece uma interface simplificada; 
>A interface pode ser amigável ou não; 
>O usuário interage nesse nível; 
 
5) Descreva as principais características do nível de linguagem de 
programação. 
 
Conhecida como Nível de Linguagem Orientada ao Problema. 
É um método padronizado, formado por um conjunto de regras sintáticas e 
semânticas, 
de implementação de um código fonte - que pode ser compilado e 
transformado em um programa de computador, 
ou usado como script interpretado - que informará instruções de 
processamento ao computador. 
Permite que um programador especifique precisamente quais os dados que o 
computador irá atuar, 
como estes dados serão armazenados ou transmitidos e, quais ações devem 
ser tomadas de acordo com as circunstâncias. 
Linguagens de programação podem ser usadas para expressar algoritmos com 
precisão. 
A máquina virtual oferecida é criada para que o programador a use com 
conhecimentos básicos de algoritmos; 
A compilação é muito usada neste nível. 
 
6) O que é uma linguagem de máquina? O que a diferencia de uma linguagem 
de alto nível? 
 
LINGUAGEM DE MÁQUINA É Compilação entre a linguagem Assembly e 
outra qualquer de alto nível. 
É composta pela combinação dos dígitos 1 (um) e 0 (zero) dispostos em blocos 
de oito unidades. 
O nome, linguagem de máquina, deve-se ao fato de ser a única capaz de ser 
“compreendida” diretamente pelos computadores. 
As demais linguagens de programação, em particular as de alto nível, 
são representações estruturadas do idioma humano de modo a permitir que o 
indivíduo possa fazer um computador executar tarefas específicas. 
 
Á diferença entre a linguagem de máquina e a linguagem de alto nível é que 
a linguagem de máquina é voltada para o entendimento do computador 
e a linguagem de alto nível é voltada para entendimento humano. 
 
7) Cite pelo menos 3 linguagens de alto nível. 
 
>Java; 
>C++; 
>Python;

Outros materiais