Buscar

compiladores QUESTIONÁRIO UNIDADE I

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 5 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

Prévia do material em texto

23/10/2018 Revisar envio do teste: QUESTIONÁRIO UNIDADE I – D571_...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_8567470_1&course_id=_21702_1&content_id=_337652_1&return_c… 1/5
 
Revisar envio do teste: QUESTIONÁRIO UNIDADE I
COMP COMP COMPILADORES E COMPUTABILIDADE D571_13701_A_R_20182 CONTEÚDO
Usuário FLAVIA MARIA DA SILVA
Curso COMP COMP COMPILADORES E COMPUTABILIDADE
Teste QUESTIONÁRIO UNIDADE I
Iniciado 27/09/18 19:56
Enviado 23/10/18 02:14
Status Completada
Resultado da tentativa 4,5 em 5 pontos  
Tempo decorrido 605 horas, 18 minutos
Resultados exibidos Respostas enviadas, Perguntas respondidas incorretamente
Pergunta 1
Resposta
Selecionada:
e.
Os diferentes elementos básicos que compõe uma linguagem, tais como as palavras
reservadas, identi�cadores, operadores e quaisquer outros lexemas estabelecidos por ela,
também possuem uma estrutura sintática e podem ser descritos formalmente através de
expressões regulares. Entretanto a tarefa de reconhecimento dos lexemas é realizada pelo
Analisador Léxico, acontecendo de maneira separada da Análise Sintática do código. 
Assim, um analisador léxico é antes de mais nada um elemento reconhecedor destas
estruturas e pode ser de�nido como um autômato �nito, dada a natureza regular dos
elementos da linguagem. 
Julgue cada uma das a�rmativas a seguir e assinale a alternativa correta. 
I) As gramáticas regulares não permitem a descrição de estruturas aninhadas e portanto
não são capazes de descrever simultaneamente os lexemas e também as demais
estruturas típicas nas linguagem de programação, tais como parênteses balanceados e
comandos aninhados. 
II) A separação das etapas permite utilizar gramaticas regulares, que são mais simples e
mais e�cientes, para a descrição dos lexemas tornado a implementação do reconhecedor
mais fácil. 
III) O analisador sintático �caria muito mais complexo, pois estaria a todo momento
preocupado em prever a ocorrência de símbolos irrelevantes, tais como espaços em
branco, que teriam sido eliminados pela análise léxica.
Todos itens são verdadeiros e os motivos apresentados justi�cam a
separação dos analisadores. 
 
Pergunta 2
Um analisador sintático descendente constrói a árvore de derivação do programa de cima
para baixo, isto é, partindo da raiz (símbolo inicial da gramática) e seguindo em direção as
CONTEÚDOS ACADÊMICOS BIBLIOTECAS MURAL DO ALUNOASSOCIADA / COLIGADA
0,5 em 0,5 pontos
0,5 em 0,5 pontos
FLAVIA SILVA
23/10/2018 Revisar envio do teste: QUESTIONÁRIO UNIDADE I – D571_...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_8567470_1&course_id=_21702_1&content_id=_337652_1&return_c… 2/5
Resposta
Selecionada:
a.
folhas (símbolos do programa). Todos os métodos que adotam esta estratégia seguem
esta abordagem, variando pontualmente a forma como resolvem o problema de
selecionar a regra a ser aplicada em cada momento. Pode-se a�rmar sobre o Analisador
Descendente Recursivo:
É um reconhecedor obtido através da transcrição das regras de produção
da gramática na forma de um conjunto de sub-rotinas. Assim, cada sub-
rotina é responsável por veri�car os elementos relativos a uma produção
em particular. O processo de reconhecimento se inicia com a chamada da
sub-rotina equivalente a regra que deriva o símbolo inicial da gramática. A
partir disto, chamadas subsequentes para outras sub-rotinas são
realizadas sempre que um símbolo não terminal é encontrado na
produção. Quando todos os elementos são consumidos, a chamada inicial
retorna sinalizando que se trata de uma sentença é válida.
Pergunta 3
Resposta Selecionada:
a. 
 Um analisador sintático LL(1) somente pode ser construído para uma classe restrita de
