Baixe o app para aproveitar ainda mais
Prévia do material em texto
Paradigmas de Linguagen… Ques�onários AO2 Subs�tu�va Conta Painel de controle Cursos Calendário Caixa de entrada Histórico Ajuda AO2 Subs�tu�va Entrega 29 jun em 23:59 Pontos 6 Perguntas 10 Disponível 28 jun em 0:00 - 29 jun em 23:59 Limite de tempo Nenhum Instruções Histórico de tenta�vas Tenta�va Tempo Pontuação MAIS RECENTE Tenta�va 1 17 minutos 4,2 de 6 As respostas corretas estarão disponíveis em 30 jun em 0:00. Pontuação deste teste: 4,2 de 6 Enviado 28 jun em 20:27 Esta tenta�va levou 17 minutos. Graduação Junho | 2022 Página inicial Avisos Módulos Tarefas Notas Fóruns Programa Pessoas 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 / 0,6 ptsPergunta 1IncorretaIncorreta Leia o texto a seguir: “Todas as linguagens do .NET, incluindo C#, VB.NET, C++ gerenciado, F# e JScript.NET usam o Sistema de Tipos Comum (CTS - Common Type System). O CTS fornece uma biblioteca de classes comum. [...] Todas as linguagens do .NET são compiladas na mesma forma intermediária, Intermediate Language.” SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018. Considerando o trecho acima, avalie as asserções a seguir a e relação proposta entre elas: I. As linguagens .NET são compa�veis com as implementações padrão do Java. PORQUE II. As linguagens .NET são compiladas para uma linguagem comum chamada Intermediate Language. Assinale a alterna�va com a relação correta entre as asserções I e II: As asserções I e II são falsas. As asserções I e II são verdadeiras, e a II é uma jus�fica�va correta da I. As asserções I e II são verdadeiras, mas a II não é uma jus�fica�va correta da I. A asserção I é verdadeira e a asserção II é falsa. A asserção I é falsa e a asserção II é verdadeira. Alterna�va incorreta, pois a asserção I é falsa, e a asserção II é verdadeira. A asserção I é falsa, pois o fato de as linguagens .NET serem compiladas para uma mesma linguagem intermediária permite a compa�bilidade entre elas. Um programa com módulos desenvolvidos em diferentes linguagens da família .NET (por exemplo, parte em C# e parte em VB.NET), no final, irá resultar em um código uniforme, e os diferentes módulos “enxergarão” os outros módulos nessa linguagem intermediária. A asserção II é verdadeira, pois o princípio é semelhante ao da compilação de Java para bytecode, e do fato de que outras linguagens tem sido desenvolvidas para gerar bytecode compa�vel com a Java Virtual Machine (sendo, portanto, compa�veis com Java). Porém, o bytecode da JVM não possui relação com a IL do .NET. 0,6 / 0,6 ptsPergunta 2 Leia o texto a seguir: “Os computadores são u�lizados em uma infinidade de tarefas, desde controlar usinas nucleares até disponibilizar jogos eletrônicos em telefones celulares. Por causa dessa diversidade de uso, linguagens de programação com obje�vos muito diferentes foram desenvolvidas.” Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018. Avalie as afirmações sobre linguagens de programação e seus propósitos: I. Atualmente não se usa linguagens especializadas, pois há linguagens de uso geral que resolvem bem todos os problemas. II. “Domínios” de programação são diferentes categorias de problemas a serem resolvidos u�lizando programação. III. Domínio de programação é sinônimo de paradigma de programação. É correto o que se afirma em: II, apenas. I, apenas. II e III, apenas. I e III, apenas. III, apenas. Alterna�va correta, pois apenas a afirma�va II está correta. A afirma�va I é falsa, pois existem linguagens consideradas de propósito gerais, ou seja, que podem ser u�lizadas de muitas maneiras diferentes para resolver diversos �pos de problemas em diferentes áreas. Mas nenhuma linguagem será excelente para todo �po de problema, e é comum que linguagens mais especializadas ofereçam o�mizações e facilidades para resolver certos �pos de problema, se tornando mais interessantes para o caso específico do que as linguagens gerais. A afirma�va II é verdadeira, pois domínios de programação são as diferentes áreas que podem se beneficiar da programação, ou seja, podemos dizer que diferentes �pos de problema (como gerenciar as finanças de uma empresa ou validar teoremas cien�ficos) são diferentes domínios de programação. A afirma�va III é falsa, pois paradigmas de programação são diferentes jeitos de se pensar um programa, e não estão necessariamente vinculados a um único domínio de programação, bem como é possível que certo domínio de programação seja bem atendido por diferentes paradigmas de programação. 0,6 / 0,6 ptsPergunta 3 Leia o trecho a seguir: O excerto abaixo é um trecho de uma resposta dada por Bjarne Stroustrup, criador da linguagem C++ ao ser perguntado sobre a u�lidade de aprender vários paradigmas ou focar em linguagens orientadas a objeto. “(...) Não é uma boa ideia conhecer apenas C++, muito menos conhecer apenas uma linguagem de paradigma único. Seria como ser daltônico ou monoglota: dificilmente você saberia o que estaria perdendo. Muito da inspiração para uma boa programação vem do aprendizado e da apreciação de diferentes es�los de programação e, ainda, de ter visto como eles podem ser usados em linguagens diferentes.” Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018. Considerando o trecho acima, analise as asserções a seguir e a relação proposta entre elas: I. Um programador experiente se beneficiará de aprender novas linguagens de programação. PORQUE II. Cada linguagem possui conceitos exclusivos e intransponíveis para outras linguagens. Assinale a alterna�va com a relação correta entre as asserções I e II: As asserções I e II são verdadeiras, mas a II não é uma jus�fica�va correta da I. A asserção I é falsa e a asserção II é verdadeira. As asserções I e II são falsas. As asserções I e II são verdadeiras, e a II é uma jus�fica�va correta da I. A asserção I é verdadeira e a asserção II é falsa. Alterna�va correta, pois a asserção I é verdadeira, e a II é falsa. A asserção I é verdadeira, pois um programador de fato se beneficia de conhecer diferentes linguagens e paradigmas, fato reforçado pelo próprio Stroustrup em sua resposta. A asserção II é falsa, pois, apesar de ser verdadeiro que linguagens podem ter ideias novas e bastante exclusivas, os bene�cios não se restringem a conhecer esses conceitos exclusivos, e na maioria dos casos existe, sim, uma grande possibilidade de diferentes linguagens serem baseadas nos mesmos princípios – o que é a raiz da ideia de paradigmas de programação. Conforme reforçado pelo Stroustrup, um dos grandes bene�cios é justamente ver os mesmos conceitos aplicados em diferentes linguagens, o que pode ser uma fonte de inspiração para fazermos melhor uso desses recursos. 0,6 / 0,6 ptsPergunta 4 Leia o texto a seguir: “O primeiro computador programável, a Máquina Analí�ca de Babbage, construída nos anos 1840, �nha a capacidade de reu�lizar coleções de cartões de instrução em vários lugares diferentes de um programa.” SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018. Em uma linguagem de programação moderna, essas coleções não devem possuir estado. não existe tal conceito. essas coleções devem executar de maneira concorrente. essas coleções correspondem a subprogramas. essas coleções correspondem a objetos. Alterna�va correta, pois a ideia de se reu�lizar blocos de instruções é implementada por subprogramas, blocos de código que podem ser “chamados” pelo programa principal ou por outros subprogramas. Eles podem ser conhecidos por funções, métodos, ro�nas, sub-ro�nas ou procedimentos, dependendo da linguagem e do contexto. 0 / 0,6 ptsPergunta 5IncorretaIncorreta Leia o texto a seguir: “O arquivo de cabeçalho, em forma de fonte, e a versãocompilada do arquivo de implementação são repassados para os clientes. Quando tal biblioteca é usada, o arquivo de cabeçalho é incluído no código cliente por meio de uma especificação de pré-processador #include [...].” Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018. Considerando o trecho acima, avalie as afirmações abaixo: I. O #include é interpretado pelo pré-processador. II. O #include é transformado em código de máquina pelo compilador. III. As diferentes bibliotecas pré-compiladas serão unidas ao programa pelo ligador (linker). IV. As bibliotecas são disponibilizadas em linguagem intermediária (bytecode) e compiladas na hora da execução pelo JIT. É correto o que se afirma em: I, II e III, apenas. I e II, apenas. I, III e IV, apenas. II, III e IV, apenas. I e III, apenas. Alterna�va incorreta, pois apenas as afirma�vas I e III estão corretas. A afirma�va I é verdadeira, pois o #include é uma dire�va de compilação. Isso significa que ele não é um “comando” em C e não será compilado para linguagem de máquina. Ao invés disso, ele passa instruções para o processo de compilação, que são interpretadas pelo pré-processador. A afirma�va II é falsa, pois o #include copia o conteúdo do arquivo “.h” indicado para o programa final, que posteriormente será compilado. A afirma�va III é verdadeira, pois os diferentes arquivos compilados (código-objeto) separadamente serão ligados depois pelo ligador, ou linker, ao programa final. A afirma�va IV é falsa, pois os projetos em C são compilados uma única vez (para cada arquitetura) e seu binário são distribuídos já prontos para execução. Outras linguagens usam o conceito de linguagem intermediária e compilação “just-in-�me”, como o Java. 0,6 / 0,6 ptsPergunta 6 Leia o texto a seguir: “A mo�vação para Ruby foi a falta de sa�sfação de seu proje�sta com Perl e Python. Apesar de tanto Perl quanto Python oferecem suporte à programação orientada a objetos, nenhuma delas é uma linguagem puramente orientada a objetos, ao menos no sen�do de cada uma ter �pos primi�vos (não objetos) e aceitar o uso de funções.” SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018. Analise a validade das asserções abaixo e a relação proposta entre elas. I. Subprogramas em Ruby devem ser métodos. PORQUE II. Métodos são subprogramas chamados a par�r de objetos. Assinale a alterna�va com a relação correta entre as asserções I e II: A asserção I é verdadeira e a asserção II é falsa. As asserções I e II são verdadeiras, mas a II não é uma jus�fica�va correta da I. As asserções I e II são falsas. As asserções I e II são verdadeiras, e a II é uma jus�fica�va correta da I. A asserção I é falsa e a asserção II é verdadeira. Alterna�va correta. O criador de Ruby cri�ca o Python por aceitar funções, o que a desqualifica como linguagem puramente orientada a objetos. Em uma linguagem orientada a objetos, tudo deve estar relacionado a objetos – como exemplo, o texto menciona a possibilidade de nas linguagens orientadas a objeto “impuras” terem variáveis que não são objetos. Subprogramas em um contexto orientado a objeto são os métodos: eles são como funções, mas estão vinculados aos objetos e devem ser chamados à par�r dos objetos. A crí�ca ao Python e ao Perl seria pela possibilidade de se criar funções “avulsas”, sem vínculos com objetos – tornando a programação mais próxima do paradigma procedural, por exemplo, do que do orientado a objeto. 0,6 / 0,6 ptsPergunta 7 Leia o texto a seguir: “Uma das principais razões pelas quais a linguagem C é tão admirada como odiada é sua falta de uma verificação de �pos completa. Por exemplo, em versões anteriores ao C99, podiam ser escritas funções para as quais os parâmetros não eram verificados em relação ao �po. Aqueles que gostam de C apreciam a flexibilidade. aqueles que não gostam o acham muito inseguro. Uma das grandes razões para o grande aumento da sua popularidade nos anos 1980 foi o fato de que um compilador para a linguagem era parte do amplamente usado sistema operacional UNIX. Essa inclusão no UNIX forneceu um compilador bastante bom e essencialmente livre, que estava disponível para os programadores em muitos �pos de computadores.” SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018. Considerando as informações apresentadas, assinale a opção correta: Os programadores são unânimes sobre a importância da verificação de �pos. A linguagem C é exclusiva para desenvolvimento em sistemas UNIX. A disponibilidade de ferramentas para o desenvolvimento em uma linguagem afeta sua popularidade. Linguagens consideradas inseguras acabam sendo ignoradas pelos desenvolvedores e caindo em desuso. Nos anos 80, a verificação de �pos de parâmetros de funções foi importante para a aceitação da linguagem C. Alterna�va correta, pois como fator para a popularidade do C a disponibilidade de um compilador para ela estava disponível em um sistema operacional popular na época (o UNIX). Portanto, a disponibilidade de ferramentas é relevante para popularizar uma linguagem. 0,6 / 0,6 ptsPergunta 8 Leia o texto a seguir: “A linguagem C tem sentenças de controle adequadas e recursos para a u�lização de estruturas de dados que permitem seu uso em muitas áreas de aplicação. Ela também tem um rico conjunto de operadores que fornecem alto grau de expressividade.” Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018. Considerando as informações acima, assinale a alterna�va correta: A linguagem C é o ápice da programação, e suas sucessoras pouco acrescentaram em termos de recursos. A linguagem C pode ser considerada uma linguagem de propósito geral. As estruturas de dados de C a colocam no paradigma orientado a objeto. A linguagem C pode ser considerada uma linguagem pertencente à maioria dos principais paradigmas simultaneamente. As sentenças de controle do C garantem seu determinismo, caracterizando-a como programação funcional. Alterna�va correta, pois o texto caracteriza a linguagem C como uma linguagem com recursos para ser u�lizada em muitas áreas de aplicação diferentes, não se restringindo a um ou outro domínio de programação – portanto, ela é uma linguagem de propósito geral. 0,6 / 0,6 ptsPergunta 9 Leia o texto a seguir: “Um dos recursos mais interessantes de Python é que ela pode ser facilmente estendida por qualquer usuário. Os módulos que suportam as extensões podem ser escritos em qualquer linguagem compilada. Extensões podem adicionar funções, variáveis e �pos de objetos. Essas extensões são implementadas como adições ao interpretador Python.” 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. Um módulo pode conter subprogramas. II. Módulos devem ser escritos na mesma linguagem que os u�lizará. III. Módulos podem conter dados novos. IV. Módulos devem ser escritos por quem irá usá-los. É correto o que se afirma em: I e II, apenas. I e III, apenas. II e III, apenas. I, II e IV, apenas. I, II e III, apenas. Alterna�va correta. As afirma�vas I e III são verdadeiras, pois um módulo pode conter diversos códigos úteis, como subprogramas (funções, por exemplo) e dados (variáveis e objetos, por exemplo). A afirma�va II é falsa, pois um módulo não precisa ser escrito na mesma linguagem onde será usado. Por exemplo, o Python, que pode ter módulos escritos em outras linguagens, desde que sejam compiladas. Outros exemplos incluem as linguagens da família .NET (como C#, F# e VB.NET), que podem ser u�lizadas para u�lizar módulos escritos por outras linguagens da mesma família, e as linguagens que geram bytecode Java (como o próprio Java, Kotlin e Clojure, entre outras), que também podem compar�lhar módulos entre si. A afirma�va IV é falsa, pois módulos não precisam ser escritos por quem iráu�lizá-los. Pelo contrário, sua maior u�lidade está justamente na possibilidade de um mesmo módulo escrito por um programador ou um grupo de programadores ser u�lizado em uma infinidade de projetos de so�ware dis�ntos. 0 / 0,6 ptsPergunta 10IncorretaIncorreta Leia o texto a seguir: “Os navegadores [web] devem executar muitas funções diferentes ao mesmo tempo, entre elas enviar e receber dados de servidores Web, desenhar texto e imagens na tela e reagir às ações do usuário com o mouse e teclado.” 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. Os navegadores web são implementados u�lizando HTML, CSS e JavaScript. II. As várias funções simultâneas dos navegadores devem ser implementadas em linguagem funcional. III. As interações com o usuário via mouse e teclado podem ser implementadas u�lizando programação orientada a evento. IV. As várias funções diferentes descritas podem u�lizar o hardware de maneira mais eficiente através da programação concorrente. É correto o que se afirma em: I, II e IV, apenas. III e IV, apenas. II e IV, apenas. II, III e IV, apenas. II e III, apenas. Alterna�va incorreta. A afirma�va I é falsa, pois as páginas web, lidas pelos navegadores, costumam ser escritas u�lizando as linguagens HTML, JavaScript e CSS. Os navegadores em si podem ser escritos em diversas linguagens diferentes. A afirma�va II é falsa, pois a programação funcional possui diversos bene�cios, mas não é necessária ou exclusiva no desenvolvimento de programas com diversas funções diferentes. Linguagens procedurais ou orientadas a objeto também podem ser u�lizadas, por exemplo. A afirma�va III é verdadeira, pois a programação orientada a evento é caracterizada por programas que reagem ou tratam eventos, dentre os quais estão às interações com usuário. A afirma�va IV é verdadeira, pois a programação concorrente permite que diferentes conjuntos de instruções (por exemplo, funções diferentes) sejam executadas simultaneamente em diferentes núcleos. Isso garante um uso mais eficiente dos recursos disponíveis, permi�ndo um processamento simultâneo das tarefas. Pontuação do teste: 4,2 de 6 Anterior Próximo Detalhes do envio: Tempo: 17 minutos Pontuação atual: 4,2 de 6 Pontuação man�da: 4,2 de 6 A+ A A- https://famonline.instructure.com/courses/19621 https://famonline.instructure.com/courses/19621/quizzes https://famonline.instructure.com/courses/19621/quizzes/82015 https://famonline.instructure.com/ https://famonline.instructure.com/ https://famonline.instructure.com/calendar https://famonline.instructure.com/conversations http://help.instructure.com/ https://famonline.instructure.com/courses/19621/quizzes/82015/history?version=1 https://famonline.instructure.com/courses/19621 https://famonline.instructure.com/courses/19621/announcements https://famonline.instructure.com/courses/19621/modules https://famonline.instructure.com/courses/19621/assignments https://famonline.instructure.com/courses/19621/grades https://famonline.instructure.com/courses/19621/discussion_topics https://famonline.instructure.com/courses/19621/assignments/syllabus https://famonline.instructure.com/courses/19621/users https://famonline.instructure.com/courses/19621/external_tools/19325 https://famonline.instructure.com/courses/19621/modules/items/386750 https://famonline.instructure.com/courses/19621/modules/items/386752
Compartilhar