Buscar

NOTA 10 ATIVIDADE AVALIATIVA SEMANA 5

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

ATIVIDADE AVALIATIVA SEMANA 5 
 
 
PERGUNTA 1 
 
As técnicas-padrão de geração de código requerem modificações das buscas em pós-ordem 
na árvore sintática, decorrentes das gramáticas de atributos de exemplos anteriores ou ações 
equivalentes durante uma análise sintática, caso uma árvore sintática não seja gerada 
explicitamente. 
 
Com relação ao apresentado, analise as asserções a seguir e as relações propostas entre 
elas. 
 
I. Se um compilador gerar código intermediário diretamente durante a análise sintática ou a 
partir de uma árvore sintática, deve ocorrer uma passada adicional pelo código intermediário 
para gerar o código-alvo final (em geral, após algum processamento adicional do código 
intermediário). 
PORQUE 
II. Esse passo pode ser bastante simples, especialmente se o código intermediário for 
altamente simbólico e contiver pouca informação sobre a máquina-alvo ou o ambiente de 
execução. 
 
Analisando as asserções anteriores, conclui-se que: 
 
a. as duas asserções são verdadeiras, e a segunda justifica a primeira. 
 
b. as duas asserções são falsas. 
 
c. a primeira asserção é verdadeira, e a segunda é falsa. 
 
d. a primeira asserção é falsa, e a segunda é verdadeira. 
 
e. as duas asserções são verdadeiras, e a segunda não justifica a primeira. 
 
PERGUNTA 2 
 
Compilar é o ato de transformação de um código fonte escrito em uma linguagem de 
programação específica em um código objeto para ser lido por um computador. O processo 
estrutural lógico da compilação pode ser dividido em duas fases: a fase da análise e a fase 
da síntese. Cada fase, ainda, pode ser subdivida em outras sub fases. 
 
Nesse contexto, assinale a alternativa correta que apresenta a fase do processo de 
compilação que é gerado a partir da árvore de derivação. 
 
a. fase léxica. 
 
b. fase sintática. 
 
c. código intermediário. 
 
d. gerador de código. 
 
e. otimizador de código. 
 
PERGUNTA 3 
 
Uma estrutura de dados que representa o programa-fonte durante a tradução é denominada 
representação intermediária ou IR. Além da IR, a estrutura de dados principal usada durante 
a tradução é a tabela de símbolos. 
 
Assinale a alternativa que descreve o que é um código intermediário. 
 
a. É a representação intermediária, semelhante ao código-alvo. 
 
b. É o código final, ou seja, o código de máquina. 
 
c. É a representação inicial para a construção do código-fonte. 
 
d. É a forma mais abstrata de um compilador trabalhar. 
 
e. É a forma mais complexa de um compilador trabalhar. 
 
PERGUNTA 4 
 
A geração de código _______ ou geração direta de código-alvo pode ser vista como uma 
_______ similar a muitos dos problemas de _______. 
 
Preencha as lacunas escolhendo a alternativa CORRETA. 
 
a. atributos, computação de atributos, atributos. 
 
b. intermediário, computação de atributos, atributos. 
 
c. direto, computação de atributos, atributos. 
 
d. três endereços, aquisição de atributos, classe. 
 
e. direto, aglomeração de atributos, atributos. 
 
PERGUNTA 5 
 
Para acomodar todas as construções de uma linguagem de programação padrão, será preciso 
variar a forma do código de três endereços para cada construção. Se uma linguagem contiver 
características pouco usuais, pode ser necessário inventar novas formas de código de três 
endereços para expressar essas características. 
 
Com base no apresentado, avalie as afirmações a seguir e relacione adequadamente os 
termos aos seus conceitos. 
 
1. TINY 
2. Código de três endereços 
3. P-código 
 
I. Não apresenta uma forma padrão, da mesma maneira como não existe uma forma padrão 
para as árvores sintáticas. 
II. É reconhecida por ser uma linguagem de programação imperativa, ou seja, de pequeno 
porte e que contém somente comandos e expressões. 
III. É projetado para ser executado diretamente e contém uma descrição implícita de um 
ambiente de execução específico, que inclui o tamanho dos dados. 
 
Assinale a alternativa que correlaciona adequadamente os dois grupos de informação. 
 
a. 1 – III; 2 – II; 3 – I. 
 
b. 1 – I; 2 – II; 3 – III. 
 
c. 1 – I; 2 – III; 3 – II. 
 
d. 1 – II; 2 – III; 3 – I. 
 
e. 1 – II; 2 – I; 3 – III. 
 
PERGUNTA 6 
 
Conforme estudado, a tarefa final de um compilador é gerar código executável para uma 
máquina-alvo, o qual deve ser uma representação fiel da semântica do código-fonte. 
 
Com relação à geração de código, avalie as afirmativas a seguir. 
 
I. Na geração de código, não necessariamente estão envolvidas tentativas de otimizar ou 
melhorar a velocidade e/ou o tamanho do código-alvo. 
II. A geração de código é a fase mais complexa de um compilador. 
III. Em razão da facilidade de se gerar um código, um compilador geralmente realiza essa fase 
em um único passo. 
IV. Um compilador sempre gera um código executável. 
 
Está correto o que se afirma em: 
 
a. I, III e IV, apenas. 
 
b. I, II e IV, apenas. 
 
c. I e III, apenas. 
 
d. I, II e III, apenas. 
 
e. II, apenas. 
 
PERGUNTA 7 
 
Há duas formas populares de código intermediário: o código de três endereços e o P-código. 
 
Considerando algumas das propriedades dessas formas, analise as afirmativas a seguir e 
assinale V para a(s) verdadeira(s) e F para a(s) falsa(s). 
 
I. ( ) O P-código foi planejado para ser executado diretamente na máquina. 
II. ( ) Um código de três endereços requer que o compilador gere nomes para os 
temporários. 
III. ( ) A instrução mais básica do código de três endereços é projetada para representar a 
avaliação de expressões aritméticas. 
IV. ( ) Os temporários correspondem aos nós interiores da árvore sintática e representam 
seus valores computados. 
 
Assinale a alternativa que apresenta a sequência CORRETA. 
 
a. V, V, V, V. 
 
b. V, V, F, V. 
 
c. F, F, F, V. 
 
d. F, V, V, V. 
 
e. V, F, V, F.

Continue navegando