Você está na página 1de 1

CARLOS SOBRAL 1

UNIP CONTEÚDOS ACADÊMICOS BIBLIOTECAS MURAL DO ALUNO

COMPILADORES E COMPUTABILIDADE D571_13701_R_20222 CONTEÚDO Revisar envio do teste: QUESTIONÁRIO UNIDADE II

Usuário CARLOS HENRIQUE DA S SOBRAL


Curso COMPILADORES E COMPUTABILIDADE
Teste QUESTIONÁRIO UNIDADE II
Iniciado 03/09/22 21:56
COMPILADORES Enviado 03/09/22 22:20
E
COMPUTABILIDA Status Completada
DE Resultado da tentativa 5 em 5 pontos
(D571_13701_R_2
0222) Tempo decorrido 24 minutos
Resultados exibidos Respostas enviadas, Perguntas respondidas incorretamente

CONTEÚDO

Pergunta 1 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 c.
Selecionada:
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 obter um 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 2 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 3 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 4 0,5 em 0,5 pontos

A sintaxe geralmente é definida por uma Gram. Livre de Contexto, mas estas não são capazes de descrever aspectos sobre a compatibilidade de tipos ou regras de escopo de
identificadores. Analise as informações a seguir e assinale a alternativa correta.
I) Uma Gramática de Atributos é uma gramática livre de contexto estendida com regras de cálculo e/ou ações semânticas de modo a fornecer sensitividade ao contexto através de
elementos chamados de atributos, que estão associados aos símbolos terminais e não terminais utilizados na regra de produção.
II) Um atributo é qualquer propriedade da estrutura da linguagem que se deseja quantificar ou caracterizar, como por exemplo, o tipo e o escopo das variáveis, valores de expressões,
etc.
III) O valor dos atributos é estabelecido tomando como base a árvore sintática explícita do programa e podem ser calculados tanto em tempo de compilação quanto em tempo de
execução, de acordo com a propriedade que representam.

Resposta Selecionada: e. Todos itens são verdadeiros.

Pergunta 5 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 6 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 7 0,5 em 0,5 pontos

A tabela de movimentos de um analisador LR(1) é construída a partir de um autômato de pilha, cujos estados representam o processo de derivação do programa em relação a
gramática de linguagem. As diferentes posições da tabela informam ao analisador qual a operação (empilhamento, redução ou aceitação) deve ser realizada em cada instante do
processo de análise, tomando como referência apenas o estado corrente e o símbolo (token) dado na entrada. Acerca desta tabela e de sua construção, analise cada uma das
afirmativas a seguir e selecione a alternativa correta.
I - A operação de empilhamento equivale a retirada do símbolo da entrada e sua inserção na pilha para processamento. A célula da tabela equivalente a esta ação é dada pelo
número correspondente ao estado que o autômato assume após a transição.
II - Durante uma ação de redução, os símbolos (estados) equivalentes a cadeia derivada, são retirados da pilha e substituídos pelo não-terminal que os origina, realizando assim o
processo inverso ao da derivação pela regra em questão. Na tabela essa ação é colocada em cada célula cuja linha corresponde ao estado que contém a regra completada e as
colunas correspondentes aos símbolos pertencentes ao conjunto de seguidos (Follow) do não-terminal associado à regra.
III - A aceitação da cadeia ocorre quando encontramos uma ocorrência do símbolo inicial da gramática. Desta forma, preenchemos a coluna correspondente ao símbolo inicial com
esta ação para todas as linhas da tabela.
Resposta Selecionada: c. Os itens I e II são verdadeiros.

Pergunta 8 0,5 em 0,5 pontos

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.

Resposta Selecionada:
e. Todos itens são verdadeiros.

Pergunta 9 0,5 em 0,5 pontos

Um analisador sintático dito ascendente é aquele que processa a cadeia de entrada e constrói sua árvore de derivação de baixo para cima, ou seja, partindo dos símbolos do
programa (as folhas da árvore) em direção ao símbolo inicial da gramática (raiz). A esse respeito analise cada uma das afirmativas a seguir e marque a alternativa correta.
I - Por conta de sua forma peculiar de construção da árvore, os passos executados pelo analisador correspondem ao processo de derivação conhecido como mais à direita ( right-
most) invertido. O processo mais à direita é aquele em que sempre derivamos o símbolo não-terminal mais à direita antes dos demais. E é dito invertido para que a entrada possa ser
processada de maneira natural, isto é, a leitura dos símbolos de entrada sendo feito do início para o fim do arquivo.
II - Analisadores deste tipo realizam duas operações básica: de empilhamento (ou deslocamento) de s, em que o símbolo da entrada s é colocado na pilha; e a operação de redução
pela regra A→α, em que os símbolos correspondentes a cadeia α são retirados da pilha e substituídos pelo não-terminal A.
III - A validação do programa acontece quando o analisador processa todos os símbolos da entrada e alcança o fim de arquivo, independentemente do conteúdo da pilha de controle
do processo. Este momento é conhecido como validação por entrada vazia.
Resposta Selecionada: c. Apenas os itens I e II são verdadeiros.

Pergunta 10 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.

Sábado, 3 de Setembro de 2022 22h20min53s GMT-03:00


← OK

Você também pode gostar