Linguagem de programação multiparadigma

Origem: Wikipédia, a enciclopédia livre.

Paradigma de programação é a forma de se classificar determinada linguagem de programação com base em seu funcionamento e sua estruturação. Segundo Normak (2013)[1], professor da Universidade de Aalborg[2] na Dinamarca, paradigma de programação é um padrão que serve como uma escola de pensamentos para a programação de computadores. Alguns exemplos de paradigmas de programação são a Programação orientada a objetos, Programação Estruturada e a Programação Imperativa.

Nenhum dos paradigmas pode ser considerado o ‘melhor paradigma’, pois cada um pode ser o mais viável dependendo do projeto em que será utilizado. O objetivo da programação multiparadigma é fazer uma junção de mais de um paradigma para melhor atender as necessidades do programador. A ideia de uma linguagem multiparadigma é fornecer um framework no qual o programador possa trabalhar com vários estilos, misturando livremente construtores de diferentes paradigmas, “nenhum paradigma resolve todos os problemas da maneira mais fácil ou mais eficiente” (PAQUET; MOKHOV, 2010, pág. 21) [3]

Alguns exemplos de linguagens de programação multiparadigma são C++, Groovy, Oz, Ruby ,Scala , Swift ,Lua (linguagem de programação) e Python

Vantagens e desvantagens[editar | editar código-fonte]

As linguagens multiparadigma, como seu próprio nome já diz, suportam vários paradigmas de programação. Assim podemos utilizar cada paradigma para solucionar um problema da forma mais elegante e simples possível, conforme o seu objetivo. Por ser um conceito que aceita diversos paradigmas, essas linguagens são fracamente tipadas e se não usadas de forma correta, o código pode conter várias “gambiarras”, ou seja, o que deveria facilitar a implementação, irá atrapalhar na manutenção do código, elevando seu custo.

Exemplos de orientação a objetos[editar | editar código-fonte]

Python é tida como uma linguagem multiparadigma, um mesmo programa pode ser feito utilizando paradigmas diferentes ou um único programa pode ser criado utilizando mais de um paradigma de programação. O exemplo demonstra um tipo de calculadora, criada com o paradigma de orientação a objetos.

class Calculadora:
    def __init__(self):
        self.__var1 = None
        self.__var2 = None

    def lerValores(self):
        self.__var1 = float(input('Digite um valor: '))
        self.__var2 = float(input('Digite outro valor: '))

    def adicao(self):
        soma = self.__var1 + self.__var2
        return soma

    def subtracao(self):
        sub = self.__var1 - self.__var2
        return sub

    def multiplicacao(self):
        mult = self.__var1 * self.__var2
        return mult

    def divisao(self):
        div = self.__var1 / self.__var2
        return div
from Calculadora import Calculadora

c = Calculadora()
while True:
    op = int(input('1 para setar valores\n2 para operações\n3 para sair\nOpção: '))
    if op == 1:
        c.lerValores()
    elif op == 2:
        while True:
            op1 = int(input('\n1 para soma\n2 para subtração\n3 para multiplicação\n4 para divisão\n5 para sair\nOpção: '))
            if op1 == 1:
                print(c.adicao())
            elif op1 == 2:
                print(c.subtracao())
            elif op1 == 3:
                print(c.multiplicacao())
            elif op1 == 4:
                print(c.divisao())
            else:
                break
    else:
        break

Exemplo de programação estrutural[editar | editar código-fonte]

Programação estrutural segue uma estrutura sequencial, top-down, em que, ao contrario da orientação a objetos, em que o código pode ser reutilizado, na estrutural uma sentença de código só pode ser executado uma vez. O exemplo criado com paradigma estrutural também é uma calculadora assim como no exemplo anterior, demonstrando que o mesmo programa pode ser criado com paradigmas diferentes.

print('Calculadora...\n')

while True:
    op = int(input('1 para inserir valores\n2 para efetuar operações\n3 para sair\nOpção: '))
    if op == 1:
        var1 = float(input('Digite um valor: '))
        var2 = float(input('Digite outro valor: '))
    elif op == 2:
        while True:
            op1 = int(input('\n1 para soma\n2 para subtrair\n3 para multiplicar\n4 para dividir\n5 para sair\nOpção: '))
            if op1 == 1:
                print('Soma: ', var1 + var2)
            elif op1 == 2:
                print('Subtração: ', var1 - var2)
            elif op1 == 3:
                print('Multiplicação: ', var1 * var2)
            elif op1 == 4:
                print('Divisão: ', var1 / var2)
            else:
                break
    else:
        break
  1. «Programming Paradigms». people.cs.aau.dk. Consultado em 9 de abril de 2019 
  2. «Aalborg University - Knowledge for the World». www.en.aau.dk. Consultado em 9 de abril de 2019 
  3. Mokhov, Serguei. «Comparative Studies of Programming Languages, COMP6411 Lecture Notes, Revision 1.4» (em inglês)