Logo Passei Direto
Buscar

Questionário Unidade II - Compiladores e Computabilidade

Ferramentas de estudo

Questões resolvidas

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:
Os tipos declarados pelo programador estendem os elementos básicos da linguagem, permitindo a definição de variáveis que estão além dos tipos primitivos oferecidos por ela.
Desta forma, em uma linguagem de programação orientada a objetos, o analisador semântico desempenha um papel mais complexo uma vez que é responsável também pelas verificações de compatibilidade entre classes derivadas e pela resolução do escopo no caso da reescrita de métodos.

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

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 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:
Os tipos declarados pelo programador estendem os elementos básicos da linguagem, permitindo a definição de variáveis que estão além dos tipos primitivos oferecidos por ela.
Desta forma, em uma linguagem de programação orientada a objetos, o analisador semântico desempenha um papel mais complexo uma vez que é responsável também pelas verificações de compatibilidade entre classes derivadas e pela resolução do escopo no caso da reescrita de métodos.

Prévia do material em texto

Revisar envio do teste: QUESTIONÁRIO UNIDADE II
COMPILADORES E COMPUTABILIDADE D571_13701_R_20192 CONTEÚDO
Usuário LUAN GABRIEL MAZALI SILVA
Curso COMPILADORES E COMPUTABILIDADE
Teste QUESTIONÁRIO UNIDADE II
Iniciado 30/10/19 13:34
Enviado 30/10/19 17:24
Status Completada
Resultado da tentativa 4 em 5 pontos  
Tempo decorrido 3 horas, 49 minutos
Resultados exibidos Respostas enviadas, Perguntas respondidas incorretamente
Pergunta 1
Resposta
Selecionada:
b.
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 identi�cadores que participam de suas análises, como por
exemplo, para recuperar os tipos dos identi�cadores envolvidos no cálculo de uma expressão
com o propósito de veri�car a compatibilidade entre eles. 
Sobre a tabela de símbolos e a análise semântica é incorreto a�rmar que:
Os tipos declarados pelo programador estendem os elementos básicos da
linguagem, permitindo a de�nição de variáveis que estão além dos tipos
primitivos oferecidos por ela. Desta forma, em uma linguagem de programação
orientada a objetos, o analisador semântico desempenha um papel mais
complexo uma vez que é responsável também pelas veri�cações de
compatibilidade entre classes derivadas e pela resolução do escopo no caso da
reescrita de métodos.
Pergunta 2
Resposta
Selecionada:
e.
A respeito dos Carregadores ( Loaders) é incorreto a�rmar: 
 
Reunir os módulos objeto em um único elemento chamado de módulo
absoluto de carga.
UNIP BIBLIOTECAS MURAL DO ALUNOCONTEÚDOS ACADÊMICOS
0 em 0,5 pontos
0,5 em 0,5 pontos
LUAN SILVA
Pergunta 3
Resposta Selecionada: e. 
A sintaxe geralmente é de�nida 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 identi�cadores.
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 quanti�car 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. 
 
Todos itens são verdadeiros.
Pergunta 4
Resposta Selecionada: c. 
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 a�rmativas 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.
Os itens I e II são verdadeiros.
Pergunta 5
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 a�rmativas a seguir e marque a alternativa correta. 
I - Por conta de sua forma peculiar de construção da árvore, os passos executados pelo
0,5 em 0,5 pontos
0,5 em 0,5 pontos
0,5 em 0,5 pontos
Resposta Selecionada: c. 
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 �m 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 �m de arquivo, independentemente do conteúdo da pilha de controle do
processo. Este momento é conhecido como validação por entrada vazia.
Apenas os itens I e II são verdadeiros.
Pergunta 6
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 a�rmar que cabe ao
Linker: 
 
Copiar o módulo de carga para a memória principal, preparando o programa
para a sua execução.
Pergunta 7
Resposta Selecionada: e. 
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 a�rmativas 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 �nais 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 de�nitiva. 
III - Permitir uma compilação portável para diferentes arquiteturas e sistemas operacionais
independente de qual seja a linguagem fonte. 
 
Todos itens são verdadeiros.
0,5 em 0,5 pontos
0 em 0,5 pontos
Pergunta 8
Resposta Selecionada: e. 
A memória é um recurso controlado pelo sistema operacional e um programa não deve ter
posições de memória �xas e pré-estabelecidaspara 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 su�ciente 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 a�rmativas 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, de�nido, ocorre em outro
segmento (descrito como uma referência externa), ou ainda, quando um símbolo é de�nido
neste segmento e poderá ser referenciado em outro segmento (descrito como uma de�niçã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 de�nições locais ou a de�niçõ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. 
 
Todos itens são verdadeiros.
Pergunta 9
Resposta Selecionada: e. 
A respeito da de�nição e tarefas dos Montadores ( Assemblers), Ligadores ( Linkers) e
Carregadores ( Loaders) analise as a�rmativas 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 10
0,5 em 0,5 pontos
0,5 em 0,5 pontos
0,5 em 0,5 pontos
Quarta-feira, 30 de Outubro de 2019 17h24min26s BRT
Resposta Selecionada: e. 
Em uma Gramática de Atributos podemos classi�car 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 de�nições não providenciem quaisquer regras semânticas, apenas
ações para a geração de código. 
 
Todos itens são verdadeiros.
← OK

Mais conteúdos dessa disciplina