Logo Passei Direto
Buscar

QUESTIONÁRIO UNIDADE II COMPILADORES E COMPUTABILIDADE

User badge image
Tiago Negro

em

Ferramentas de estudo

Questões resolvidas

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.

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:
Copiar o módulo de carga para a memória principal, preparando o programa para a sua execução.

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

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.

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:
Copiar o módulo de carga para a memória principal, preparando o programa para a sua execução.

Prévia do material em texto

24/10/2022 21:41 Revisar envio do teste: QUESTIONÁRIO UNIDADE II – ...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_87486688_1&course_id=_233931_1&content_id=_2835987_1&retur… 1/4
Usuário TIAGO NEGRO DE OLIVEIRA
Curso COMPILADORES E COMPUTABILIDADE
Teste QUESTIONÁRIO UNIDADE II
Iniciado 24/10/22 21:31
Enviado 24/10/22 21:38
Status Completada
Resultado da tentativa 5 em 5 pontos 
Tempo decorrido 6 minutos
Resultados exibidos Respostas enviadas, Perguntas respondidas incorretamente
Pergunta 1
Resposta Selecionada: e. 
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.
 
Todos itens são verdadeiros. 
Pergunta 2
Resposta
Selecionada:
a. 
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:
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 3
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.
0,5 em 0,5 pontos
0,5 em 0,5 pontos
0,5 em 0,5 pontos
0,5 em 0,5 pontos
0,5 em 0,5 pontos
0,5 em 0,5 pontos
0,5 em 0,5 pontos
24/10/2022 21:41 Revisar envio do teste: QUESTIONÁRIO UNIDADE II – ...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_87486688_1&course_id=_233931_1&content_id=_2835987_1&retur… 2/4
Resposta Selecionada:
a. 
Pergunta 4
Resposta
Selecionada:
e. 
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:
 
Copiar o módulo de carga para a memória principal, preparando o
programa para a sua execução.
Pergunta 5
Resposta Selecionada: c. 
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.
 
Os itens I e II são verdadeiros.
Pergunta 6
A respeito dos Carregadores ( Loaders) é incorreto afirmar:
0,5 em 0,5 pontos
0,5 em 0,5 pontos
0,5 em 0,5 pontos
24/10/2022 21:41 Revisar envio do teste: QUESTIONÁRIO UNIDADE II – ...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_87486688_1&course_id=_233931_1&content_id=_2835987_1&retur… 3/4
Resposta
Selecionada:
e. 
 
Reunir os módulos objeto em um único elemento chamado de módulo
absoluto de carga.
Pergunta 7
Resposta Selecionada: e. 
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.
 
Todos itens são verdadeiros.
Pergunta 8
Resposta Selecionada:
b. 
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.
Pergunta 9
Um dos tipos de analisadores ascendentes é o conhecido como LR(1), que constrói a
árvore sintática do programa realizando reduções através das regras da gramática
geradora da linguagem. Considerando o estado corrente do mecanismo reconhecedor (um
autômato de pilha) e apenas um símbolo da entrada é possível determinar com precisão
qual a regra apropriada e que de ser aplicada em cada momento do processo de análise
do programa.
A construção desse autômato começa com uma ampliação das regras da gramática, as
quais acrescenta-se uma nova regra que sinalize o início do processo de derivação e
permita diferenciar qualquer ocorrência do símbolo inicial daquela que se configura como
raiz da árvore sintática.
24/10/2022 21:41 Revisar envio do teste: QUESTIONÁRIO UNIDADE II – ...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_87486688_1&course_id=_233931_1&content_id=_2835987_1&retur…4/4
Resposta Selecionada:
d. 
Adicionalmente caracterizamos os diferentes momentos de derivação de uma regra
através de uma representação na forma de item. Num item dado por o marcador
sinaliza os símbolos que já foram encontrados pelo parser (os símbolos de α) e também
aqueles que ainda faltam para que a regra tenha sido completamente derivada 
. Quando todos os símbolos tiverem sido encontrados,
ou seja, tivermos um item na forma é possível então realizar a redução da
sequência correspondente por A.
 Supondo a gramática dada a seguir:
 
Sabendo que já encontra-se aumentada pela inclusão da regra 0, assinale a alternativa
que corresponde ao primeiro estado (inicial) do autômato de reconhecimento deste
analisador. 
Pergunta 10
Resposta Selecionada: e. 
São tarefas de responsabilidade de um montador Assembler:
I - A substituição dos mnemônicos pelos opcodes numéricos do conjunto ISA (Instruction
Set of Architecture), seguindo uma tabela de associações que relaciona o mnemônico com
a instrução-alvo.
II - A substituição dos endereços simbólicos que representam destinos de saltos e
constantes por endereços numéricos, determinando de maneira absoluta ou relativa em
termos do registrador PC (Program Counter) o endereço de destino dos rótulos.
III - Reservar espaço na memória para armazenamento de dados de acordo com o tipo
associado a cada variável declarada no programa.
IV - Gerar constantes em memória para variáveis e constantes, determinando o valor
associado ao modo de endereçamento do operando.
 
Todos itens são verdadeiros.

Mais conteúdos dessa disciplina