Logo Passei Direto
Buscar

Compiladores e Computabilidade QUESTIONÁRIO UNIDADE II

User badge image
Rafael Sousa

em

Ferramentas de estudo

Questões resolvidas

Além de incluir as simplificações da árvore de sintaxe, faz a fatoração das subexpressões comuns. Essa definição diz respeito:
a. ao código de 3 endereços.
b. ao esquema s-atribuído.
c. ao esquema l-atribuído.
d. ao grafo de sintaxe.
e. à árvore de derivação.

Considere as seguintes asserções: I. Notações pós-fixada e pré-fixada podem ser empregadas na geração de código intermediário. II. A notação pós-fixa pode expressar qualquer fórmula sem usar os parênteses. III. As notações pré-fixada e pós-fixada fazem uso de uma estrutura de dados organizada em pilha. São corretas as afirmacoes:
I. Notações pós-fixada e pré-fixada podem ser empregadas na geração de código intermediário.
II. A notação pós-fixa pode expressar qualquer fórmula sem usar os parênteses.
III. As notações pré-fixada e pós-fixada fazem uso de uma estrutura de dados organizada em pilha.
a. I, II e III.
b. I e II, apenas.
c. I e III, apenas.
d. II e III, apenas.
e. II, apenas.

Considere as seguintes asserções: I. No código intermediário de três-endereços, cada instrução faz referência, no máximo, a três variáveis (endereços de memória). II. Expressões envolvendo diversas operações são decompostas no código de três endereços, em uma série de instruções, eventualmente com a utilização de variáveis temporárias introduzidas na tradução. III. No código de três endereços obtém-se um código mais próximo da estrutura da linguagem assembly. São corretas as afirmações:
I. No código intermediário de três-endereços, cada instrução faz referência, no máximo, a três variáveis (endereços de memória).
II. Expressões envolvendo diversas operações são decompostas no código de três endereços, em uma série de instruções, eventualmente com a utilização de variáveis temporárias introduzidas na tradução.
III. No código de três endereços obtém-se um código mais próximo da estrutura da linguagem assembly.
a. I, II e III.
b. I, apenas.
c. II, apenas.
d. I e II, apenas.
e. III, apenas.

É um grafo dos diferentes caminhos possíveis que o fluxo do programa pode seguir por meio de uma função. Trata-se do:
a. Grafo de sintaxe.
b. Autômato finito.
c. Grafo de fluxo de controle.
d. Diagrama de transição de estados.
e. Esquema s-atribuído.

Assinale a alternativa incorreta.
a. Otimizações locais são aquelas aplicadas a um bloco básico isoladamente.
b. Um grafo de fluxo de controle é um grafo direcionado cujos nós são blocos básicos.
c. Um bloco básico tem exatamente um único ponto de entrada e um ou mais pontos de saída.
d. Se um programa executa a primeira instrução em um bloco básico, todas as demais instruções devem ser executadas sequencialmente até o final do bloco.
e. O corpo de um método (ou procedimento) pode ser representado como um grafo de fluxo de controle pois há um nó inicial e os nós de 'retorno' são terminais.

Verificar se, na ocorrência de uma atribuição a uma variável de valores constantes, a mesma não é posteriormente utilizada, diz respeito a:
a. Uma funcionalidade da analise sintática ascendente.
b. Uma funcionalidade da análise sintática descendente.
c. Tarefa indispensável na geração de código intermediário.
d. Otimização de código local.
e. Alocação de variáveis locais em pilha.

O algoritmo global de subexpressões comuns é empregado:
a. Na gerência de memória.
b. Na otimização local.
c. Na otimização do grafo de fluxo de controle inteiro.
d. Na análise sintática.
e. Na geração de código intermediário.

Técnica de movimentação de código, eliminação global de subexpressões comuns e expressões invariantes no loop são:
a. Otimização local, otimização global, otimização global.
b. Otimização local.
c. Otimização global.
d. Otimização local, otimização global, redundância que pode ser otimizada.
e. Otimização global, otimização global, redundância que pode ser otimizada.

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

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

Além de incluir as simplificações da árvore de sintaxe, faz a fatoração das subexpressões comuns. Essa definição diz respeito:
a. ao código de 3 endereços.
b. ao esquema s-atribuído.
c. ao esquema l-atribuído.
d. ao grafo de sintaxe.
e. à árvore de derivação.