gramáticas, que também recebem este mesmo nome. Uma de suas características é que
suas produções não apresentem pre�xos comuns para cadeias distintas derivadas a partir
de um mesmo não-terminal. Ou seja, se duas produções que começam com o mesmo
símbolo ou conjunto de símbolos (pre�xo), por exemplo, como nas regras A→αβ e A→αδ e
sendo First(α) ≠ ∅, implicará numa interseção entre os conjuntos First(αβ) e First(αδ) e o
analisador não será capaz de decidir qual regra escolher utilizando um único símbolo da
entrada. Usualmente o problema pode ser resolvido substituindo as produções da
gramática que causam o problema por outras que acomodem essa restrição, mantendo a
equivalência entre elas. Supondo a produção S → if E then S else S � | if E then S � | K e
considerando ε como a sentença vazia, quais dentre as alternativas a seguir representa
uma substituição válida para resolver o problema apresentado e obter uma gramática
equivalente que seja LL(1)?.
S → if E then S R � | K 
R → else S | ε
Pergunta 4
Resposta
Selecionada:
a.
Supondo a gramática a seguir e a sentença (a,(a),(a,a)), quais seriam os movimentos
realizados por um reconhecedor ascendente para esta cadeia?
G = ({L,S}, {“(“, ”)”, ”a”, ”,”}, L, P ) 
P. L → (S) 
S → I,S | I 
I → a | L 
 
(a,(a),(a,a)) ⇒ (I,(a),(a,a)) ⇒ (I,(I),(a,a)) ⇒ (I,(S),(a,a)) ⇒ (I,L,(a,a)) ⇒ (I,I,(a,a)) ⇒ (I,I,
(I,a)) ⇒(I,I,(I,I)) ⇒ (I,I,(I,S)) ⇒ (I,I,(S)) ⇒ (I,I,L) ⇒ (I,I,I) ⇒ (I,I,S) ⇒ (I,S) ⇒ (S) ⇒ L.
0,5 em 0,5 pontos
0,5 em 0,5 pontos
23/10/2018 Revisar envio do teste: QUESTIONÁRIO UNIDADE I – D571_...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_8567470_1&course_id=_21702_1&content_id=_337652_1&return_c… 3/5
Pergunta 5
Resposta
Selecionada:
c.
Assinale a alternativa que representa a principal tarefa realizada pela Análise léxica.
Varrer o arquivo fonte, lendo-o caractere por caractere e agrupá-los em
blocos de um ou mais elementos de acordo com o signi�cado dentro da
linguagem.
Pergunta 6
Resposta
Selecionada:
a.
Para o desenvolvimento de um compilador é possível que se adote um dos diferentes
modelos de construção. Um destes é o que chamamos de modelo de múltiplas passagens,
em que as atividades relacionadas a tradução e a escrita do código alvo são realizadas em
etapas encadeadas. Cada fase realiza sua tarefa percorrendo todo o código fonte e, após
uma conclusão bem-sucedida, inicia-se a etapa subsequente tendo como entrada o
resultado da fase anterior. Acerca deste modelo analise as seguintes considerações. 
- Trata-se de um modelo bastante didático, pois a modularização do processo permite o
desenvolvimento gradativo do compilador enquanto se estuda com mais detalhes as
atividades pertinentes a cada etapa. 
- Por outro lado, uma desvantagem inerente ao modelo é que por exemplo um erro
semântico localizado nas primeiras linhas do código fonte somente seria detectado após a
conclusão das análises léxica e sintática de todas as linhas do programa. 
Assinale a alternativa que representa o melhor juízo cabível sobre o que se a�rmou.
Ambas as assertivas são verdadeiras, sendo a segunda a justi�cativa
da primeira.
Pergunta 7
Resposta
Selecionada:
e.
No modelo de Análise e Síntese o processo é dividido em duas grandes etapas. Na
primeira, são realizadas todas as tarefas pertinentes a análise e compreensão do código
fonte, enquanto na segunda, as atividades de otimização e a geração do código
propriamente dito. Cada uma destas grandes etapas pode ser decompostas em fases, de
propósito especí�co e cujo resultado de seu processamento servirá como dado de entrada
para a próxima fase. Analise as alternativas a seguir e assinale aquela cuja atividade não
corresponde a nenhuma das subfases deste modelo.
0,5 em 0,5 pontos
0,5 em 0,5 pontos
0,5 em 0,5 pontos
23/10/2018 Revisar envio do teste: QUESTIONÁRIO UNIDADE I – D571_...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_8567470_1&course_id=_21702_1&content_id=_337652_1&return_c… 4/5
A fase de link edição, ou ligação, é responsável por criar o arquivo
executávelcombinando todos os arquivos objetos em um único módulo
de carga. 
 
