Baixe o app para aproveitar ainda mais
Prévia do material em texto
22/09/2023, 12:04 Atividade Objetiva 2: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/27495/quizzes/139321?module_item_id=710810 1/8 Atividade Objetiva 2 Entrega 18 jun em 23:59 Pontos 1 Perguntas 5 Disponível até 18 jun em 23:59 Limite de tempo Nenhum Tentativas permitidas 2 Instruções Este teste não está mais disponível, pois o curso foi concluído. Histórico de tentativas Tentativa Tempo Pontuação MAIS RECENTE Tentativa 1 54 minutos 1 de 1 Pontuação desta tentativa: 1 de 1 Enviado 16 jun em 12:05 Esta tentativa levou 54 minutos. 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: “Os componentes primários de Prolog são um método para a especificação de proposições de cálculo de predicados e uma implementação de uma forma restrita de resolução (...). O nome Prolog vem de programming logic (programação lógica).” SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018. Analise as afirmações sobre a linguagem de programação mencionada no texto. I. O Prolog é considerado uma linguagem declarativa. II. Programação lógica é uma forma de programação funcional. A+ A A- https://famonline.instructure.com/courses/27495/quizzes/139321/history?version=1 22/09/2023, 12:04 Atividade Objetiva 2: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/27495/quizzes/139321?module_item_id=710810 2/8 III. Programas escritos em Prolog são formados por predicados lógicos. IV. Predicados possuem atributos e métodos. É correto o que se afirma em: I, II e IV, apenas. II e III, apenas. I e II, apenas. I, II e III, apenas. Correto!Correto! II, III e IV, apenas. Alternativa está correta. A afirmativa I é verdadeira, pois o Prolog é o principal representante da chamada programação lógica, que é considerado um paradigma declarativo A afirmativa II é verdadeira, pois a programação funcional é outro paradigma declarativo distinto da programação lógica A afirmativa III é verdadeira, pois os programas escritos em Prolog são formados por diversos predicados lógicos, os quais podem ser consultados e interpretados. A afirmativa IV é falsa, pois atributos e métodos são conceitos relacionados a classes e objetos, estruturas utilizadas por linguagens orientadas a objeto e ausentes no Prolog. 0,2 / 0,2 ptsPergunta 2 Leia o texto a seguir: “Mecanismos para sincronização devem ser capazes de atrasar a execução de uma tarefa. A sincronização impõe uma ordem de execução das tarefas garantida com esses atrasos. Para entender o que acontece com as tarefas ao longo de seus tempos de vida, precisamos considerar como a execução de tarefas é controlada. Independentemente de uma máquina ter um ou mais processadores, sempre existe a possibilidade de haver mais tarefas que processadores. Um programa de sistema de tempo de execução, chamado escalonador, gerencia o compartilhamento A+ A A- 22/09/2023, 12:04 Atividade Objetiva 2: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/27495/quizzes/139321?module_item_id=710810 3/8 de processadores entre as tarefas. Se nunca existissem interrupções e todas as tarefas tivessem a mesma prioridade, o escalonador poderia simplesmente dar a cada tarefa uma fatia de tempo, como 0,1 segundo, e quando o turno de uma tarefa chegasse, o escalonador poderia deixá-la ser executada por essa quantidade de tempo em um processador. É claro, existem diversos eventos complicadores, atrasos de tarefa para sincronização e para operações de entrada e saída. Como operações de entrada e saída são muito lentas em relação à velocidade do processador, uma tarefa não pode manter um processador enquanto espera pela conclusão de uma delas.” SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018. Considerando os conceitos apresentados, assinale a alternativa correta: Operações de entrada e saída fazem com que a tarefa ocupe um processador. Tarefas não possuem prioridade, executando sempre a mesma quantidade de tempo. O escalonador distribui operações de entrada e saída entre as tarefas. O escalonador leva em consideração a prioridade da tarefa e eventos como operações de entrada e saída. Correto!Correto! Tarefas são ordenadas em função de sua prioridade, e aquelas com operações de entrada e saída executarão por mais tempo. A+ A A- 22/09/2023, 12:04 Atividade Objetiva 2: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/27495/quizzes/139321?module_item_id=710810 4/8 Alternativa correta. O escalonador é responsável por ceder processador(es) para uma tarefa e removê-lo quando julgar conveniente ou necessário. O escalonador leva em consideração tanto a prioridade das tarefas quanto a ocorrência de certos eventos, operações de entrada e saída, que por serem proporcionalmente lentas não justificam a ocupação de processadores pela tarefa. Nestes casos, o escalonador temporariamente remove os processadores daquela tarefa e os distribui para outras tarefas. 0,2 / 0,2 ptsPergunta 3 Leia o texto a seguir: “O primeiro passo de C em direção a C++ foi dado por Bjarne Stroustrup, no Bell Labs, em 1980. As modificações iniciais em C incluíam a adição de verificação de tipos e a conversão de parâmetros de funções e classes, as quais estavam relacionadas às de SIMULA 67 e de Smalltalk. Também estavam incluídas classes derivadas, controle de acesso público/privado de componentes herdados, métodos construtores e destrutores e classes amigas (friend classes). Durante 1981, foram adicionadas funções internalizadas (inline functions), parâmetros padrão e a sobrecarga do operador de atribuição. A linguagem resultante foi chamada de C com Classes e é descrita em Stroustrup (1983).” SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018. A linguagem C++ originou-se como uma adaptação da linguagem C para o paradigma lógico. procedural. concorrente. orientado a objeto. Correto!Correto! funcional. A+ A A- 22/09/2023, 12:04 Atividade Objetiva 2: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/27495/quizzes/139321?module_item_id=710810 5/8 A alternativa está correta, pois a linguagem C já é uma linguagem procedural. A linguagem C++ trouxe construções típicas da programação orientada a objeto, como classes e objetos – inclusive, como o texto aponta, seu primeiro nome foi “C com Classes”. 0,2 / 0,2 ptsPergunta 4 Leia o texto a seguir: “C++ e Objective-C suportam programação procedural e orientada a dados, além da programação orientada a objetos. CLOS, uma versão orientada a objetos de LISP (Paepeke, 1993), também suporta programação funcional. Algumas das linguagens mais novas projetadas para a programação orientada a objetos não suportam outros paradigmas, mas ainda assim empregam algumas das estruturas imperativas básicas e têm a aparência das linguagens imperativas mais antigas. Entre essas estão Java e C#. É desafiador classificar Ruby: é uma linguagem orientada a objetos no sentido de que todos os dados são objetos, mas é uma linguagem híbrida, porque é possível usá-la para programação procedural. Por fim, existe a linguagem orientada a objetos pura, mas um tanto anticonvencional: Smalltalk. Ela foi a primeira linguagem a oferecer suporte para programação orientada a objetos.” SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018. Considerando o contexto, analise as afirmações abaixo: I. Uma linguagem pode suportar vários paradigmas diferentes. II. Smalltalk é a única linguagem de programação orientada a objetos. III. Programação imperativa é incompatível com programação orientada a objetos. IV. Ruby é somente uma linguagem de programação orientada a objetos. É correto oque se afirma em: II e IV, apenas. I e III, apenas. A+ A A- 22/09/2023, 12:04 Atividade Objetiva 2: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/27495/quizzes/139321?module_item_id=710810 6/8 II, apenas. II, III e IV, apenas. I, apenas. Correto!Correto! Alternativa está correta. A afirmativa I é verdadeira, pois uma linguagem pode suportar múltiplos paradigmas, e isso é comum. O próprio texto cita, como exemplo, o CLOS, que suporta tanto programação orientada a objetos quanto programação funcional. A afirmativa II é falsa, pois Smalltalk é considerada a única linguagem puramente orientada a objetos, ou seja, que não incorpora conceitos de qualquer outro paradigma, mas são citados diversos exemplos de linguagens orientadas a objeto que suportam diferentes formas de programação. A orientação a objeto é considerada uma forma de programação imperativa. A afirmativa III é falsa, pois outra forma de programação imperativa é a programação procedural, e foram citados exemplos de linguagens que suportam simultaneamente a programação orientada a objeto e a procedural. A afirmativa IV é falsa, pois ao contrário do que se diz o Ruby é uma linguagem de programação híbrida e suporta ambos os paradigmas orientado a objetos e procedural. 0,2 / 0,2 ptsPergunta 5 Leia o texto a seguir: “Uma das características fundamentais dos programas escritos em linguagens imperativas é o fato de terem estado, o qual muda ao longo do processo de execução. Esse estado é representado pelas variáveis do programa. O autor e todos os leitores do programa devem entender os usos de suas variáveis e compreender como o estado do programa muda durante a execução. Para um programa grande, é uma tarefa intimidante. Esse é um problema dos programas escritos em uma linguagem imperativa que não está presente nos programas escritos em uma linguagem funcional pura, pois estes não têm variáveis nem estados.” A+ A A- 22/09/2023, 12:04 Atividade Objetiva 2: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/27495/quizzes/139321?module_item_id=710810 7/8 SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018. Considerando o texto, avalie as afirmações a seguir: I. A programação funcional permite um grau maior de determinismo, isto é, previsibilidade dos programas. II. O estado de um programa influencia no resultado de sua execução. III. Todas as linguagens de programação são classificadas como funcionais ou como imperativas. É correto o que se afirma em: II, apenas. I, apenas. II e III, apenas. I e II, apenas. Correto!Correto! III, apenas. A+ A A- 22/09/2023, 12:04 Atividade Objetiva 2: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/27495/quizzes/139321?module_item_id=710810 8/8 Alternativa está correta, pois apenas as afirmativas I e II estão corretas. A afirmativa I está correta, pois a programação funcional foi concebida precisamente para providenciar um maior determinismo, dado que a falta de determinismo em programas desenvolvidos nas linguagens imperativas torna mais difícil a análise de seus códigos e aumenta a probabilidade de erros. Ela atinge um maior grau de determinismo prezando por definições matematicamente rigorosas de funções e abolindo o estado, representado pelas variáveis de um programa. A afirmativa II está correta, pois o estado do programa é dado pelos valores de todas as suas variáveis ao longo de sua execução. Esses valores frequentemente são utilizados para realizar cálculos, tomar decisões sobre a ramificação do código em estruturas condicionais, controlar a quantidade de repetições de um loop, entre outras coisas. Portanto, o estado influencia diretamente tanto no fluxo de execução quanto no resultado final do programa. A afirmativa III está incorreta, pois existe uma grande quantidade de paradigmas diferentes. Alguns paradigmas são considerados ramificações de outros – por exemplo, os paradigmas procedural e orientado a objeto são paradigmas considerados imperativos. Há outros paradigmas que não são imperativos além do funcional, como o paradigma lógico. Pontuação do teste: 1 de 1 A+ A A-
Compartilhar