Logo Passei Direto
Buscar

COMPILADORES E COMPUTABILIDADE - QUESTIONARIO 1

User badge image
Expedito gabz

em

Ferramentas de estudo

Questões resolvidas

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 codificaçã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ífico.
Nesse contexto, assinale a alternativa que descreve o propósito e a principal tarefa realizada pelos compiladores.
a- Possibilitar a programação de computadores utilizando linguagens de baixo nível.
b- 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 uma linguagem de baixo nível.
c- Realizar a execução do programa diretamente sem a necessidade de tradução.
d- Garantir que o código fonte esteja livre de erros de lógica.

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.
a- Dentre a categoria de analisadores ascendentes podemos citar os parses LL.
b- Dentre a categoria de analisadores descendentes podemos citar os parses Descendentes Recursivos, de Cocke‐Younger‐Kasami e os analisadores do tipo LR(k).
c- Analisadores sintáticos ascendentes constroem a árvore de derivação do programa de baixo para cima.
d- Analisadores sintáticos descendentes constroem a árvore de derivação do programa de cima para baixo.

Os diferentes elementos básicos que compõem 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.
a- Todos itens são verdadeiros e os motivos apresentados justificam a separação dos analisadores.
b- Apenas I e II são verdadeiros.
c- Apenas II e III são verdadeiros.
d- Apenas I é verdadeiro.

Assinale a alternativa cuja tarefa não corresponde às atribuições esperadas para um analisador léxico.
a- Validar os identificadores criados pelo programador.
b- Reconhecer os lexemas da linguagem.
c- Ignorar espaços em branco e comentários.
d- Traduzir o código fonte para uma linguagem de máquina.

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.
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.
a- Ambas as assertivas são verdadeiras, sendo a segunda a justificativa da primeira.
b- Ambas as assertivas são falsas.
c- Apenas a primeira assertiva é verdadeira.
d- Apenas a segunda assertiva é verdadeira.

Um processo algorítmico tem o objetivo de instruir o executor quanto às ações que deve realizar e a sua sequência.
Analise as alternativas a seguir e assinale a que julgar incorreta.
a- A programação de computadores é feita descrevendo o algoritmo em instruções de uma linguagem de programação.
b- As instruções devem ser dadas num formato compreensível àquele que as realizará.
c- A programação de computadores é feita apenas em linguagens de baixo nível.
d- Linguagens de alto nível apresentam características mais próximas à estrutura das linguagens humanas do que a das máquinas.

A gramática dada a seguir é LL(1). Nela os elementos +, *, (, ) e id configuram como símbolos terminais, enquanto os E, T, F, E’ e T’ são considerados não-terminais.
Sobre a construção de analisadores sintáticos deste tipo é incorreto afirmar que:
a- A aplicação da regra 8 deve ser feita antes da regra 7.
b- O símbolo “(“ poderia ocorrer imediatamente após um “id” segundo o que determina as produções da gramática.
c- A tabela de movimentos M fornece ao reconhecedor o número da regra que deve ser aplicada durante a análise da sentença.
d- É necessário apenas conhecer o não-terminal a ser derivado e o primeiro símbolo presente no restante da entrada.

Considerando a produção S → S x K | K qual, dentre as alternativas a seguir, poderia substituí-la de modo a eliminar a recursão à esquerda e criar uma gramática equivalente?
a- S → K S’
b- S → K | S x K
c- S → K S | x K
d- S → K | x S

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)?
a- S → if E then S R | K; R → else S | ε
b- S → if E then S | K; R → else S | ε
c- S → if E then S R | K; R → S | ε
d- S → if E then S | K; R → else S | K

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

Questões resolvidas

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 codificaçã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ífico.
Nesse contexto, assinale a alternativa que descreve o propósito e a principal tarefa realizada pelos compiladores.
a- Possibilitar a programação de computadores utilizando linguagens de baixo nível.
b- 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 uma linguagem de baixo nível.
c- Realizar a execução do programa diretamente sem a necessidade de tradução.
d- Garantir que o código fonte esteja livre de erros de lógica.

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.
a- Dentre a categoria de analisadores ascendentes podemos citar os parses LL.
b- Dentre a categoria de analisadores descendentes podemos citar os parses Descendentes Recursivos, de Cocke‐Younger‐Kasami e os analisadores do tipo LR(k).
c- Analisadores sintáticos ascendentes constroem a árvore de derivação do programa de baixo para cima.
d- Analisadores sintáticos descendentes constroem a árvore de derivação do programa de cima para baixo.

Os diferentes elementos básicos que compõem 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.
a- Todos itens são verdadeiros e os motivos apresentados justificam a separação dos analisadores.
b- Apenas I e II são verdadeiros.
c- Apenas II e III são verdadeiros.
d- Apenas I é verdadeiro.

Assinale a alternativa cuja tarefa não corresponde às atribuições esperadas para um analisador léxico.
a- Validar os identificadores criados pelo programador.
b- Reconhecer os lexemas da linguagem.
c- Ignorar espaços em branco e comentários.
d- Traduzir o código fonte para uma linguagem de máquina.

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.
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.
a- Ambas as assertivas são verdadeiras, sendo a segunda a justificativa da primeira.
b- Ambas as assertivas são falsas.
c- Apenas a primeira assertiva é verdadeira.
d- Apenas a segunda assertiva é verdadeira.

Um processo algorítmico tem o objetivo de instruir o executor quanto às ações que deve realizar e a sua sequência.
Analise as alternativas a seguir e assinale a que julgar incorreta.
a- A programação de computadores é feita descrevendo o algoritmo em instruções de uma linguagem de programação.
b- As instruções devem ser dadas num formato compreensível àquele que as realizará.
c- A programação de computadores é feita apenas em linguagens de baixo nível.
d- Linguagens de alto nível apresentam características mais próximas à estrutura das linguagens humanas do que a das máquinas.

A gramática dada a seguir é LL(1). Nela os elementos +, *, (, ) e id configuram como símbolos terminais, enquanto os E, T, F, E’ e T’ são considerados não-terminais.
Sobre a construção de analisadores sintáticos deste tipo é incorreto afirmar que:
a- A aplicação da regra 8 deve ser feita antes da regra 7.
b- O símbolo “(“ poderia ocorrer imediatamente após um “id” segundo o que determina as produções da gramática.
c- A tabela de movimentos M fornece ao reconhecedor o número da regra que deve ser aplicada durante a análise da sentença.
d- É necessário apenas conhecer o não-terminal a ser derivado e o primeiro símbolo presente no restante da entrada.

Considerando a produção S → S x K | K qual, dentre as alternativas a seguir, poderia substituí-la de modo a eliminar a recursão à esquerda e criar uma gramática equivalente?
a- S → K S’
b- S → K | S x K
c- S → K S | x K
d- S → K | x S

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)?
a- S → if E then S R | K; R → else S | ε
b- S → if E then S | K; R → else S | ε
c- S → if E then S R | K; R → S | ε
d- S → if E then S | K; R → else S | K

Prévia do material em texto

Revisar envio do teste: QUESTIONÁRIO UNIDADE ICOMPILADORES E COMPUTABILIDADE D571_13701_R_20232 CONTEÚDO
COMPILADORES E
COMPUTABILIDA
DE
(D571_13701_R_20
232)
CONTEÚDO
Quarta-feira, 16 de Agosto de 2023 21h08min53s GMT-03:00
Usuário GABRIEL ROMANO ORLANDO
Curso COMPILADORES E COMPUTABILIDADE
Teste QUESTIONÁRIO UNIDADE I
Iniciado 16/08/23 09:57
Enviado 16/08/23 10:10
Status Completada
Resultado da tentativa 4,5 em 5 pontos  
Tempo decorrido 12 minutos
Resultados exibidos Respostas enviadas, Perguntas respondidas incorretamente
Pergunta 1
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 2
Resposta
Selecionada:
a.
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:
É 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: 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 4
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 5
Resposta
Selecionada:
c.
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.
Validar os identi�cadores criados pelo programador, pois embora sejam de�nidos pela linguagem, é possível adotar quaisquer sequências de caracteres desde que obedeçam as regras que de�nem os chamados
identi�cadores válidos.
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:
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 8
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.
Pergunta 9
Resposta Selecionada:
e. 
 Analisadores sintáticos do tipo LL(k) realizam a veri�cação da sentença de modo descendente, entretanto tem como restrição poderem ser aplicados apenas aos casos em que a gramática da linguagem é LL(k). Considerando a produção S → S
x K | K qual, dentre as alternativas a seguir, poderia substituí-la de modo a eliminar a recursão a esquerda e criar uma gramática equivalente? (Considere ε representando a sentença vazia).
Pergunta10
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 | ε
← OK
UNIP BIBLIOTECAS MURAL DO ALUNOCONTEÚDOS ACADÊMICOS
0,5 em 0,5 pontos
0,5 em 0,5 pontos
0,5 em 0,5 pontos
0,5 em 0,5 pontos
0 em 0,5 pontos
0,5 em 0,5 pontos
0,5 em 0,5 pontos
0,5 em 0,5 pontos
0,5 em 0,5 pontos
0,5 em 0,5 pontos
GABRIEL ORLANDO
http://company.blackboard.com/
https://ava.ead.unip.br/webapps/blackboard/execute/courseMain?course_id=_299236_1
https://ava.ead.unip.br/webapps/blackboard/content/listContent.jsp?course_id=_299236_1&content_id=_3487325_1&mode=reset
https://ava.ead.unip.br/webapps/blackboard/content/listContent.jsp?course_id=_299236_1&content_id=_3487325_1&mode=reset
https://ava.ead.unip.br/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_49_1
https://ava.ead.unip.br/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_27_1
https://ava.ead.unip.br/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_47_1
https://ava.ead.unip.br/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_25_1
https://ava.ead.unip.br/webapps/login/?action=logout

Mais conteúdos dessa disciplina