Questionário Unidade Ii

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 6

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 Achei na esquina da minha rua


Curso COMPILADORES E COMPUTABILIDADE
Teste QUESTIONÁRIO UNIDADE II
Iniciado 10/10/1990 26:59
Enviado 10/10/22 04:20
Status Completada
Resultado da tentativa 5 em 5 pontos
 
Tempo decorrido 20 minutos
Resultados exibidos Respostas enviadas, Perguntas respondidas incorretamente

Pergunta 1 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 2 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.

Pergunta 3 0,5 em 0,5 pontos

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.

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. 

Resposta Selecionada:
d.

Pergunta 4 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 a.
Selecionada: 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 5 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 6 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.

Resposta Selecionada:

a.

Pergunta 7 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 8 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 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

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. 

Segunda-feira, 15 de Agosto de 2022 20h20min14s BRT ←


OK

Você também pode gostar