Logo Passei Direto
Buscar
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. SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018.
Considerando o texto, avalie as afirmacoes 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:
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.
I, apenas.
I e II, apenas.
III, apenas.
II e III, apenas.
II, apenas.
User badge image
Aprendendo com Desafios

há 4 horas

Respostas

User badge image

Ed Verified user icon

há 4 horas

Vamos analisar cada afirmativa: I. A programação funcional permite um grau maior de determinismo, isto é, previsibilidade dos programas. Verdadeiro. Programação funcional, por não ter estado mutável, tende a ser mais determinística e previsível. II. O estado de um programa influencia no resultado de sua execução. Verdadeiro. Em linguagens imperativas, o estado (valores das variáveis) afeta o resultado da execução. III. Todas as linguagens de programação são classificadas como funcionais ou como imperativas. Falso. Existem outras classificações, como orientadas a objetos, lógicas, declarativas, etc. Nem todas se encaixam apenas em funcional ou imperativa. Portanto, os itens corretos são I e II. Alternativa correta: I e II, apenas.

Essa resposta te ajudou?

0
Dislike0
details

Libere essa resposta sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

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

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 o que se afirma em:
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.
I e III, apenas.
I, apenas.
II, apenas.
II e IV, apenas.
II, III e IV, apenas.

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:
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.
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.
O escalonador leva em consideração a prioridade da tarefa e eventos como operações de entrada e saída.
Operações de entrada e saída fazem com que a tarefa ocupe um processador.

Mais conteúdos dessa disciplina