Prévia do material em texto
11/9/21, 10:26 PM Fazer teste: Semana 5 - Atividade Avaliativa – ... https://ava.univesp.br/ultra/courses/_4741_1/cl/outline 1/4 Fazer teste: Semana 5 - Atividade Avaliativa Linguagens e Compiladores - EEL101 - Turma 001 Atividades Fazer teste: Semana 5 - Atividade Avaliativa Informações do teste Descrição Instruções Várias tentativas Este teste permite 3 tentativas. Esta é a tentativa número 1. Forçar conclusão Este teste pode ser salvo e retomado posteriormente. Suas respostas foram salvas automaticamente. 1. Para responder a esta atividade, selecione a(s) alternativa(s) que você considerar correta(s); 2. Após selecionar a resposta correta em todas as questões, vá até o fim da página e pressione “Enviar teste”. 3. A cada tentativa, você receberá um conjunto diferente de questões. Olá, estudante! Pronto! Sua atividade já está registrada no AVA. a. b. c. d. e. PERGUNTA 1 Uma vez definido o padrão para um código intermediário, podemos dizer que: existe mais de um código intermediário que corresponde a cada árvore sintática. existe um único código intermediário correspondente a cada árvore sintática. existe um único padrão para códigos intermediários. códigos intermediários dependem da arquitetura que será usada. casos que geram ambiguidades entre códigos intermediários são tratados como erros. 1 pontos Salva PERGUNTA 2 1 t S l ? Estado de Conclusão da Pergunta: Clique em Salvar e Enviar para salvar e enviar. Clique em Salvar todas as respostas para salvar todas as r 11/9/21, 10:26 PM Fazer teste: Semana 5 - Atividade Avaliativa – ... https://ava.univesp.br/ultra/courses/_4741_1/cl/outline 2/4 a. b. c. d. e. PERGUNTA 2 Que tipos de erros são encontrados na etapa de geração de código intermediário? Erros ligados a arquiteturas específicas. Nenhum, pois essa etapa executa após a montagem da árvore sintática e da validação da tabela de símbolos. Erros que impedem otimizações. Erros na etapa de predição de código. Erros turing-completos, que não podem ser expressos como linguagens regulares ou livres de contexto. 1 pontos Salva a. b. c. d. e. PERGUNTA 3 Em um compilador, o padrão escolhido para a linguagem intermediária deve, na hierarquia de complexidades de linguagem, ser, no mínimo: livre de contexto. dependente de contexto. turing-completa. natural. regular. 1 pontos Salva a. b. c. d. e. PERGUNTA 4 No processo de compilação, o código intermediário é: um processo auxiliar da análise sintática. um código gerado pelo compilador que será posteriormente traduzido para arquiteturas específicas. um algoritmo de propósito geral. código-fonte gerado como rascunho. a porção do código-fonte que fica entre o cabeçalho da função e sua instrução de retorno. 1 pontos Salva a. b. c. PERGUNTA 5 Se temos N linguagens de programação e M arquiteturas, quantos compiladores precisaríamos construir se fizéssemos a tradução direta, sem usar o código intermediário? N M*N M 1 pontos Salva Estado de Conclusão da Pergunta: Clique em Salvar e Enviar para salvar e enviar. Clique em Salvar todas as respostas para salvar todas as r 11/9/21, 10:26 PM Fazer teste: Semana 5 - Atividade Avaliativa – ... https://ava.univesp.br/ultra/courses/_4741_1/cl/outline 3/4 d. e. M 2*M+N M+N a. b. c. d. e. PERGUNTA 6 O código de três endereços é usado para: identificar variáveis por seu tipo. criar novos operadores. aumentar o tempo necessário para compilação. realizar a atribuição de valores a variáveis. reduzir operações longas a operações elementares, mais próximas das instruções típicas de linguagens de máquina. 1 pontos Salva a. b. c. d. e. PERGUNTA 7 A linearização de código serve para: remover as quebras de linha de códigos-fonte. tornar todo código executável em tempo linear O(n). tornar o código-fonte linear, de forma que a soma de suas entradas corresponda à soma de suas saídas. economizar memória. evitar a representação gráfica (em árvore) e permitir gerar código intermediário. 1 pontos Salva a. b. c. d. e. PERGUNTA 8 O código linearizado: t1 = b + d t2 = c + a t3 = t1 * t2 equivale a qual das expressões abaixo? b+d*c+a (b+d)*(c+a) b*(d+c)*a (a*b)+(c*d) a+b+c+d 1 pontos Salva Estado de Conclusão da Pergunta: Clique em Salvar e Enviar para salvar e enviar. Clique em Salvar todas as respostas para salvar todas as r 11/9/21, 10:26 PM Fazer teste: Semana 5 - Atividade Avaliativa – ... https://ava.univesp.br/ultra/courses/_4741_1/cl/outline 4/4 a. b. c. d. e. PERGUNTA 9 Ao linearizarmos a expressão: a + b * (c + d) encontramos qual código? t1 = a + b t2 = b * c t3 = b + t2 t1 = c + d t2 = b * t1 t3 = t2 + t1 t1 = a + b + c * d t1 = a t1 = t1 + b t1 = t1 * c t1 = t1 + d t1 = a + c + d t2 = b * t1 1 pontos Salva a. b. c. d. e. PERGUNTA 10 Identifique a alternativa que contém apenas instruções de linguagens de programação que só podem ser implementadas se usarmos o goto condicional: chamada de função. a<b. if, chamada de função. (3+5)*7. if, for, while. 1 pontos Salva Estado de Conclusão da Pergunta: Clique em Salvar e Enviar para salvar e enviar. Clique em Salvar todas as respostas para salvar todas as r