Logo Passei Direto
Buscar
Leia 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 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 o que se afirma em:
II, III e IV, apenas.
II, apenas.
IV, apenas.
I, apenas.
III, apenas.
User badge image
Estudo Através de Questões

há 7 horas

Respostas

User badge image

Ed Verified user icon

há 7 horas

Vamos analisar cada afirmativa com base no texto e no conhecimento sobre linguagens de programação: I. Uma linguagem pode suportar vários paradigmas diferentes. Verdadeiro. O texto cita C++ e Objective-C que suportam programação procedural, orientada a dados e orientada a objetos. Ruby também é híbrida, suportando programação procedural e orientada a objetos. II. Smalltalk é a única linguagem de programação orientada a objetos. Falso. O texto menciona Smalltalk como uma linguagem orientada a objetos pura, mas não diz que é a única. Outras linguagens como Java, C#, Ruby também são orientadas a objetos, embora com características diferentes. III. Programação imperativa é incompatível com programação orientada a objetos. Falso. O texto mostra que linguagens orientadas a objetos ainda empregam estruturas imperativas básicas, ou seja, são compatíveis. IV. Ruby é somente uma linguagem de programação orientada a objetos. Falso. O texto diz que Ruby é híbrida, pois permite programação procedural além da orientada a objetos. Portanto, apenas a afirmativa I está correta. Resposta correta: I, apenas.

Essa resposta te ajudou?

0
Dislike0

Ainda não achou a resposta?

  • Integrado com os principais modelos de IA do mercado
  • Respostas em segundos
  • IA treinada para estudantes brasileiros.
PasseIA logoEvolua sua forma de estudar

Cadastre-se ou realize login

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Essa pergunta também está no material:

Mais perguntas desse material

Leia 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 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:
escalonador distribui operações de entrada e saída entre as tarefas.
Operações de entrada e saída fazem com que a tarefa ocupe um processador.
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.
escalonador leva em consideração a prioridade da tarefa e eventos como operações de entrada e saída.
Tarefas não possuem prioridade, executando sempre a mesma quantidade de tempo.

Leia texto a seguir: Stevens, Myers e Constantine (1974) fizeram uma primeira tentativa de descrever módulo como "um conjunto de uma ou mais instruções de programa contíguas, que possui um nome pelo qual outras partes do sistema podem chamá-lo e, preferivelmente, com seu próprio conjunto distinto de nomes de variáveis". Em outras palavras, um módulo consiste de um único bloco de código que pode ser chamado da mesma forma que é chamado um procedimento, uma função ou método. (...) Nas linguagens e C++, um arquivo-cabeçalho de declarações que é incluído (#include) em um produto de modo semelhante também não é chamado. (...) Yourdon e Constantine (1979) dão uma definição mais ampla: "Módulo é uma sequência de instruções de programa lexicamente contíguas, limitadas por elementos delimitadores, que possuem um identificador de agregação. Exemplos de elementos delimitadores são os pares begin end em uma linguagem estruturada em blocos, como Pascal, ou pares {...} no C++ ou Java." Schach, S. R. Engenharia de Software. Editora Grupo A, 2010.
Considerando o texto acima, analise as seguintes afirmações sobre módulos. I. Qualquer elemento compilado separadamente, como cabeçalhos em C, é considerado módulo por ambas as definições. II. Objetos são considerados módulos por ambas as definições. III. Blocos condicionais e malhas de repetição são considerados módulos por alguns autores. IV. Módulos permitem isolar informações, mas não instruções. É correto o que se afirma, em:
I e III, apenas.
IV, apenas.
I, e III, apenas.
I, III e IV, apenas.
II, III e IV, apenas.

Leia 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 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
Linguagens como C, C++ e Rust devem ser exclusivamente compiladas para WebAssembly.
Linguagens como C++ e Rust devem ser compiladas para JavaScript, e depois para WebAssembly
A partir de agora, qualquer linguagem pode ser utilizada para a programação WebAssembly.
Somente linguagens de alto nível podem ser compiladas diretamente para WebAssembly.

Mais conteúdos dessa disciplina