Buscar

AVA COMPILADORES E COMPUTABILIDADE QUESTIONÁRIO UNIDADE II UNIP

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

Prévia do material em texto

25/08/2022 18:51 Revisar envio do teste: QUESTIONÁRIO UNIDADE II – ... 
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_83493703_1&course_id=_233933_1&content_id=_2836011_1&retur… 1/6 
 
 
 
 
 
 
UNIP CONTEÚDOS ACADÊMICOS BIBLIOTECAS MURAL DO ALUNO 
 
 
 
 
COMPILADORES E COMPUTABILIDADE D571_15801_R_20222 CONTEÚDO 
Revisar envio do teste: QUESTIONÁRIO UNIDADE II 
 
 
Usuário 
Curso COMPILADORES E COMPUTABILIDADE 
Teste QUESTIONÁRIO UNIDADE II 
Iniciado 25/08/22 18:46 
Enviado 25/08/22 18:51 
Status Completada 
Resultado da tentativa 5 em 5 pontos 
Tempo decorrido 4 minutos 
Resultados exibidos Respostas enviadas, Perguntas respondidas incorretamente 
 
 
Pergunta 1 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 2 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. 
https://ava.ead.unip.br/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_49_1
https://ava.ead.unip.br/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_25_1
https://ava.ead.unip.br/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_27_1
https://ava.ead.unip.br/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_47_1
https://ava.ead.unip.br/webapps/blackboard/execute/courseMain?course_id=_233933_1
https://ava.ead.unip.br/webapps/blackboard/content/listContent.jsp?course_id=_233933_1&content_id=_2821431_1&mode=reset
25/08/2022 18:51 Revisar envio do teste: QUESTIONÁRIO UNIDADE II – ... 
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_83493703_1&course_id=_233933_1&content_id=_2836011_1&retur… 2/6 
 
 
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 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 
 
 
 
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 
25/08/2022 18:51 Revisar envio do teste: QUESTIONÁRIO UNIDADE II – ... 
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_83493703_1&course_id=_233933_1&content_id=_2836011_1&retur… 3/6 
 
 
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 5 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 formacomo 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 6 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 
25/08/2022 18:51 Revisar envio do teste: QUESTIONÁRIO UNIDADE II – ... 
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_83493703_1&course_id=_233933_1&content_id=_2836011_1&retur… 4/6 
 
 
(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 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 
25/08/2022 18:51 Revisar envio do teste: QUESTIONÁRIO UNIDADE II – ... 
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_83493703_1&course_id=_233933_1&content_id=_2836011_1&retur… 5/6 
 
 
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 
 
 
 
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 9 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 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 
25/08/2022 18:51 Revisar envio do teste: QUESTIONÁRIO UNIDADE II – ... 
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_83493703_1&course_id=_233933_1&content_id=_2836011_1&retur… 6/6 
 
 
 
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. 
Quinta-feira, 25 de Agosto de 2022 18h51min08s BRT ← OK

Outros materiais