Buscar

Revisar envio do teste_ QUESTIONÁRIO UNIDADE II _

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 6 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 6 páginas

Continue navegando


Prévia do material em texto

COMPILADORES E COMPUTABILIDADE CONTEÚDO 
Revisar envio do teste: QUESTIONÁRIO UNIDADE II 
 
 
Usuário 
Curso COMPILADORES E COMPUTABILIDADE 
Teste QUESTIONÁRIO UNIDADE II 
Iniciado 01/09/22 21:35 
Enviado 01/09/22 21:46 
Status Completada 
Resultado da tentativa 5 em 5 pontos 
Tempo decorrido 10 minutos 
Resultados exibidos Respostas enviadas, Perguntas respondidas incorretamente 
 
 
Pergunta 1 0,5 em 0,5 pontos 
 
 
 
A respeito dos Carregadores ( Loaders) é incorreto afirmar: 
 
Resposta 
Selecionada: 
e. 
Reunir os módulos objeto em um único elemento chamado de 
módulo absoluto de carga. 
 
 
 
 
 
 
Pergunta 2 0,5 em 0,5 pontos 
 
 
 
Supondo a expressão dada pela árvore sintática abaixo, assinale a alternativa que 
corresponde ao código intermediário gerado na forma de quádruplas. 
https://ava.ead.unip.br/webapps/blackboard/execute/courseMain?course_id=_233931_1
https://ava.ead.unip.br/webapps/blackboard/content/listContent.jsp?course_id=_233931_1&content_id=_2821429_1&mode=reset
 
 
 
 
 
 
 
Resposta Selecionada: 
 
 
 
 
a. 
 
 
 
 
 
 
Pergunta 3 0,5 em 0,5 pontos 
 
 
 
Em uma Gramática de Atributos podemos classificar cada um de seus atributos em 
duas categorias, herdados e sintetizados, de acordo com o símbolo a quem estão 
associados durante o seu cálculo. Os chamados atributos herdados são aqueles que 
aparecem ligados a elementos posicionados a direita do sinal de derivação, ou seja, 
em uma regra na forma A→α, seriam os atributos ligados a qualquer símbolo da 
sentença α. Por sua vez, os atributos ditos sintetizados são aqueles que aparecem 
associados ao elemento da esquerda do sinal de derivação, isto é, para o nosso 
exemplo, seriam aqueles que estiverem associados ao símbolo A. A respeito dos 
atributos analise os itens a seguir e assinale a alternativa correta. 
I) Entre outros aspectos, a categorização dos atributos é importante pois permite 
determinar o sentido em que devemos percorrer a árvore sintática para calculá-lo. 
No caso dos atributos herdados, como o próprio nome sugere, seu valor é calculado 
a partir de elementos hierarquicamente superiores da árvore e dos quais este valor 
“deriva”. 
II) Atributos sintetizados são computados a partir de nós inferiores da árvore 
sintática, assim os sucessivos valores deste atributo podem ser calculados 
percorrendo a árvore de baixo para cima. Esta categoria de atributos é 
especialmente interessante para a propagação de características comuns a 
diferentes trechos do código, como por exemplo no trecho “int x, y, z;”, em que o 
tipo int pode ser propagado para um nó superior comum a todas as variáveis (x, y e 
z) declaradas no mesmo comando. 
III) Gramáticas que utilizam apenas atributos sintetizados são chamadas de S- 
Atribuídas. Na tradução dirigida pela sintaxe, assume‐se que os símbolos terminais 
tenham apenas atributos sintetizados uma vez que as definições não providenciem 
quaisquer regras semânticas, apenas ações para a geração de código. 
 
Resposta Selecionada: e. Todos itens são verdadeiros. 
 
 
 
 
 
 
 
 
Pergunta 4 
 
0,5 em 0,5 pontos 
 
 
 
Usualmente a geração de código acontece em duas etapas. Primeiramente ocorre a 
tradução da estrutura do programa para um código em linguagem intermediária e 
em seguida, esse código dado linguagem intermediária é então traduzido para a 
linguagem simbólica do processador-alvo. A esse respeito julgue as afirmativas a 
seguir e assinale a alternativa correta. 
I - Permitir o reaproveitamento de código, facilitando a portabilidade de um 
compilador para diversas plataformas, uma vez que apenas os módulos finais 
precisam ser refeitos a cada nova plataforma de hardware. 
II - Permitir a utilização de um otimizador de código que analise aspectos 
independentemente de máquina e melhore o código intermediário antes de uma 
tradução definitiva. 
III - Permitir uma compilação portável para diferentes arquiteturas e sistemas 
operacionais independente de qual seja a linguagem fonte. 
 
Resposta Selecionada: c. Os itens I e II são verdadeiros. 
 
 
 
 
 
 
Pergunta 5 0,5 em 0,5 pontos 
 
 
 
A respeito da definição e tarefas dos Montadores ( Assemblers), Ligadores ( Linkers) e 
Carregadores ( Loaders) analise as afirmativas a seguir e assinale a alternativa 
correta. 
I) Os montadores são encarregados da tradução do programa escrito em linguagem 
de montagem ( assembly) para um programa equivalente escrito em linguagem de 
máquina, isto é, com o conjunto de instruções da arquitetura alvo (ISA – Instruction 
Set Architecture). 
II) Os ligadores, llinkers ou linkeditores são programas responsáveis por unir as 
diferentes partes de um programa e construir um único executável. A sua existência 
é o que permite a modularização de um programa e o uso de bibliotecas estáticas. 
III) O Loader: é responsável pela transferência de um programa do disco para a 
memória principal, deixando-o pronto para a execução. Usualmente o carregador é 
parte do Sistema Operacional. 
 
 
Resposta Selecionada: e. Todos itens são verdadeiros. 
 
 
 
 
 
 
Pergunta 6 0,5 em 0,5 pontos 
 
 
 
 
 
