Você está na página 1de 6

GUSTAVO NAVI

UNIP CONTEÚDOS ACADÊMICOS BIBLIOTECAS MURAL DO ALUNO

COMPILADORES E COMPUTABILIDADE D571_13701_R_20192 CONTEÚDO Revisar envio do teste: QUESTIONÁRIO UNIDADE I

Usuário GUSTAVO SOUZA NAVI


Curso COMPILADORES E COMPUTABILIDADE
Teste QUESTIONÁRIO UNIDADE I
Iniciado 10/09/19 21:32
Enviado 10/09/19 21:59
Status Completada
Resultado da tentativa 5 em 5 pontos  
Tempo decorrido 27 minutos
Resultados exibidos Respostas enviadas, Perguntas respondidas incorretamente

Pergunta 1 0,5 em 0,5 pontos

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

Resposta a.
Selecionada: É 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 2 0,5 em 0,5 pontos

Assinale a alternativa que representa a principal tarefa realizada pela Análise léxica.

Resposta c.
Selecionada: 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 3 0,5 em 0,5 pontos

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.

Resposta Selecionada: a. Ambas as assertivas são verdadeiras, sendo a segunda a justi cativa da primeira.
Pergunta 4 0,5 em 0,5 pontos

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.

Resposta b.
Selecionada: 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 5 0,5 em 0,5 pontos

Durante a varredura do código fonte pelo Scanner (Analisador Léxico) várias tarefas ditas secundárias são realizadas. Assinale a alternativa
cuja tarefa não corresponde as atribuições esperadas para um analisador léxico.

Resposta e.
Selecionada: Detectar os marcadores de início e de m de blocos para que os comandos possam ser agrupados em um único elemento
e entregues para a fase de análise sintática com um comando único. 

Pergunta 6 0,5 em 0,5 pontos


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.

Resposta e.
Selecionada: A fase de link edição, ou ligação, é responsável por criar o arquivo executável combinando todos os arquivos objetos
em um único módulo de carga.

Pergunta 7 0,5 em 0,5 pontos

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:

Resposta d.
Selecionada: 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.
Pergunta 8 0,5 em 0,5 pontos

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.

Resposta Selecionada: e. Todos itens são verdadeiros e os motivos apresentados justi cam a separação dos analisadores.

Pergunta 9 0,5 em 0,5 pontos

 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)?.

Resposta Selecionada: S → if E then S R |K


a. R → else S | ε

Pergunta 10 0,5 em 0,5 pontos

Um processo algorítmico tem o objetivo de instruir o executor quanto às ações que deve realizar e a sua sequência. Para que isso ocorra é
necessário que as instruções sejam dadas num formato compreensível àquele que as realizará. A programação de computadores é feita
descrevendo o algoritmo em instruções de uma linguagem de programação e que, quando ditas de alto nível, apresentam características
mais próximas à estrutura das linguagens humanas do que a das máquinas. Analise as alternativas a seguir e assinale a que julgar
incorreta.

Resposta d.
Selecionada: Os conhecimentos relacionados à construção de compiladores encerram-se estritamente nesta atividade, oferecendo
pouco ou mesmo nenhuma possibilidade de aplicação em outras áreas que não seja a tradução para linguagem de
máquina.

Terça-feira, 10 de Setembro de 2019 21h59min31s BRT ← OK

Você também pode gostar