Logo Passei Direto
Buscar

Compiladores teste conhecimento

User badge image
Gabriel

em

Ferramentas de estudo

Questões resolvidas

As árvores de sintaxe são a forma mais comum de representação intermediária gráfica. Dentre estas árvores temos as de Derivação, Sintática e Derivação Anotada. Com relação a estas árvores avalie as afirmativas abaixo:
Podemos afirmar que está correto o que se afirma apenas em:
I. Decorar uma árvore é o ato de, durante a fase de parser, realizar a associação dos símbolos aos seus atributos na árvore de derivação.
II. A Árvore Sintática é obtida eliminando-se os nós referentes aos símbolos não terminais na árvore de derivação.
III. A árvore de Derivação possui em suas folhas apenas símbolos não terminais.
II e III
III
II
I e II
I e III

Quanto a expressão c:= a + b; podemos afirmar que:
Com base nas afirmativas podemos concluir que:
análise semântica.
geração do código.
otimização do código
análise léxica.
análise sintática.

A ordem correta dos passos durante a compilação é:
Considere a seguinte especificação de tokens com sua descrição informal: SE fosse submetida ao Analisador a seguinte expressão: Soma = 0; Soma = A + B; O sétimo token reconhecido e seu lexema seriam respectivamente:
II, VI, V, IV, I e III
II, V, VI, IV, I e III
III, IV, VI, V, I e II
III, IV, V, VI, I e II
III, V, VI, IV, I e II

Durante o processo de Análise o scanner lê os caracteres um por um e tenta associá-los ao padrão correspondente a algum token. Neste processo ele eventualmente pode encontrar algum padrão que não corresponda ao tokens. Nesse caso, ele deve:
Passar o erro para o analisador sintático para que este o trate.
Tentar corrigir o erro reescrevendo a parte onde foi encontrado.
Continuar a análise após realizar a recuperação do erro e anotá-lo para informação posterior.
Ignorar totalmente o erro e prosseguir a análise como se nada tivesse acontecido.
Abortar a análise e reportar imediamente o erro.

Um programa pode ter parte de sua funcionalidade implementada por um procedimento. Procedimentos são normalmente compilados a parte e depois ligados ao código principal. Quando um procedimento é chamado é criado para ele um Registro de Ativação que possui informações de contexto, suas variáveis locais, parâmetros etc.
Com base nisso se um procedimento G chama um procedimento D que chama um procedimento E podemos afirmar que
O registro de ativação de E estará no topo da pilha
Porque
Os registros de ativação dos diversos procedimento são empilhados na ordem inversa do retorno

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

Questões resolvidas

As árvores de sintaxe são a forma mais comum de representação intermediária gráfica. Dentre estas árvores temos as de Derivação, Sintática e Derivação Anotada. Com relação a estas árvores avalie as afirmativas abaixo:
Podemos afirmar que está correto o que se afirma apenas em:
I. Decorar uma árvore é o ato de, durante a fase de parser, realizar a associação dos símbolos aos seus atributos na árvore de derivação.
II. A Árvore Sintática é obtida eliminando-se os nós referentes aos símbolos não terminais na árvore de derivação.
III. A árvore de Derivação possui em suas folhas apenas símbolos não terminais.
II e III
III
II
I e II
I e III

Quanto a expressão c:= a + b; podemos afirmar que:
Com base nas afirmativas podemos concluir que:
análise semântica.
geração do código.
otimização do código
análise léxica.
análise sintática.

A ordem correta dos passos durante a compilação é:
Considere a seguinte especificação de tokens com sua descrição informal: SE fosse submetida ao Analisador a seguinte expressão: Soma = 0; Soma = A + B; O sétimo token reconhecido e seu lexema seriam respectivamente:
II, VI, V, IV, I e III
II, V, VI, IV, I e III
III, IV, VI, V, I e II
III, IV, V, VI, I e II
III, V, VI, IV, I e II

Durante o processo de Análise o scanner lê os caracteres um por um e tenta associá-los ao padrão correspondente a algum token. Neste processo ele eventualmente pode encontrar algum padrão que não corresponda ao tokens. Nesse caso, ele deve:
Passar o erro para o analisador sintático para que este o trate.
Tentar corrigir o erro reescrevendo a parte onde foi encontrado.
Continuar a análise após realizar a recuperação do erro e anotá-lo para informação posterior.
Ignorar totalmente o erro e prosseguir a análise como se nada tivesse acontecido.
Abortar a análise e reportar imediamente o erro.