O Linker tem a tarefa de reunir em um único programa os vários módulos objeto 
obtidos a partir da tradução dos diferentes arquivos fontes que compõe o 
programa. Esse arquivo resultante, dado por todas as partes devidamente 
encaixadas, damos o nome de Módulo Absoluto de Carga. Durante esse processo o 
linker deve ser capaz de resolver as chamadas Referências Cruzadas, isto é, 
referência a elementos externos ao módulo corrente e são conhecidos apenas após 
a ligação do módulos. Tendo em mente estas atribuições, é incorreto afirmar que 
cabe ao Linker: 
 
Resposta 
Selecionada: 
e. 
Copiar o módulo de carga para a memória principal, preparando o 
programa para a sua execução. 
 
 
 
 
 
 
Pergunta 7 0,5 em 0,5 pontos 
 
 
 
A tabela de símbolos é uma estrutura de dados que tem por propósito armazenar 
todos os nomes declarados pelo programador juntamente com os seus respectivos 
atributos. É considerada fundamental para o processo de compilação, pois participa 
de várias etapas do processo inclusive para a geração de código. Durante a análise 
semântica o compilador busca nesta tabela as informações sobre os identificadores 
que participam de suas análises, como por exemplo, para recuperar os tipos dos 
identificadores envolvidos no cálculo de uma expressão com o propósito de verificar 
a compatibilidade entre eles. 
Sobre a tabela de símbolos e a análise semântica é incorreto afirmar que: 
Resposta 
Selecionada: 
a. 
Questões relacionadas a declaração prévia dos identificadores, 
escopo de utilização e a verificação dos argumentos informados 
como parâmetro durante a chamada de uma sub-rotina são 
aspectos pertinentes ao componente semântico de tempo de 
execução. 
 
 
 
 
 
 
Pergunta 8 0,5 em 0,5 pontos 
 
 
 
Aspectos como a obrigatoriedade de declaração antes do uso, compatibilidade de 
tipos durante atribuições ou mesmo a adequação as regras de escopo na utilização 
dos identificadores, são exemplos de questões que estão além do domínio sintático 
de uma linguagem de programação. Assim a análise semântica é responsável, 
fundamentalmente, por realizar três tarefas básicas: construir uma descrição dos 
tipos e estruturas de dados definidas pelo programador; armazenar informações 
sobre os identificadores; e verificar os tipos e demais aspectos dependentes de 
 
 
contexto na estrutura do programa. 
Acerca da análise semântica de programas, assinale a alternativa correta. 
 
Resposta 
Selecionada: 
c. 
Há aspetos semânticos que estão ligados a execução do programa e 
referem-se a forma como o programa realiza suas tarefas. Por 
exemplo, supondo o comando “SE (i<>0) E (K/I > 10) ...”, entende-se 
que, se concluirmos que a primeira parte é falsa não há necessidade 
de avaliar a segunda (uma vez que para o operador E é impossível 
obterum resultado verdadeiro nesta situação). Por outro lado, se o 
analisador semântico não considerar a relação que envolve estas 
duas cláusulas, a falsidade da primeira implicará em um erro de 
divisão por zero durante a avaliação da segunda cláusula. 
 
 
 
 
 
 
Pergunta 9 0,5 em 0,5 pontos 
 
 
 
A memória é um recurso controlado pelo sistema operacional e um programa não 
deve ter posições de memória fixas e pré-estabelecidas para que funcione 
corretamente. Usualmente o programador desenvolve seu código despreocupado 
de qual será sua localização na memória, pois caberá ao sistema resolver os 
problemas relacionados com posicionamento do código quando colocar o programa 
na memória para execução. Este processo de resolução de endereços é chamado de 
relocação. 
A atividade de relocação é realizada conjuntamente por montadores e carregadores. 
Os montadores são encarregados de marcar as posições no código-objeto passíveis 
de alteração, enquanto os carregadores devem reservar espaço suficiente na 
memória para receber o código de máquina e atualizar suas posições a partir da 
localização base do programa na memória. 
A esse respeito analise as afirmativas a seguir e assinale a alternativa correta. 
I - As referências aos símbolos externos devem estar presentes no módulo-objeto e 
podem ocorrer quanto um símbolo é referenciado no segmento, mas, definido, 
ocorre em outro segmento (descrito como uma referência externa), ou ainda, 
quando um símbolo é definido neste segmento e poderá ser referenciado em outro 
segmento (descrito como uma definição local de um símbolo externamente 
referenciável). 
II - O Dicionário de Símbolos Externos contém todos os símbolos que estão 
envolvidos no processo de resolução de referências entre segmentos: símbolos 
associados a referências externas, a definições locais ou a definições de segmentos. 
III - O Diretório de Relocação e Ligação indica, para cada segmento, quais posições 
deverão ter seus conteúdos atualizados, de acordo com o posicionamento em 
memória deste e de outros segmentos. 
 
Resposta Selecionada: e. Todos itens são verdadeiros. 
 
 
 
 
 
 
Pergunta 10 0,5 em 0,5 pontos 
 
 
 
Supondo o comando: (em C) assinale a alternativa 
que corresponde a uma das possíveis versões de código intermediário dado na 
forma de quádruplas para este comando. 
 
Resposta Selecionada: 
b. 
Quinta-feira, 1 de Setembro de 2022 21h46min23s GMT-03:00 ← OK