Considere as seguintes asserções: I. Notações pós-fixada e pré-fixada podem ser empregadas na geração de código intermediário. II. A notação pós-fixa pode expressar qualquer fórmula sem usar os parênteses. III. As notações pré-fixada e pós-fixada fazem uso de uma estrutura de dados organizada em pilha. São corretas as afirmacoes:
I. Notações pós-fixada e pré-fixada podem ser empregadas na geração de código intermediário.
II. A notação pós-fixa pode expressar qualquer fórmula sem usar os parênteses.
III. As notações pré-fixada e pós-fixada fazem uso de uma estrutura de dados organizada em pilha.
a. I, II e III.
b. I e II, apenas.
c. I e III, apenas.
d. II e III, apenas.
e. II, apenas.

Considere as seguintes asserções: I. No código intermediário de três-endereços, cada instrução faz referência, no máximo, a três variáveis (endereços de memória). II. Expressões envolvendo diversas operações são decompostas no código de três endereços, em uma série de instruções, eventualmente com a utilização de variáveis temporárias introduzidas na tradução. III. No código de três endereços obtém-se um código mais próximo da estrutura da linguagem assembly. São corretas as afirmações:
I. No código intermediário de três-endereços, cada instrução faz referência, no máximo, a três variáveis (endereços de memória).
II. Expressões envolvendo diversas operações são decompostas no código de três endereços, em uma série de instruções, eventualmente com a utilização de variáveis temporárias introduzidas na tradução.
III. No código de três endereços obtém-se um código mais próximo da estrutura da linguagem assembly.
a. I, II e III.
b. I, apenas.
c. II, apenas.
d. I e II, apenas.
e. III, apenas.

É um grafo dos diferentes caminhos possíveis que o fluxo do programa pode seguir por meio de uma função. Trata-se do:
a. Grafo de sintaxe.
b. Autômato finito.
c. Grafo de fluxo de controle.
d. Diagrama de transição de estados.
e. Esquema s-atribuído.

Assinale a alternativa incorreta.
a. Otimizações locais são aquelas aplicadas a um bloco básico isoladamente.
b. Um grafo de fluxo de controle é um grafo direcionado cujos nós são blocos básicos.
c. Um bloco básico tem exatamente um único ponto de entrada e um ou mais pontos de saída.
d. Se um programa executa a primeira instrução em um bloco básico, todas as demais instruções devem ser executadas sequencialmente até o final do bloco.
e. O corpo de um método (ou procedimento) pode ser representado como um grafo de fluxo de controle pois há um nó inicial e os nós de 'retorno' são terminais.

Verificar se, na ocorrência de uma atribuição a uma variável de valores constantes, a mesma não é posteriormente utilizada, diz respeito a:
a. Uma funcionalidade da analise sintática ascendente.
b. Uma funcionalidade da análise sintática descendente.
c. Tarefa indispensável na geração de código intermediário.
d. Otimização de código local.
e. Alocação de variáveis locais em pilha.

O algoritmo global de subexpressões comuns é empregado:
a. Na gerência de memória.
b. Na otimização local.
c. Na otimização do grafo de fluxo de controle inteiro.
d. Na análise sintática.
e. Na geração de código intermediário.

Técnica de movimentação de código, eliminação global de subexpressões comuns e expressões invariantes no loop são:
a. Otimização local, otimização global, otimização global.
b. Otimização local.
c. Otimização global.
d. Otimização local, otimização global, redundância que pode ser otimizada.
e. Otimização global, otimização global, redundância que pode ser otimizada.

Prévia do material em texto

· Pergunta 1
0,5 em 0,5 pontos
	
	
	
	Não se trata de código intermediário:
	
	
	
	
		Resposta Selecionada:
	d. 
Árvore de derivação.
	Respostas:
	a. 
Árvore de sintaxe.
	
	b. 
Grafo de sintaxe.
	
	c. 
Notação pós-fixada.
	
	d. 
Árvore de derivação.
	
	e. 
Código de três endereços.
	Comentário da resposta:
	Resposta: D
Comentário: A árvore de derivação é obtida a partir da análise sintática e por si somente não é possível efetuar análise e geração de código intermediário.
	
	
	
