Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

25/11/2023, 18:42 Teste: Atividade 4
https://famonline.instructure.com/courses/31548/quizzes/158487/take 1/6
Atividade 4
Iniciado: 25 nov em 18:33
Instruções do teste
Importante:
Caso você esteja realizando a atividade através do aplicativo "Canvas Student", é necessário que
você clique em "FAZER O QUESTIONÁRIO", no final da página.
0,2 ptsPergunta 1
Leia o texto a seguir:
 
O código de três endereços é uma sequência de instruções no formato x := y op
z, onde x, y e z são nomes, constantes ou objetos temporários gerados pelo
compilador. Aqui, op é uma operação de dois lugares, como ponto flutuante ou
aritmética fixa, booleana ou bit a bit. O lado direito pode conter apenas um sinal
da operação.
Os objetos temporários são objetos que não possuem nomes no código e são
criados implicitamente pelo compilador em alguns casos. Considerando isso,
avalie as afirmações a seguir:
 
I. Quase todas as linguagens são capazes de criar automaticamente variáveis
temporárias para resultados intermediários de tipos simples.
II. Durante a chamada de uma função, o arquivo temporário apresenta uma
forma de alocação de dados, chamado de registro de desativação.
III. Ao executar o código, o interpretador usa os valores do contador do programa,
receptor, literais e variáveis temporárias.
IV. É recomendável usar ponteiros ou referenciar partes de um objeto temporário,
pois não há riscos de ir para o lixo.
 
É correto o que se afirma apenas em:
II e III, apenas.
I e III, apenas.
A+
A
A-
25/11/2023, 18:42 Teste: Atividade 4
https://famonline.instructure.com/courses/31548/quizzes/158487/take 2/6
I e II, apenas.
I, II e IV, apenas.
II, III e IV, apenas.
0,2 ptsPergunta 2
Leia o texto a seguir:
 
O registro do tipo de cada identificador de variável é realizado durante a análise
de um bloco de declarações. Nessa altura é criada uma entrada na tabela de
símbolos e registrado o tipo associado à variável. Quando a definição de uma
função é analisada, cria-se uma entrada na tabela dos símbolos com o
identificador da função como chave. Deve-se associar o tipo de retorno e
memorizar o tipo de cada parâmetro.
 
Fonte: SANTOS, P. R.; LANGLOIS, T. Compiladores - Da Teoria à Prática. São
Paulo. Grupo GEN, 2018.
 
Considere o texto acima para analisar as seguintes afirmações:
 
I. Podemos dizer que um identificador permite criar regras específicas e estas
independam todas de um identificador comum.
II. Um identificador se comporta da mesma maneira, conforme apareça em uma
declaração ou na chamada de uma função.
III. É fato que um identificador não pode ser uma palavra-chave devido as
palavras-chave serem de ordem reservadas.
 
É correto o que se afirma em:
III, apenas.
I e III, apenas.
II e III, apenas.
A+
A
A-
25/11/2023, 18:42 Teste: Atividade 4
https://famonline.instructure.com/courses/31548/quizzes/158487/take 3/6
I, II e III.
I, apenas.
0,2 ptsPergunta 3
Leia o texto a seguir:
 
O processo de geração de código é realizado por um componente conhecido
como gerador de código, parte do compilador de programa. O código-fonte
original de qualquer programa passa por vários ganhos antes que o executável
final seja gerado, e quando for finalmente gerado é, na verdade, um código de
máquina que os sistemas de computador podem executar facilmente. A geração
do código é a última fase da tradução. Seu resultado é um módulo montador ou
um módulo de objeto (ou inicialização). Ao contrário das linguagens interpretadas,
as compiladas não executam o código imediatamente. Ele deve ser construído
primeiro, o que é uma etapa extra e um tempo extra.
O código é mais difícil de depurar: você tem que recompilá-lo para cada, mesmo
uma pequena mudança. O próprio processo de encontrar e eliminar erros pode
não ser claro.
 
