Logo Passei Direto
Buscar

COMPILADORES_COMPUTABILIDADE_UNIDADE_I

Ferramentas de estudo

Questões resolvidas

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

Durante o processo de verificaçã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 respeito destas estratégias assinale a alternativa correta.
Os métodos descendentes são usualmente mais convenientes em casos de implementação manual, enquanto os métodos ascendentes (botton-up) são considerados mais favoráveis para construtores automáticos de analisadores.

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

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).
Pode-se afirmar 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 verificar os elementos relativos a uma produção em particular.

Os diferentes elementos básicos que compõe uma linguagem, tais como as palavras reservadas, identificadores, 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.
Julgue cada uma das afirmativas 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 gramáticas regulares, que são mais simples e mais eficientes, para a descrição dos lexemas tornando a implementação do reconhecedor mais fácil.
III) O analisador sintático ficaria 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.

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

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

Durante o processo de verificaçã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 respeito destas estratégias assinale a alternativa correta.
Os métodos descendentes são usualmente mais convenientes em casos de implementação manual, enquanto os métodos ascendentes (botton-up) são considerados mais favoráveis para construtores automáticos de analisadores.

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

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).
Pode-se afirmar 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 verificar os elementos relativos a uma produção em particular.

Os diferentes elementos básicos que compõe uma linguagem, tais como as palavras reservadas, identificadores, 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.
Julgue cada uma das afirmativas 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 gramáticas regulares, que são mais simples e mais eficientes, para a descrição dos lexemas tornando a implementação do reconhecedor mais fácil.
III) O analisador sintático ficaria 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.

Prévia do material em texto

8/31/2019 Revisar envio do teste: QUESTIONÁRIO UNIDADE I – D571_...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_21906259_1&course_id=_47093_1&content_id=_736733_1&return_cont… 1/5
 
Revisar envio do teste: QUESTIONÁRIO UNIDADE I
COMPILADORES E COMPUTABILIDADE D571_13701_R_20192 CONTEÚDO
Usuário MURILO FERNANDES SAIDEL
Curso COMPILADORES E COMPUTABILIDADE
Teste QUESTIONÁRIO UNIDADE I
Iniciado 31/08/19 14:41
Enviado 31/08/19 15:04
Status Completada
Resultado da tentativa 5 em 5 pontos  
Tempo decorrido 23 minutos
Resultados exibidos Respostas enviadas, Perguntas respondidas incorretamente
Pergunta 1
Resposta
Selecionada:
d.
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.
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.
Pergunta 2
Resposta e.
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.
CONTEÚDOS ACADÊMICOS BIBLIOTECAS MURAL DO ALUNOUNIP
0,5 em 0,5 pontos
0,5 em 0,5 pontos
MURILO SAIDEL 1
8/31/2019 Revisar envio do teste: QUESTIONÁRIO UNIDADE I – D571_...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_21906259_1&course_id=_47093_1&content_id=_736733_1&return_cont… 2/5
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 3
Resposta
Selecionada:
a.
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.
Os métodos descendentes são usualmente mais convenientes em casos
de implementação manual, enquanto os métodos ascendentes (botton-
up) são considerados mais favoráveis para construtores automáticos de
analisadores.
Pergunta 4
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:
0,5 em 0,5 pontos
0,5 em 0,5 pontos
8/31/2019 Revisar envio do teste: QUESTIONÁRIO UNIDADE I – D571_...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_21906259_1&course_id=_47093_1&content_id=_736733_1&return_cont… 3/5
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 5
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 6
Resposta
Selecionada:
a.
Uma das tarefas primordiais ao processo de compilação é que durante a veri�cação da
sintática do programa o compilador reporte ao programador todos os erros detectados
para que ele os corrija. Neste contexto, a adoção de uma estratégia que permita o
tratamento e eventual recuperação diante de erros é parte das decisões que envolvem
a construção dos analisadores. Assinale a alternativa que não descreve de maneira
apropriada essas estratégias.
O Modo Pânico é aquele em que o compilador exibe as mensagens de
erro e interrompe qualquer outra atividade do sistema operacional,
evitando problemas de gravação dos dados no disco e a corrupção dos
dados armazenados.
0,5 em 0,5 pontos
0,5 em 0,5 pontos
8/31/2019 Revisar envio do teste: QUESTIONÁRIO UNIDADE I – D571_...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_21906259_1&course_id=_47093_1&content_id=_736733_1&return_cont… 4/5
Pergunta 7
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 8
Resposta
Selecionada:
d.
Os métodos ligados a análise sintática se agrupam em ascendentes e descendentes, de
acordo com a forma como derivam a estrutura sintática da sentença do programa.
Assinale a alternativa incorreta a respeito dos analisadores sintáticos.
Dentre a categoria de analisadores descendentes podemos citar os
parses Descendentes Recursivos, de Cocke‐Younger‐Kasami e os
analisadores do tipo LR(k).
Pergunta 9
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:
0,5 em 0,5 pontos
0,5 em 0,5 pontos
0,5 em 0,5 pontos
8/31/2019 Revisar envio do teste: QUESTIONÁRIO UNIDADE I – D571_...
https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_21906259_1&course_id=_47093_1&content_id=_736733_1&return_cont… 5/5
Sábado, 31 de Agosto de 2019 15h04min58s BRT
Resposta
Selecionada:
a.
É 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 10
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.
← OK
0,5 em 0,5 pontos

Mais conteúdos dessa disciplina