Um programa pode ter parte de sua funcionalidade implementada por um procedimento. Procedimentos são normalmente compilados a parte e depois ligados ao código principal. Quando um procedimento é chamado é criado para ele um Registro de Ativação que possui informações de contexto, suas variáveis locais, parâmetros etc.
Com base nisso se um procedimento G chama um procedimento D que chama um procedimento E podemos afirmar que
O registro de ativação de E estará no topo da pilha
Porque
Os registros de ativação dos diversos procedimento são empilhados na ordem inversa do retorno

Prévia do material em texto

Teste de
Conhecimento
 avalie sua aprendizagem
As árvores de sintaxe são a forma mais comum de representação intermediária gráfica. Dentre estas árvores temos as
de Derivação, Sintática e Derivação Anotada.
Com relação a estas árvores avalie as afirmativas abaixo:
I. Decorar uma árvore é o ato de, durante a fase de parser, realizar a associação dos símbolos aos seus atributos na
árvore de derivação.
II. A Árvore Sintática é obtida eliminando-se os nós referentes aos símbolos não terminais na árvore de derivação.
III. A árvore de Derivação possui em suas folhas apenas símbolos não terminais.
Podemos afirmar que está correto o que se afirma apenas em:
COMPILADORES 
Lupa Calc.
 
 
Matr.: 
Disc.: COMPILADORES EX
Prezado (a) Aluno(a),
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua
avaliação. O mesmo será composto de questões de múltipla escolha.
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se
familiarizar com este modelo de questões que será usado na sua AV e AVS.
 
 
 
 
ANÁLISE SEMÂNTICA
 
1.
II e III
III
II
I e II
I e III
 
Explicação:
Resposta correta: I e II.
A ideia básica é eliminar todos os nós com símbolos não terminais, mantendo apenas os nós com símbolos
terminais.
Na árvore de Derivação, cada nó é rotulado por um símbolo da gramática, sendo que os símbolos terminais
aparecem nas folhas e os não terminais, nas raízes das subárvores.
 
 
 
 
 
javascript:voltar();
javascript:voltar();
javascript:diminui();
javascript:aumenta();
javascript:calculadora_on();
Verificação de tipos é uma atividade extremamente importante na análise semântica já que determinados erros
somente são percebidos nesta atividade, pois passam despercebidos nas Análises Léxicas e Sintáticas. 
Considere o seguinte trecho de programa :
inteiro a,b,c; 
{ 
.... 
c:= a + b; 
.... 
} 
 
Quanto a expressão c:= a + b; podemos afirmar que:
 
O seu tipo será inteiro 
porque 
todos os operandos são do tipo inteiro 
 
Com base nas afirmativas podemos concluir que:
Um compilador está verificando se uma variável foi declarada somente uma vez, se
foi declarada antes do seu primeiro uso, se foi declarada e nunca foi usada e se os
tipos de dados em uma expressão aritmética são compatíveis. Essas verificações são
realizadas na fase de:
Considere os seguintes passos da compilação: 
I. Otimização 
2.
A primeira é verdadeira e a segunda falsa
As duas são corretas e a segunda não justifica a primeira
As duas são corretas e a segunda justifica a primeira
A primeira é falsa e a segunda correta
As duas afirmativas são falsas
 
Explicação:
Resposta correta: As duas são corretas e a segunda justifica a primeira
 
 
 
 
 
 
O COMPILADOR
 
3.
análise semântica.
geração do código.
otimização do código
análise léxica.
análise sintática.
 
Explicação:
A resposta correta é: análise semântica.
 
 
 
 
4.
II. Análise Léxica 
III. Geração de Código 
IV. Geração de Código Intermediário 
V. Análise Semântica 
VI. Análise Sintática 
A ordem correta dos passos durante a compilação é: 
Considere a seguinte especificação de tokens com sua descrição informal: 
SE fosse submetida ao Analisador a seguinte expressão: 
Soma = 0; 
Soma = A + B; 
O sétimo token reconhecido e seu lexema seriam respectivamente: 
II, VI, V, IV, I e III 
II, V, VI, IV, I e III 
III, IV, VI, V, I e II
III, IV, V, VI, I e II 
III, V, VI, IV, I e II
 
Explicação:
A resposta correta é: II, VI, V, IV, I e III.
 
 
 
 
 
 
ANÁLISE LÉXICA
 