· Pergunta 2
0,5 em 0,5 pontos
	
	
	
	Além de incluir as simplificações da árvore de sintaxe, faz a fatoração das subexpressões comuns. Essa definição diz respeito:
	
	
	
	
		Resposta Selecionada:
	d. 
ao grafo de sintaxe.
	Respostas:
	a. 
ao código de 3 endereços.
	
	b. 
ao esquema s-atribuído.
	
	c. 
ao esquema l-atribuído.
	
	d. 
ao grafo de sintaxe.
	
	e. 
à árvore de derivação.
	Comentário da resposta:
	Resposta: D
Comentário: Em um grafo de sintaxe, também denominado grafo acíclico dirigido, um nó N tem mais de um ancestral se N representar uma subexpressão comum. Assim, um grafo de sintaxe não somente representa expressões mais sucintamente, como também fornece elementos importantes à geração de código eficiente.
	
	
	
· Pergunta 3
0,5 em 0,5 pontos
	
	
	
	Considere as seguintes asserções:
 
I. Notações pós-fixada e pré-fixada podem ser empregadas na geração de código intermediário.
II. A notação pós-fixa pode expressar qualquer fórmula sem usar os parênteses.
III. As notações pré-fixada e pós-fixada fazem uso de uma estrutura de dados organizada em pilha.
 
São corretas as afirmações:
	
	
	
	
		Resposta Selecionada:
	a. 
I, II e III.
	Respostas:
	a. 
I, II e III.
	
	b. 
I e II, apenas.
	
	c. 
I e III, apenas.
	
	d. 
II e III, apenas.
	
	e. 
II, apenas.
	Comentário da resposta:
	Resposta: A
Comentário: A notação reversa polonesa, também denominada notação pós-fixa tem diversas vantagens quando comparada com a notação infixada. Em primeiro lugar, em notação pós-fixa é possível expressar qualquer fórmula sem usar os parênteses. Fazem uso de uma estrutura de dados organizada em pilha e a notação polonesa reversa dispensa a preocupação com a ordem de precedência de operadores.
	
	
	
· Pergunta 4
0,5 em 0,5 pontos
	
	
	
	Considere as seguintes asserções:
 
I. No código intermediário de três-endereços, cada instrução faz referência, no máximo, a três variáveis (endereços de memória).
II. Expressões envolvendo diversas operações são decompostas no código de três endereços, em uma série de instruções, eventualmente com a utilização de variáveis temporárias introduzidas na tradução.
III. No código de três endereços obtém-se um código mais próximo da estrutura da linguagem assembly.
 
São corretas as afirmações:
	
	
	
	
		Resposta Selecionada:
	a. 
I, II e III.
	Respostas:
	a. 
I, II e III.
	
	b. 
I, apenas.
	
	c. 
II, apenas.
	
	d. 
I e II, apenas.
	
	e. 
III, apenas.
	Comentário da resposta:
	Resposta: A
Comentário: No código intermediário de três-endereços, cada instrução faz referência, no máximo, a três variáveis (endereços de memória). Assim, expressões envolvendo diversas operações são decompostas nesse código em uma série de instruções, eventualmente com a utilização de variáveis temporárias introduzidas na tradução. Dessa forma, obtém-se um código mais próximo da estrutura da linguagem assembly.
	
	
	
· Pergunta 5
0,5 em 0,5 pontos
	
	
	
	É um grafo dos diferentes caminhos possíveis que o fluxo do programa pode seguir por meio de uma função. Trata-se do:
	
	
	
	
		Resposta Selecionada:
	c. 
Grafo de fluxo de controle.
	Respostas:
	a. 
Grafo de sintaxe.
	
	b. 
Autômato finito.
	
	c. 
Grafo de fluxo de controle.
	
	d. 
Diagrama de transição de estados.
	
	e. 
Esquema s-atribuído.
	Comentário da resposta:
	Resposta: C
Comentário: A análise de fluxo de controle começa com a construção de um grafo de fluxo de controle, que é um grafo dos diferentes caminhos possíveis que o fluxo do programa pode seguir por meio de uma função.
	
	
	
· Pergunta 6
0,5 em 0,5 pontos
	
	
	
	Assinale a alternativa incorreta.
	
	
	
	
		Resposta Selecionada:
	c. 
Um bloco básico tem exatamente um único ponto de entrada e um ou mais pontos de saída.
	Respostas:
	a. 