Pergunta 8
Resposta
Selecionada:
b.
O processo de programar um computador para realizar uma determinada tarefa, quando
analisado em relação às atividades que são necessárias desde a codi�cação do algoritmo
até a execução propriamente dita do programa, pode ser visto como um processo
complexo e que envolve vários elementos, cada qual com propósito bastante especí�co.
Nesse contexto, assinale a alternativa que descreve o propósito e a principal tarefa
realizada pelos compiladores. 
  
 
  
 
Possibilitar a programação de computadores utilizando linguagens de alto
nível (que permitem descrever as ideias em termos mais abstratos e mais
independentes da arquitetura da máquina), pois são responsáveis pela
tradução do algoritmo em seu correspondente em um linguagem de baixo
nível.
Pergunta 9
Resposta
Selecionada:
c.
Durante o processo de veri�cação da estrutura sintática de um programa, o analisador
simula o processo de construção da árvore de derivação para o programa que está sendo
compilado. Usualmente esse processo é realizado adotando-se uma dentre duas
abordagens possíveis. a top-down, em que se parte do símbolo inicial da gramática e tenta-
se alcançar os elementos que compõe o programa; e a botton-up, que segue o princípio
contrário, partindo do código e realizado reduções na sentença até que se alcance o
símbolo inicial que caracterize o elemento raiz da árvore. A respeito destas estratégias
assinale a alternativa correta.
O tempo de compilação de um programa independe do método utilizado
em seu analisador. Isso se justi�ca pelo fato de que, se considerarmos o
mesmo código, os aspectos sintáticos do programa em ambas abordagens
são iguais (mesma árvore de derivação) e, portanto, serão veri�cados
através das mesmas operações (expansões dos não-terminais e
veri�cações dos terminais).
0,5 em 0,5 pontos
0 em 0,5 pontos
23/10/2018 Revisar envio do teste: QUESTIONÁRIO UNIDADE I – D571_...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_8567470_1&course_id=_21702_1&content_id=_337652_1&return_c… 5/5
Terça-feira, 23 de Outubro de 2018 02h14min40s BRST
Pergunta 10
Resposta
Selecionada:
d.
 
A gramática dada a seguir é LL(1). Nela os elementos +, *, (, ) e id con�guram como
símbolos terminais, enquanto os E, T, F, E’ e T’ são considerados não-terminais. A tabela de
movimentos M fornece ao reconhecedor o número da regra que deve ser aplicada
durante a análise da sentença, sendo necessário apenas conhecer o não-terminal a ser
derivado e o primeiro símbolo presente no restante da entrada. 
 
Sobre a construção de analisadores sintáticos deste tipo é incorreto a�rmar que:
A aplicação da regra 8 deve ser feita antes da regra 7, segundo a
interpretação que temos da tabela. Esse fato se comprova ao observarmos
que o símbolo “(“ poderia ocorrer imediatamente após um “id” segundo o
que determina as produções da gramática.
← OK
0,5 em 0,5 pontos

Outros materiais