Considerando as reflexões apresentadas, assinale a opção correta.
Depois de passar pela face, várias árvores de análise são geradas. Neste ponto, o
gerador de código converte de imediato em endereçamento direto por meio do
registrador de endereços.
A tarefa de um gerador de código é construir um programa de máquina equivalente
para um programa em linguagem de entrada. A entrada para um gerador de código é
uma representação desprotegida.
Nos estágios intermediários da construção, as regras de otimização de código são
aplicadas várias vezes, sendo que esses processos de otimização dependem uns
dos outros.
Todos os geradores de código têm muito em comum, e os principais algoritmos
utilizados diferem, via de regra, apenas em detalhes relacionados à geração de
saída.
A geração de código inclui várias subtarefas específicas e relativamente
independentes. Obviamente, a independência dessas subtarefas é relativa.
A+
A
A-
25/11/2023, 18:42 Teste: Atividade 4
https://famonline.instructure.com/courses/31548/quizzes/158487/take 4/6
0,2 ptsPergunta 4
Leia o texto a seguir:
 
O comportamento de uma tabela de símbolos depende fortemente das
propriedades das declarações da linguagem traduzida. Por exemplo, a forma
como as operações inserir e remover manipulam a tabela de símbolos, quando
essas operações devem ser ativadas e quais atributos devem ser inseridos na
tabela, tudo isso varia muito de linguagem para linguagem. Até mesmo o
momento durante a tradução/execução em que a tabela de símbolos pode ser
construída, e por quanto tempo essa tabela deve existir, pode variar muito entre
as diferentes linguagens.
 
Fonte: LOUDEN, K. C. Compiladores: princípios e práticas. São Paulo. Cengage
Learning Brasil, 2004.
 
Dependendo da linguagem escolhida, a tabela de caracteres pode servir a
qual propósito?
Armazenar informações do código hash do objeto durante o processo de
compilação.
Mapear nomes lidos pelo compilador para suas informações correspondentes.
Armazenar os nomes de todas as entidades de forma estruturada em vários locais de
acordo com a estrutura.
Implementar novas atribuições e expressões no código-fonte que sejam
semanticamente incorretas.
Criar símbolos predefinidos após o processo de compilação para guardar
informações dos nomes.
0,2 ptsPergunta 5
A+
A
A-
25/11/2023, 18:42 Teste: Atividade 4
https://famonline.instructure.com/courses/31548/quizzes/158487/take 5/6
Leia o texto a seguir:
 
Uma matriz de símbolos é muito conveniente para projetar como um tipo de
dados abstrato ou como uma classe. Dessa forma:
Alterações internas na forma como ele é organizado não afetarão o restante
do código do compilador.
Namespaces diferentes são facilmente definidos como tabelas de símbolos
diferentes. Tabela de símbolos é uma importante estrutura de dados criada e
mantida pelo compilador para acompanhar a semântica das variáveis, ou seja,
armazena informações sobre o escopo e informações sobre nomes,
informações sobre instâncias de várias entidades, como nomes de variáveis e
funções, classes, objetos, etc.
 
Refletindo sobre a tabela de símbolos, avalie as seguintes asserções e a relação
proposta entre elas.
 
I. A tabela com uma lista encadeada, quando uma sequência de células ligadas
ou encadeadas umas às outras, é adequada para arrays com um número muito
pequeno de símbolos.
 
PORQUE
 
II. É rápido inserir e pesquisar na tabela encadeada, já que serve para armazenar
elementos em certa ordem, mas ela requer um design cuidadoso da provisão
para casos de colisão.
 
A respeito dessas asserções, assinale a opção correta:
A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da
I.
As asserções I e II são ambas proposições falsas.
A+
A
A-
25/11/2023, 18:42 Teste: Atividade 4
https://famonline.instructure.com/courses/31548/quizzes/158487/take 6/6
Salvo em 18:42 
As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I.
Enviar teste
A+
A
A-

Mais conteúdos dessa disciplina