Baixe o app para aproveitar ainda mais
Prévia do material em texto
21/12/2022 19:18 Atividade Objetiva 4: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/23993/quizzes/111054?module_item_id=584515 1/8 Atividade Objetiva 4 Entrega 15 dez em 23:59 Pontos 1 Perguntas 5 Disponível 2 dez em 0:00 - 15 dez em 23:59 Limite de tempo Nenhum Tentativas permitidas 2 Instruções Este teste foi travado 15 dez em 23:59. Histórico de tentativas Tentativa Tempo Pontuação MANTIDO Tentativa 1 14 minutos 0,6 de 1 MAIS RECENTE Tentativa 2 Menos de 1 minuto 0,4 de 1 Tentativa 1 14 minutos 0,6 de 1 Pontuação desta tentativa: 0,4 de 1 Enviado 12 dez em 9:55 Esta tentativa levou Menos de 1 minuto. 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 / 0,2 ptsPergunta 1 Leia o texto a seguir: “Lua pode ser usada como uma extensão de uma linguagem de scripting para outras linguagens. Como as primeiras implementações de Java, Lua é traduzida em um código intermediário e interpretada. Ela pode ser facilmente embarcada em outros sistemas, em parte por causa do tamanho pequeno de seu interpretador, que tem apenas cerca de 150 KBytes.” Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018. A+ A A- https://famonline.instructure.com/courses/23993/quizzes/111054/history?version=1 https://famonline.instructure.com/courses/23993/quizzes/111054/history?version=2 https://famonline.instructure.com/courses/23993/quizzes/111054/history?version=1 21/12/2022 19:18 Atividade Objetiva 4: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/23993/quizzes/111054?module_item_id=584515 2/8 Qual alternativa indica o processo correto para a execução de códigos que precisam de tradução? A linguagem deve possuir uma etapa de compilação e uma de interpretação. Correto!Correto! A linguagem será sempre uma linguagem interpretada pura. A linguagem deve ser antes compilada para bytecode Java. A linguagem é sempre interpretada pela Java Virtual Machine. A linguagem precisa ser compilada para binários de 150 KBytes. Alternativa correta, pois a linguagem que, assim como Lua, é traduzida – ou seja, compilada – para uma linguagem intermediária é interpretada, recorrendo a uma etapa de compilação seguida de interpretação. 0 / 0,2 ptsPergunta 2 Observe o diagrama ilustrando a divisão de memória em um programa em execução: A+ A A- 21/12/2022 19:18 Atividade Objetiva 4: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/23993/quizzes/111054?module_item_id=584515 3/8 Fonte: MAZIERO, Carlos. Alocação de memória. UFPR. Disponível em < http://wiki.inf.ufpr.br/maziero/doku.php? id=prog2:alocacao_de_memoria>. Acesso em 2 set 2021. Considerando a figura, avalie as afirmações abaixo: I. Parâmetros de função ficam na área denominada “stack”. II. Variáveis alocadas dinamicamente ficam na área denominada “heap”. III. Variáveis locais de função ficam na área denominada “heap”. É correto o que se afirma em: II e III, apenas. ocê respondeuocê respondeu I, apenas. II, apenas. I e II, apenas. esposta corretaesposta correta I e III, apenas. Alternativa incorreta, pois apenas as afirmativas I e II são verdadeiras. Afirmativa I é verdadeira, pois os parâmetros de função e variáveis locais são alocados no stack, uma região de memória relativamente limitada. A afirmativa II é verdadeira, pois as variáveis alocadas dinamicamente utilizam o heap, que possui mais liberdade para crescer conforme necessário, sendo mais adequado para alocar grandes quantidades de memória. A afirmativa III é falsa, pois de maneira geral, variáveis locais (ou seja, internas de funções) alocadas estaticamente, bem como parâmetros de função, são alocadas no stack. 0,2 / 0,2 ptsPergunta 3 A+ A A- 21/12/2022 19:18 Atividade Objetiva 4: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/23993/quizzes/111054?module_item_id=584515 4/8 Leia o texto a seguir: “WebAssembly é um novo tipo de código que pode ser executado nos browsers modernos e fornece novas características e maiores ganhos em performance. Ele não foi pensado incialmente para ser escrito à mão, ao contrário, foi pensado para ser um alvo eficiente de compilação para linguagens de baixo nível como C, C++, Rust etc. Ele possui implicações enormes para a plataforma web — ele fornece um caminho para executar códigos escritos em múltiplas linguagens na web, com velocidades próximas às das linguagens nativas com apps sendo executados na web, onde antes não era possível. (...) Historicamente, a VM tem tido permissão para carregar apenas JavaScript. (...) Com o advento do WebAssembly nos browsers, a máquina virtual a que nos referimos antes, vai carregar e executar dois tipos de código — JavaScript e WebAssembly.” Fonte: CONTRIBUTORS, Mozilla. Conceitos do WebAssembly. MDN Web Docs. Disponível em <https://developer.mozilla.org/pt- BR/docs/WebAssembly/Concepts>. Acesso em 02 set 2021. Considerando as informações apresentadas, assinale a opção correta: Linguagens de baixo nível, como C, C++ e Rust, podem ser compiladas diretamente para WebAssembly . Correto!Correto! Somente linguagens de alto nível podem ser compiladas diretamente para WebAssembly. Linguagens como C, C++ e Rust devem ser compiladas para JavaScript, e depois para WebAssembly Linguagens como C, C++ e Rust devem ser exclusivamente compiladas para WebAssembly. A+ A A- 21/12/2022 19:18 Atividade Objetiva 4: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/23993/quizzes/111054?module_item_id=584515 5/8 A partir de agora, qualquer linguagem pode ser utilizada para a programação WebAssembly. Alternativa correta, pois a linguagem WebAssembly é um alvo de compilação para linguagens como C, C++ e Rust, ou seja, essas linguagens podem ser compiladas para WebAssembly. Já a máquina virtual que antes só executava JavaScript, agora é capaz de carregar dois tipos diferentes de código: JavaScript e WebAssembly. Ou seja, o WebAssembly é executado pela mesma máquina que o JavaScript. 0 / 0,2 ptsPergunta 4 Leia o texto a seguir: “A versão inicial do interpretador Java, chamado de Máquina Virtual Java (JVM), era ao menos 10 vezes mais lenta que os programas compilados em C equivalentes. Entretanto, muitos programas Java são agora traduzidos para código de máquina antes de serem executados, por meio de compiladores Just-in-Time (JIT). Isso torna a eficiência dos programas Java competitiva com a de programas escritos em linguagens compiladas de forma convencional, como C++ (...)” Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018. Considerando o trecho acima, avalie as afirmações a seguir: I. O compilador JIT gera bytecode para ser interpretado pela máquina virtual. II. O compilador JIT transforma bytecode em binário nativo na hora da execução. III. O código gerado pela JIT é interpretado de maneira eficiente o suficiente para ser competitivo com códigos compilados. A+ A A- 21/12/2022 19:18 Atividade Objetiva 4: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/23993/quizzes/111054?module_item_id=584515 6/8 É correto o que se afirma em: I, apenas. ocê respondeuocê respondeu II, apenas. esposta corretaesposta correta I e III, apenas. III, apenas. II e III, apenas. Alternativa incorreta, pois apenas a afirmativa II está correta. A afirmativa I é falsa, pois o compilador JIT traduz bytecode (feito originalmente para a JVM) para binário nativo. A afirmativa II é verdadeira, pois o compilador JIT traduz bytecode (gerado previamente a partir de um programa Java) para código binário nativo na primeira execução do programa. A afirmativa III é falsa, pois o código gerado pelo JIT não é interpretado. Como o JIT gera código binário nativo, essecódigo é executado diretamente pelo computador, sem a necessidade de interpretação. 0 / 0,2 ptsPergunta 5 Leia o texto a seguir: “Quando vários programas usam a mesma biblioteca de funções, uma DLL pode reduzir a duplicação de código carregada no disco e na memória física. Ele pode influenciar muito o desempenho não apenas do programa que está em execução em primeiro plano, mas também de outros programas que estão sendo executados no Windows.” Fonte: MICROSOFT. O que é uma DLL. Microsoft Docs, 2020. Disponível em < https://docs.microsoft.com/pt- A+ A A- 21/12/2022 19:18 Atividade Objetiva 4: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/23993/quizzes/111054?module_item_id=584515 7/8 br/troubleshoot/windows-client/deployment/dynamic-link-library>. Acesso em 2 set 2021. Sabendo que uma DLL – Dynamic Link Library é uma biblioteca dinâmica que contém código e dados que podem ser usados por mais de um programa ao mesmo tempo, sendo baseadas em sub-rotinas armazenadas em disco, avalie as seguintes asserções e a relação proposta entre elas. I. Uma das vantagens de se utilizar multiprocessamento é melhorar o desempenho de processamento. PORQUE II. Ao executar processos paralelos simultaneamente, o programa é executado mais rápido. Assinale a alternativa correta sobre a relação entre as asserções I e II: A asserção I é falsa e a asserção II é verdadeira. ocê respondeuocê respondeu A asserção I é verdadeira e a asserção II é falsa. As asserções I e II são falsas. As asserções I e II são verdadeiras e a II é uma justificativa correta da I. esposta corretaesposta correta As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I. Alternativa está incorreta, pois a asserção I é verdadeira, e é justificada pela asserção II. O suporte à programação multiprocessada permite execução simultânea e, assim, melhor desempenho de processamento. Linguagens de programação de diferentes paradigmas oferecem esse recurso em diferentes níveis, podendo ser implementadas por meio de bibliotecas. A+ A A- 21/12/2022 19:18 Atividade Objetiva 4: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/23993/quizzes/111054?module_item_id=584515 8/8 Pontuação do teste: 0,4 de 1 A+ A A-
Compartilhar