Considere as afirmações abaixo, sobre os paradigmas de ling...

Próximas questões
Com base no mesmo assunto
Q762247 Programação
Considere as afirmações abaixo, sobre os paradigmas de linguagens de programação. 1) As linguagens de programação Python, Ruby, C#, Cython e Lua são multiparadigmáticas e podem ser classificadas, pelo menos, nos paradigmas Orientado a Objetos, Funcional e Imperativo. 2) As linguagens de programação Object-Pascal (Delphi), Python, C++ e Java, embora deem suporte à Orientação a Objetos (OO), não são completamente orientadas a objetos. 3) As linguagens de programação Smalltalk e Ruby são completamente orientadas a objetos, uma vez que todo valor de dados é um objeto e todas as operações são vias chamadas de métodos. Está(ão) correta(s):
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a A - 1, 2 e 3.

Para compreender a questão e identificar a resposta correta, é importante ter conhecimento sobre os diferentes paradigmas de programação e como as linguagens mencionadas se enquadram nesses paradigmas.

A Afirmativa 1 está correta porque as linguagens Python, Ruby, C#, Cython e Lua são de fato multiparadigmáticas. Elas suportam o paradigma Orientado a Objetos, onde o foco está nos objetos e suas interações; o paradigma Funcional, que enfatiza a aplicação de funções e o tratamento de dados como imutáveis; e o paradigma Imperativo, que se baseia em comandos que alteram o estado do programa.

A Afirmativa 2 também está correta. Object-Pascal (Delphi), Python, C++ e Java suportam Orientação a Objetos, mas não são puramente orientadas a objetos no sentido estrito, pois permitem a programação procedimental e não têm todos os seus elementos, como primitivas ou estruturas de controle de fluxo, definidos como objetos.

Por fim, a Afirmativa 3 é verdadeira ao afirmar que Smalltalk e Ruby são completamente orientadas a objetos. Em Smalltalk, tudo é um objeto, desde os números até as estruturas de controle, e em Ruby, todos os tipos de dados são objetos, e as operações são realizadas por meio de chamadas a métodos.

Conhecendo esses conceitos e examinando as afirmações fornecidas na questão, podemos concluir que todas as três afirmações são corretas, tornando a Alternativa A a resposta adequada.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Boa noite!

Algum conhecedor/programador da linguagem de programação Cython poderia explanar um pouco sobre ela?

Desde já, obrigado!

As acertivas 1 e 3 parecem ser mutuamente excludentes, pois 1) afirma que Ruby é multiparagmática e 3) afirma que Ruby é completamente orientada a objetos.

Segundo o site oficial da linguagem, Ruby é uma "linguagem que equilibra a programação funcional com a programação imperativa."

Mas também afirma: "Em Ruby, tudo é um objeto."  "A aproximação pura, da orientação aos objetos do Ruby, é geralmente demonstrada pelo seguinte trecho de código que aplica uma ação a um número."

https://www.ruby-lang.org/pt/about/

Acredito que, a conclusão é que, do ponto de vista que "tudo é objeto" em Ruby ( o que não acontece em Java, por exemplo), ela é "completamente orientada a objetos". Mas por possibilitar a escrita do código utilizando outros paradigmas, Ruby é multiparadigmática. 

 

 

@JK

Primeiramente, "Completamente OO" não significa "exclusivamente OO". Apenas quer dizer que tudo é tratado como objeto.

.

Segundamente, a gente tem 2 divisões gerais entre as linguagens:

- Declarativas (SQL, prolog, etc)

- Imperativas (todo o resto)

.

Se você pensar na linguagem C, ela é:

- Imperativa: porque devo definir COMO o resultado é obtido

- Estruturada: porque posso usar estruturas de repetição e de condição, além de sub-rotinas (funções)

- Procedural: porque o programa principal pode fazer chamadas procedurais a outros códigos, permitindo modularização e reduzindo ainda mais os código duplicados

.

Se você pensar em C++, ela é tudo isso além de ser OO.

Se você pensar em C++ 11, ela é tudo isso além de ser Funcional uma vez que adicionou o lambda que é uma das característica desse paradigma

1) Quase todas as linguagens são multi-paradigma. A dúvida ficou nessa Cython 

2) Se a linguagem tem tipo primitivo, então ela não é 100% orientado a objetos

3) Smalltalk e Ruby são os exemplos clássicos de linguagens sem tipos primitivos, ou seja, 100% OO

.

Quem quiser ver os tipos de linguagens: https://en.wikipedia.org/wiki/List_of_programming_languages_by_type

Python e C# são funcionais? Elas não são apenas funcionais, mas também são suporte ao paradigma funcional, é isso?

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo