close
Ir para o conteúdo

Linguagem de programação multiparadigma

Origem: Wikipédia, a enciclopédia livre.
(Redirecionado de Multiparadigma)

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[1], um professor da Universidade de Aalborg 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.

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

Vantagens e desvantagens

[editar | editar código]

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, tendo em mente que um mesmo programa pode ser feito utilizando paradigmas diferentes. 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 amplo aceitando diversos paradigmas, essas linguagens são fracamente tipadas, sendo assim preferível uma solução viável à longo prazo a soluções temporárias que resolvem um problema por vez.

Exemplos de orientação a objetos

[editar | editar código]

Python é tida como uma linguagem multiparadigma. O exemplo demonstra um tipo de calculadora, criada com o paradigma de orientação a objetos.

Em um arquivo separado, ou em um escopo global:

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

Utilidade no arquivo principal:

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]

Programação estrutural segue uma estrutura sequencial, top-down, em que, ao contrario da orientação a objeto, o código só pode ser executado uma vez. O exemplo segue com a mesma premissa de uma calculadora, demonstrando a capacidade de diferentes paradigmas em criar o mesmo programa.

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

Exemplo de programação imperativa

[editar | editar código]

Programação imperativa segue o paradigma de que deve-se passar instruções explícitas para que haja mudança no estado do programa[2], passo-a-passo. Um dos exemplos mais comuns são encontrados em códigos assembly, como exemplo o código C abaixo:

int sum = 0;
for (int i = 0; i < 10; i++) {
    sum += 2;
}

Que pode ser mapeado 1:1 para (seguindo arquitetura x86-64, sintaxe GAS):

mov $0, %eax # sum = 0
mov $0, %ecx # i = 0

for_loop:
    add $2, %eax # sum += 2
    inc %ecx # i++
    cmp $10, %ecx # i < 10
    jl for_loop # Se a comparação acima compreender %ecx como menor que 10, o loop volta
  1. «Programming Paradigms». people.cs.aau.dk. Consultado em 9 de abril de 2019
  2. «Imperative programming: Overview of the oldest programming paradigm». ionos Digital Guide (em inglês). 21 de maio de 2021. Consultado em 15 de julho de 2026

[1]

  1. Erro de citação: Etiqueta <ref> inválida; não foi fornecido texto para as "refs" nomeadas ":0"