Otimizações locais são aquelas aplicadas a um bloco básico isoladamente
	
	b. 
Um grafo de fluxo de controle é um grafo direcionado cujos nós são blocos básicos.
	
	c. 
Um bloco básico tem exatamente um único ponto de entrada e um ou mais pontos de saída.
	
	d. 
Se um programa executa a primeira instrução em um bloco básico, todas as demais instruções devem ser executadas sequencialmente até o final do bloco.
	
	e. 
O corpo de um método (ou procedimento) pode ser representado como um grafo de fluxo de controle pois há um nó inicial e os nós de "retorno" são terminais.
	Comentário da resposta:
	Resposta: C
Comentário: Um bloco básico tem exatamente um único ponto de entrada e um único ponto de saída.
	
	
	
· Pergunta 7
0,5 em 0,5 pontos
	
	
	
	Identificar se duas atribuições apresentam iguais lados direitos, ou seja, o mesmo valor ou a mesma expressão, diz respeito a:
	
	
	
	
		Resposta Selecionada:
	d. 
Otimização de código local.
	Respostas:
	a. 
Uma funcionalidade da analise sintática ascendente.
	
	b. 
Uma funcionalidade da análise sintática descendente.
	
	c. 
Tarefa indispensável na geração de código intermediário.
	
	d. 
Otimização de código local.
	
	e. 
Alocação de variáveis locais em pilha.
	Comentário da resposta:
	Resposta: D
Comentário: Uma técnica de otimização local consiste em identificar se duas atribuições apresentam iguais lados direitos, ou seja, o mesmo valor ou a mesma expressão. Isso significa que ambas atribuições efetuam o mesmo cálculo.
	
	
	
· Pergunta 8
0,5 em 0,5 pontos
	
	
	
	Verificar se, na ocorrência de uma atribuição a uma variável de valores constantes, a mesma não é posteriormente utilizada, diz respeito a:
	
	
	
	
		Resposta Selecionada:
	d. 
Otimização de código local.
	Respostas:
	a. 
Uma funcionalidade da analise sintática ascendente.
	
	b. 
Uma funcionalidade da análise sintática descendente.
	
	c. 
Tarefa indispensável na geração de código intermediário.
	
	d. 
Otimização de código local.
	
	e. 
Alocação de variáveis locais em pilha.
	Comentário da resposta:
	Resposta: D
Comentário: Uma estratégia de otimização local consiste em verificar se há ocorrência de uma atribuição a uma variável de valores constantes e a mesma não é posteriormente utilizada. Esta situação configura um comando inútil, que deve ser eliminado.
	
	
	
· Pergunta 9
0,5 em 0,5 pontos
	
	
	
	O algoritmo global de subexpressões comuns é empregado:
	
	
	
	
		Resposta Selecionada:
	c. 
Na otimização do grafo de fluxo de controle inteiro.
	Respostas:
	a. 
Na gerência de memória.
	
	b. 
Na otimização local.
	
	c. 
Na otimização do grafo de fluxo de controle inteiro.
	
	d. 
Na análise sintática.
	
	e. 
Na geração de código intermediário.
	Comentário da resposta:
	Resposta: C
Comentário: Trata-se de uma tarefa de otimização global e, portanto, faz uso do grafo de fluxo de controle inteiro.
	
	
	
· Pergunta 10
0,5 em 0,5 pontos
	
	
	
	Técnica de movimentação de código, eliminação global de subexpressões comuns e expressões invariantes no loop são:
	
	
	
	
		Resposta Selecionada:
	e. 
Otimização global, otimização global, redundância que pode ser otimizada.
	Respostas:
	a. 
Otimização local, otimização global, otimização global.
	
	b. 
Otimização local.
	
	c. 
Otimização global.
	
	d. 
Otimização local, otimização global, redundância que pode ser otimizada.
	
	e. 
Otimização global, otimização global, redundância que pode ser otimizada.
	Comentário da resposta:
	Resposta: E
Comentário: As técnicas de movimentação de código e eliminação global de subexpressões fazem uso do grafo do fluxo de controle inteiro e, portanto, são técnicas de otimização global. A presença de expressões invariantes no loop consiste em redundâncias passiveis de serem otimizadas.image1.gif
image2.gif

Mais conteúdos dessa disciplina