Considere as afirmações abaixo, sobre os paradigmas de ling...
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
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo