Logo Passei Direto
Buscar

Gabarito AV1 - Compiladores

Ferramentas de estudo

Questões resolvidas

A função do analisador sintático é:
a. Gerar o conjunto de todas as sentenças de símbolos terminais derivados a partir do símbolo inicial da gramática.
b. Realizar uma extensão de uma GLC por meio da associação de atributos aos símbolos gramaticais e de ações semânticas às regras de produção.
c. Fazer uma leitura do programa fonte, símbolo a símbolo, e traduzi-lo para uma sequência de símbolos léxicos.
d. Verificar se uma gramática G é ou não recursiva à esquerda.
e. Dadas uma gramática livre de contexto G e uma sentença s, verificar se a sentença s pertence à linguagem gerada por G (L(G)).

Considere a gramática a seguir: E -> - E | ( E ) | V L L -> - E | EPSILON V -> id S S -> ( E ) | EPSILON
Quais os elementos de FOLLOW(S)?

A identificação e o tratamento de erros em programas de computador estão entre as tarefas dos compiladores. Os erros de um programa podem ter variados tipos e precisam ser identificados e tratados em diferentes fases da compilação. Considere uma linguagem de programação que exige que as variáveis manipuladas por seus programas sejam previamente declaradas, não podendo haver duplicidade de identificadores para variáveis em um mesmo escopo. Considere, ainda, que a sintaxe dessa linguagem tenha sido definida por meio de uma gramática livre de contexto e as produções seguintes definam a forma das declarações de variáveis em seus programas.
A partir dessas informações, assinale a opção correta:
a. A identificação e a comunicação do erro na sentença II são funções da análise semântica.
b. A identificação e a comunicação do erro na sentença I são funções da geração de código intermediário.
c. O compilador não tem meios para identificar e relatar erros como o da sentença I.
d. A identificação e a comunicação do erro em qualquer uma das sentenças são funções do analisador léxico.
e. A identificação e a comunicação do erro na sentença II são funções do analisador léxico.

Considere a gramática a seguir: E -> - E | ( E ) | V L L -> - E | EPSILON V -> id S S -> ( E ) | EPSILON
Quais os elementos de FIRST(E)?

Considere a seguinte gramática G , onde S é o símbolo inicial: S → AcB A → cA | aB B → cB | aA A → ε
Assinale a alternativa que apresenta a palavra que NÃO pertence à linguagem gerada pela gramática G.
a. aaaaca
b. ccca
c. ccac
d. aaca
e. aaaa

No “Report” do Pascal, Niklaus Wirth define “números” (constantes dos tipos integer e real), através das seguintes regras (em BNF):
Qual é o símbolo inicial desta gramática?

Observe a gramática a seguir: S → if E then S else S | id := E E → T X X → v T X | ε T → ~id | id | ( E )
Liste os elementos de FIRST(T).

A linguagem L = {anbn | n ≤ m + 3} , para n ≥ 0 e m ≥ 0, é:
Escolha uma:
a. Regular e gerada pela gramática S → aA, A → baA | ε
b. Livre de contexto e gerada pela gramática S → aaaA, A → aAb | ε.
c. Sensível a contexto e gerada pela gramática S → aSBC, S → aBC, CB → BC, aB → ab, bB → bb, bC → bc, cC → cc
d. Estrutura de frase e gerada por uma gramática sem restrições nas regras de produção.
e. Recursivamente enumerável e gerada por uma gramática sem restrições nas regras de produção.

Verdadeiro ou falso:
A produção A → xyB | xyC | xD ao ser devidamente fatorada leva a A → xA' A' → yA" | D A" → B | C
Verdadeiro
Falso

Considere a seguinte gramática a seguir. S → if E then S else S E → E v T | T T → ¬id | id | ( E )
Assinale a afirmativa correta:
a. É uma gramática sensível a contexto.
b. Possui uma produção com recursividade indireta à esquerda.
c. Possui uma produção com recursividade direta a esquerda.
d. É uma gramática ambígua.
e. É uma gramática não fatorada.

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

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 função do analisador sintático é:
a. Gerar o conjunto de todas as sentenças de símbolos terminais derivados a partir do símbolo inicial da gramática.
b. Realizar uma extensão de uma GLC por meio da associação de atributos aos símbolos gramaticais e de ações semânticas às regras de produção.
c. Fazer uma leitura do programa fonte, símbolo a símbolo, e traduzi-lo para uma sequência de símbolos léxicos.
d. Verificar se uma gramática G é ou não recursiva à esquerda.
e. Dadas uma gramática livre de contexto G e uma sentença s, verificar se a sentença s pertence à linguagem gerada por G (L(G)).