5.
TermCom e ; 
NumInt e 0 
Id e A 
OpArit e + 
Id e Soma 
 
Explicação:
A resposta correta é: Id e A 
 
 
Durante o processo de Análise o scanner lê os caracteres um por um e tenta associa-
los ao padrão correspondente a algum token. 
Neste processo ele eventualmente pode encontrar algum padrão que não
corresponda ao tokens. Nesse caso, ele deve: 
Enade 2011
Considere a gramática a seguir, em que S, A e B são símbolos não terminais, 0 e 1 são terminais e Ɛ é a cadeia vazia.
A respeito dessa gramática, analise as afirmações a seguir.
I. Nas cadeias geradas por essa gramática, o último símbolo é 1.
II. O número de zeros consecutivos nas cadeias geradas pela gramática é, no máximo, dois.
III. O número de uns em cada cadeia gerada pela gramática é maior que o número de zeros.
IV. Nas cadeias geradas por essa gramática, todos os uns estão à esquerda de todos os zeros.
É correto apenas o que se afirma em
Ao realizarmos a análise sintática, podem ser detectados erros que não foram vistos durante a análise léxica.
Considerando a seguinte gramática
L: [A-Z]
 
 
6.
Tentar corrigir o erro reescrevendo a parte onde foi encontrado. 
Continuar a análise após realizar a recuperação do erro e anotá-lo para
informação posterior.
Ignorar totalmente o erro e prosseguir a análise como se nada tivesse
acontecido.
Abortar a análise e reportar imediamente o erro.
Passar o erro para o analisador sintático para que este o trate.
 
Explicação:
A resposta correta é: Continuar a análise após realizar a recuperação do erro e
anotá-lo para informação posterior.
 
 
 
 
 
 
ANÁLISE SINTÁTICA
 
7.
II
III e IV
I e III
II e IV
I
 
Explicação:
Resposta correta: II
 
 
 
 
8.
D: [0-9]
Op:["+""-"]
At:["="]
Id:{L} ({L}|{D})*
Int:{D}+
Oper:{Op}
Atrib:{At}
Fc : ;
::= Id Atrib ;
::= | Id | Int;
::= Oper;
Qual das opções abaixo possui apenas erro sintático.
Um programa pode ter parte de sua funcionalidade implementada por um procedimento. Procedimentos são
normalmente compilados a parte e depois ligados ao código principal. Quando um procedimento é chamado é criado
para ele um Registro de Ativação que possui informações de contexto, suas variáveis locais, parâmetros etc.
Com base nisso se um procedimento G chama um procedimento D que chama um procedimento E podemos afirmar que
 O registro de ativação de E estará no topo da pilha
Porque
Os registros de ativação dos diversos procedimento são empilhados na ordem inversa do retorno
Com base nas afirmativas acima podemos concluir que:
Para determinar qual código é mais otimizado podemos utilizar uma métrica que calcule o custo de cada opção e
determinar qual é o mais otimizado, ou seja qual tem o menor custo.
Considere um processador com o seguinte conjunto de instruções:
A := 7;
10 * 5;
A = b + C;
A = C
d - 10
 
Explicação:
Resposta correta: A := 7;
 
 
 
 
 
 
GERAÇÃO DE CÓDIGO
 
9.
As duas afirmativas são falsas
A primeira é falsa e a segunda correta
As duas são corretas e a segunda justifica a primeira
A primeira é verdadeira e a segunda falsa
As duas são corretas e a segunda não justifica a primeira
 
Explicação:
Resposta correta: A primeira é verdadeira e a segunda falsa
 
 
 
 
10.
Sabendo que a métrica utilizada gera um custo de 1 para instruções que não acessam a memória RAM e um custo de 2
para as que não acessam analise os trechos de código abaixo
Como base na análise podemos afirmar que o código 2 é melhor que o código 1
Porque
Seu custo é 12 enquanto o do código 1 é 12
Com base nas afirmativas acima podemos concluir que:
 
A primeira é verdadeira e a segunda falsa
As duas afirmativas são falsas
As duas são corretas e a segunda justifica a primeira
A primeira é falsa e a segunda correta
As duas são corretas e a segunda não justifica a primeira
 
Explicação:
Respsota correta: A primeira é verdadeira e a segunda falsa
 
 
 
 
 
 
 
 Não Respondida Não Gravada Gravada

Mais conteúdos dessa disciplina