SóProvas


ID
2286748
Banca
SUGEP - UFRPE
Órgão
UFRPE
Ano
2016
Provas
Disciplina
Programação
Assuntos

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
Comentários
  • 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?