Linguagem de programação multiparadigma – 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)