Prévia do material em texto
Compiladores - S20261.347 Quizzes A�vidade 4 Conta Painel de controle Cursos Grupos Calendário Caixa de entrada Histórico Ajuda 2 10 A�vidade 4 Iniciado: 18 mar em 10:26 Instruções do teste Salvando... Graduação Semestral | 2026.1 Página inicial Pesquisa IgniteAI Avisos Fóruns Módulos Tarefas Notas Zoom Importante: Caso você esteja realizando a a�vidade através do aplica�vo "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 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 a�vadas 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 exis�r, pode variar muito entre as diferentes linguagens. Fonte: LOUDEN, K. C. Compiladores: princípios e prá�cas. São Paulo. Cengage Learning Brasil, 2004. Dependendo da linguagem escolhida, a tabela de caracteres pode servir a qual propósito? Criar símbolos predefinidos após o processo de compilação para guardar informações dos nomes. Armazenar os nomes de todas as en�dades de forma estruturada em vários locais de acordo com a estrutura. Mapear nomes lidos pelo compilador para suas informações correspondentes. Implementar novas atribuições e expressões no código-fonte que sejam seman�camente incorretas. Armazenar informações do código hash do objeto durante o processo de compilação. 0,2 ptsPergunta 2 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 úl�ma 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 di�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. A geração de código inclui várias subtarefas específicas e rela�vamente independentes. Obviamente, a independência dessas subtarefas é rela�va. Todos os geradores de código têm muito em comum, e os principais algoritmos u�lizados diferem, via de regra, apenas em detalhes relacionados à geração de saída. Nos estágios intermediários da construção, as regras de o�mização de código são aplicadas várias vezes, sendo que esses processos de o�mização dependem uns dos outros. 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. 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. 0,2 ptsPergunta 3 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é�ca 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 automa�camente variáveis temporárias para resultados intermediários de �pos 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 desa�vaçã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: I e III, apenas. I, II e IV, apenas. I e II, apenas. II e III, apenas. II, III e IV, apenas. 0,2 ptsPergunta 4 Leia o texto a seguir: O registro do �po de cada iden�ficador 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 �po associado à variável. Quando a definição de uma função é analisada, cria-se uma entrada na tabela dos símbolos com o iden�ficador da função como chave. Deve-se associar o �po de retorno e memorizar o �po de cada parâmetro. Fonte: SANTOS, P. R.; LANGLOIS, T. Compiladores - Da Teoria à Prá�ca. São Paulo. Grupo GEN, 2018. Considere o texto acima para analisar as seguintes afirmações: I. Podemos dizer que um iden�ficador permite criar regras específicas e estas independam todas de um iden�ficador comum. II. Um iden�ficador se comporta da mesma maneira, conforme apareça em uma declaração ou na chamada de uma função. III. É fato que um iden�ficador não pode ser uma palavra-chave devido as palavras-chave serem de ordem reservadas. É correto o que se afirma em: I, II e III. I e III, apenas. II e III, apenas. III, apenas. I, apenas. 0,2 ptsPergunta 5 Leia o texto a seguir: Uma matriz de símbolos é muito conveniente para projetar como um �po 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 man�da pelo compilador para acompanhar a semân�ca das variáveis, ou seja, armazena informações sobre o escopo e informações sobre nomes, informações sobre instâncias de várias en�dades, como nomes de variáveis e funções, classes, objetos, etc. Refle�ndo 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: As asserções I e II são proposições verdadeiras, e a II é uma jus�fica�va da I. As asserções I e II são ambas proposições falsas. 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 jus�fica�va da I. A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. Enviar teste Perguntas Pergunta 1 Pergunta 2 Pergunta 3 Pergunta 4 Pergunta 5 Tempo transcorrido: Prazo da tenta�va encerrado: 27 mai em 23:59 1 Hora, 52 Minutos, 43 Segundos Ocultar hora A+ A A https://famonline.instructure.com/courses/51305 https://famonline.instructure.com/courses/51305/quizzes https://famonline.instructure.com/courses/51305/quizzes/246163 https://famonline.instructure.com/ https://famonline.instructure.com/profile/settings https://famonline.instructure.com/ https://famonline.instructure.com/courses https://famonline.instructure.com/groups https://famonline.instructure.com/calendar https://famonline.instructure.com/conversationshttps://famonline.instructure.com/courses/51305 https://famonline.instructure.com/courses/51305/search https://famonline.instructure.com/courses/51305/announcements https://famonline.instructure.com/courses/51305/discussion_topics https://famonline.instructure.com/courses/51305/modules https://famonline.instructure.com/courses/51305/assignments https://famonline.instructure.com/courses/51305/grades https://famonline.instructure.com/courses/51305/external_tools/52752