Considere a gramática a seguir: E -> - E | ( E ) | V L L -> - E | EPSILON V -> id S S -> ( E ) | EPSILON
Quais os elementos de FOLLOW(S)?

A identificação e o tratamento de erros em programas de computador estão entre as tarefas dos compiladores. Os erros de um programa podem ter variados tipos e precisam ser identificados e tratados em diferentes fases da compilação. Considere uma linguagem de programação que exige que as variáveis manipuladas por seus programas sejam previamente declaradas, não podendo haver duplicidade de identificadores para variáveis em um mesmo escopo. Considere, ainda, que a sintaxe dessa linguagem tenha sido definida por meio de uma gramática livre de contexto e as produções seguintes definam a forma das declarações de variáveis em seus programas.
A partir dessas informações, assinale a opção correta:
a. A identificação e a comunicação do erro na sentença II são funções da análise semântica.
b. A identificação e a comunicação do erro na sentença I são funções da geração de código intermediário.
c. O compilador não tem meios para identificar e relatar erros como o da sentença I.
d. A identificação e a comunicação do erro em qualquer uma das sentenças são funções do analisador léxico.
e. A identificação e a comunicação do erro na sentença II são funções do analisador léxico.

Considere a gramática a seguir: E -> - E | ( E ) | V L L -> - E | EPSILON V -> id S S -> ( E ) | EPSILON
Quais os elementos de FIRST(E)?

Considere a seguinte gramática G , onde S é o símbolo inicial: S → AcB A → cA | aB B → cB | aA A → ε
Assinale a alternativa que apresenta a palavra que NÃO pertence à linguagem gerada pela gramática G.
a. aaaaca
b. ccca
c. ccac
d. aaca
e. aaaa

No “Report” do Pascal, Niklaus Wirth define “números” (constantes dos tipos integer e real), através das seguintes regras (em BNF):
Qual é o símbolo inicial desta gramática?

Observe a gramática a seguir: S → if E then S else S | id := E E → T X X → v T X | ε T → ~id | id | ( E )
Liste os elementos de FIRST(T).

A linguagem L = {anbn | n ≤ m + 3} , para n ≥ 0 e m ≥ 0, é:
Escolha uma:
a. Regular e gerada pela gramática S → aA, A → baA | ε
b. Livre de contexto e gerada pela gramática S → aaaA, A → aAb | ε.
c. Sensível a contexto e gerada pela gramática S → aSBC, S → aBC, CB → BC, aB → ab, bB → bb, bC → bc, cC → cc
d. Estrutura de frase e gerada por uma gramática sem restrições nas regras de produção.
e. Recursivamente enumerável e gerada por uma gramática sem restrições nas regras de produção.

Verdadeiro ou falso:
A produção A → xyB | xyC | xD ao ser devidamente fatorada leva a A → xA' A' → yA" | D A" → B | C
Verdadeiro
Falso

Considere a seguinte gramática a seguir. S → if E then S else S E → E v T | T T → ¬id | id | ( E )
Assinale a afirmativa correta:
a. É uma gramática sensível a contexto.
b. Possui uma produção com recursividade indireta à esquerda.
c. Possui uma produção com recursividade direta a esquerda.
d. É uma gramática ambígua.
e. É uma gramática não fatorada.

Prévia do material em texto

RICARDO 
 
Questão 1) Com relação às árvores de derivação, assinale a alternativa incorreta: 
Letra c)Produções que levam ao vazio não devem ser representadas, pois são ignoradas na 
formação da palavra 
 
Questão 2) No “Report” do Pascal, Niklaus Wirth define “números” (constantes dos tipos 
integer e real), através das seguintes regras (em BNF): 
 
