Prévia do material em texto
Unidade II Revisar envio do teste: Questionário Unidade II (2017/2)H
Revisar envio do teste: Questionário Unidade II (2017/2)
Usuário ALEX SANDER SABINO ROCHA
Curso COMP COMP COMPILADORES E COMPUTABILIDADE
Teste Questionário Unidade II (2017/2)
Iniciado 25/10/17 09:06
Enviado 25/10/17 09:40
Status Completada
Resultado da
tentativa
5 em 5 pontos
Tempo
decorrido
34 minutos
Instruções ATENÇÃO: esta avaliação segue as seguintes configurações:
- possui número de tentativas limitadas a 3 (três)
- valida a sua frequência e nota na disciplina em questão;
- não apresenta as justificativas corretas, pois trata-se de um avaliativo;
- não soma pontos de “tentativa em andamento” (tentativas iniciadas e não concluídas/enviadas)
– porém, uma vez acessada, é considerada como uma de suas 3 (três ) tentativas permitidas e
precisa ser editada e enviada para ser devidamente considerada;
- possui sua pontuação submetida a um cálculo final conforme exposto abaixo – o cálculo final
será executado e apresentado em sua “Secretaria Virtual”:
1° envio – será considerada a nota referente aos acertos dos exercícios
enviados;
2° envio – será considerada a média aritmética das notas dos 1º e 2º envios;
3° envio – será considerada a média aritmética das notas dos 1º, 2º e 3º envios;
- possui um período de envio (previsto em Calendário Acadêmico) e não será possível acesso
para validar sua nota e frequência após esse prazo.
- a NÃO realização prevê nota 0 (zero).
Resultados
exibidos
Respostas enviadas, Perguntas respondidas incorretamente
Pergunta 1
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 2
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
Unip Interativa
0,5 em 0,5 pontos
0,5 em 0,5 pontos
ALEX ROCHA
←← OK OK
Revisar envio do teste: Questionário Unidade II ... https://ava.ead.unip.br/webapps/assessment/re...
1 de 4 25-10-2017 09:41
(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 3
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
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
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 6
0,5 em 0,5 pontos
0,5 em 0,5 pontos
0,5 em 0,5 pontos
0,5 em 0,5 pontos
Revisar envio do teste: Questionário Unidade II ... https://ava.ead.unip.br/webapps/assessment/re...
2 de 4 25-10-2017 09:41
Resposta Selecionada:
a.
Resultado Operador Oper_1 Oper_2
t1 * b c
t2 -U d
t3 * b t2
t4 + t1 t3
a := t4
Pergunta 7
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 8A 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
0,5 em 0,5 pontos
0,5 em 0,5 pontos
Revisar envio do teste: Questionário Unidade II ... https://ava.ead.unip.br/webapps/assessment/re...
3 de 4 25-10-2017 09:41
Quarta-feira, 25 de Outubro de 2017 09h40min57s BRST
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 9
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 10
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 A→α•β, 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 (a sequência correspondente a β). Quando todos os símbolos
tiverem sido encontrados, ou seja, tivermos um item na forma A→αβ• é possível então realizar a redução
da sequência correspondente αβ por A.
Supondo a gramática dada a seguir:
G = ( {S,V,D,T,L}, {“int”, “float”, “id”, “;” , “,”}, P, S)
P = { (0) S → V, (4) T → “int”,
(1) V → D “;” V, (5) T → “float”,
(2) V → D, (6) L → L “,” “id”
(3) D → TL, (7) L → “id” }
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.
Estado 0:
S → •V
V → •D “;” V
V → •D
D → •TL
T → •“int”
T → •“float”
0,5 em 0,5 pontos
0,5 em 0,5 pontos
Revisar envio do teste: Questionário Unidade II ... https://ava.ead.unip.br/webapps/assessment/re...
4 de 4 25-10-2017 09:41