Assinale a opção que indica um símbolo que não faz parte do conjunto de terminais dessa 
gramática: 
 
LETRA C) { 
 
Questão 3) A função do analisador sintático é: 
Escolha uma: 
a. Gerar o conjunto de todas as sentenças de símbolos terminais derivados a partir do 
símbolo inicial da gramática. 
b. Realizar uma extensão de uma GLC por meio da associação de atributos aos símbolos 
gramaticais e de ações semânticas às regras de produção. 
c. Fazer uma leitura do programa fonte, símbolo a símbolo, e traduzi-lo para uma sequência 
de símbolos léxicos. 
d. Verificar se uma gramática G é ou não recursiva à esquerda. 
e. Dadas uma gramática livre de contexto G e uma sentença s, verificar se a sentença s 
pertence à linguagem gerada por G (L(G)). 
 
Resposta: Letra e) Dadas uma gramática livre de contexto G e uma sentença s, verificar se 
a sentença s pertence à linguagem gerada por G (L(G)). 
 
Questão 4) Considere a gramática a seguir: 
E -> - E | ( E ) | V L 
L -> - E | EPSILON 
V -> id S 
S -> ( E ) | EPSILON 
Quais os elementos de FOLLOW(S)? 
(Escreva em sua resposta apenas os elementos, separados por vírgulas, com um espaço. 
Por exemplo: a, b, c) 
Resposta: ​-, $, ) 
 
Questão 5) A identificação e o tratamento de erros em programas de computador estão 
entre as tarefas dos compiladores. Os erros de um programa podem ter variados tipos e 
precisam ser identificados e tratados em diferentes fases da compilação. Considere uma 
linguagem de programação que exige que as variáveis manipuladas por seus programas 
sejam previamente declaradas, não podendo haver duplicidade de identificadores para 
variáveis em um mesmo escopo. Considere, ainda, que a sintaxe dessa linguagem tenha 
sido definida por meio de uma gramática livre de contexto e as produções seguintes 
definam a forma das declarações de variáveis em seus programas. 
 
D → TL; | TL; D 
T → int | real | char 
L → id | id,L 
 
Considere os exemplos de sentenças — I e II — a seguir, com a indicação — entre os 
delimitadores /* e */ — de diferentes tipos de erros. 
 
I. int: a, b; /* dois pontos após a palavra int */ 
II. int a,b; real a; /* declaração dupla da variável a */ 
 
A partir dessas informações, assinale a opção correta: 
Escolha uma: 
 
a. A identificação e a comunicação do erro na sentença II são funções da análise 
semântica. 
b. A identificação e a comunicação do erro na sentença I são funções da geração de código 
intermediário. 
c. O compilador não tem meios para identificar e relatar erros como o da sentença I. 
d. A identificação e a comunicação do erro em qualquer uma das sentenças são funções do 
analisador léxico. 
e. A identificação e a comunicação do erro na sentença II são funções do analisador léxico. 
 
Resposta: a. A identificação e a comunicação do erro na sentença II são funções da análise 
semântica. 
 
 
Questão 6) Considere a gramática G definida pelas regras de produção ao lado, em que os 
símbolos não-terminais são S, A e B, e os símbolos terminais são a e b. 
 
S → AB 
AB → AAB 
A → a 
B → b 
 
Com relação a essa gramática, é correto afirmar que 
Escolha uma: 
a. a gramática G é ambígua. 
b. a cadeia aabbb é gerada por essa gramática. 
c. é possível encontrar uma gramática regular equivalente a G. 
d. a gramática G é uma gramática livre de contexto. 
e. a gramática G gera a cadeia nula. 
 
Resposta: c. é possível encontrar uma gramática regular equivalente a G. 
 
Questão 7) Considere a gramática a seguir: 
E -> - E | ( E ) | V L 
L -> - E | EPSILON 
V -> id S 
S -> ( E ) | EPSILON 
Quais os elementos de FIRST(E)? 
(Escreva em sua resposta apenas os elementos, separados por vírgulas, com um espaço. 
Por exemplo: a, b, c) 
Resposta: ​-, (, id 
 
Questão 8) Considere a necessidade de se implementar um componente de software que 
realiza cálculos de expressões matemáticas simples para as operações básicas (soma, 
subtração, multiplicação, divisão e exponenciação). O software reproduz na tela do 
computador a entrada, os resultados parciais e o resultado final da expressão e, ainda, trata 
os operadores de exponenciação, multiplicação e divisão com precedência sobre os 
operadores de soma e subtração. Para obter o referido software, é correto que o projetista 
defina uma cadeia de caracteres para armazenar e imprimir toda a expressão de entrada. 
defina uma gramática regular para identificar as expressões aritméticas válidas. defina um 
reconhecedor de linguagem regular com autômato finito determinístico. especifique a ordem 
de precedência dos operadores com uma notação de gramática livre de contexto. 
 
Estão certos apenas os itens: 
Escolha uma: 
a. ii, iii, iv 
b. i e ii, apenas 
c. i, iii, iv 
d. i, ii, iii e. i, ii, iv 
Resposta: c) i, iii, iv 
Questão 9) Observe a gramática a seguir: 
S → if E then S else S | id := E 
E → T X 
X → v T X | ε 
T → ~id | id | ( E ) 
 
Liste os elementos de FOLLOW(E). 
(Em sua resposta, escreva apenas os elementos do conjunto requerido, separados por 
vírgula e um espaço em branco. Por exemplo: a, b, c) 
Resposta: ​), then, $, else 
 
Questão 10) Considere a seguinte gramática G , onde S é o símbolo inicial: 
S → AcB A → cA | aB 
B → cB | aA 
A → ε 
 
Assinale a alternativa que apresenta a palavra que NÃO pertence à linguagem gerada pela 
gramática G. 
Escolha uma: 
a. aaaaca 
b. ccca 
c. ccac 
d. aaca 
e. aaaa 
Resposta: Letra e) aaaa 
 
Questão 11) No “Report” do Pascal, Niklaus Wirth define “números” (constantes dos tipos 
integer e real), através das seguintes regras (em BNF): 
 
Qual é o símbolo inicial desta gramática? (Em sua resposta, escreva apenas o símbolo 
inicial.) 
Resposta: <unsigned number> 
 
Questão 12) ) Observe a gramática a seguir: 
S → if E then S else S | id := E 
E → T X 
X → v T X | ε 
T → ~id | id | ( E ) 
 
Liste os elementos de FIRST(T). (Em sua resposta, escreva apenas os elementos do 
conjunto requerido, separados por vírgula e um espaço em branco. Por exemplo: a, b, c) 
Resposta: ~, id, ( 
 
Questão 13) A linguagem L = {anbn | n ≤ m + 3} , para n ≥ 0 e m ≥ 0, é: 
Escolha uma: 
a. Regular e gerada pela gramática S → aA, A → baA | ε 
b. Livre de contexto e gerada pela gramática S → aaaA, A → aAb | ε . 
c.Sensível a contexto e gerada pela gramática S → aSBC, S → aBC, CB → BC, aB → ab, 
bB → bb, bC → bc, cC → cc 
d. Estrutura de frase e gerada por uma gramática sem restrições nas regras de produção. 
e. Recursivamente enumerável e gerada por uma gramática sem restrições nas regras de 
produção. 
 
Resposta: letra b) Livre de contexto e gerada pela gramática S → aaaA, A → aAb | ε . 
 
Questão 14) Verdadeiro ou falso: 
A produção 
A → xyB | xyC | xD 
ao ser devidamente fatorada leva a 
A → xA' 
A' → yA" | D 
A" → B | C 
 
Escolha uma opção: 
Verdadeiro 
Falso 
Resposta: verdadeiro 
 
 
 
 
 
 
 
Questão 15) Considere a seguinte gramática a seguir. 
S → if E then S else S | id := E 
E → E v T | T 
T → ¬id | id | ( E ) 
 
Assinale a afirmativa correta: Escolha uma: 
a. É uma gramática sensível a contexto. 
b. Possui uma produção com recursividade indireta à esquerda. 
c. Possui uma produção com recursividade direta a esquerda. 
d. É uma gramática ambígua. 
e. É uma gramática não fatorada. 
 
Resposta: letra c) Possui uma produção com recursividade direta a esquerda.

Mais conteúdos dessa disciplina