Paradigmas de Programação

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 4

Paradigmas de Programação

Ana Claudia Souza da Silva

Resumo: Este artigo tem como objetivo esboçar os paradigmas das diferentes linguagens de
programação de computadores.

Existem diferentes paradigmas para desenvolver programas, tais como: imperativo, lógico,
funcional, orientado a eventos e orientado a objetos, entre outros. Em algumas linguagens de
programação, dependendo dos recursos oferecidos, é possível programar em mais de um
paradigma (por exemplo, é muito comum algumas linguagens permitirem o desenvolvimento
baseado no paradigma imperativo e, também, orientado a objeto). Neste caso, dependerá do
conhecimento do programador (desenvolvedor de software) a utilização dos recursos mais
adequados para a solução de cada um dos problemas. Os diferentes paradigmas também
podem envolver o domínio da aplicação das linguagens de programação, tais como:
desenvolvimento de sistemas para uso comercial (Sistemas de Informação), aplicações
matemáticas e aprendizado de programação, entre outros.

● Definição: estilo de programação, a forma como você descreve a solução


computacional de um problema.

● Imperativo: um programa é uma sequência de comandos que alteram o estado atual


do sistema até atingir um estado final.

● Estruturado: programas com uma estrutura de fluxo de controle e uso de


procedimento e funções.

● Orientado objeto: organização através de objetos que contém dados, estados próprios
e métodos que alteram ou recuperam os dados/estados. Os objetos comunicam entre si
para compor a lógica do programa.

● Lógico: especifica-se um conjunto de fatos e regras, o interpretador infere respostas


para perguntas sobre o programa.

Muitas das linguagens de programação são, na realidade, multi-paradigmas. Contêm


características de diversos paradigmas, contudo, na prática, elas acabam favorecendo um
paradigma específico o que acaba lhes conferindo o título de linguagem “funcional” ou
“imperativa” por exemplo:

1.1 Paradigma Imperativo


● Descreve-se passo a passo o que deve ser feito.
● Infame goto.
● Evoluiu para procedural e estruturado com if, while, for, …
Vantagens
• O fluxo de controle é explícito e completo, nada está escondido.

• Linguagem um pouco mais alto nível do que a linguagem de máquina.

Desvantagens
• Ao seguir o passo a passo, você chega no resultado… mas pode ser difícil racionalizar qual
será ele.

• Qualquer um pode usar suas variáveis globais e suas funções, para o seu uso intencional ou
não.

1.2 Paradigma Estruturado


● Estrutura o código imperativo em blocos lógicos.
● Esses blocos contém instruções imperativas que, quando escritas, foram feitas para
cumprir um único objetivo.
● Elimina o uso de goto.
Ou deveria ter eliminado. Contra-exemplos: Java, C…

Vantagens
• O programa é dividido em blocos lógicos, cada qual com uma função explícita (se for bom
programador).

• Estimula o uso de variáveis locais pertencentes a cada bloco lógico.

Desvantagens
• Não evita que certas informações sejam utilizadas fora do seu contexto.

• Usa mudança de estados, o que pode levar a bugs.

1.3 Orientação a Objetos


● Encapsula os dados em classes cada qual contendo seus próprios estados e métodos,
não compartilhados.

● Um objeto pode se comunicar com outro, não usa (ou evita) variáveis globais.
Linguagens como Smalltalk usam o termo troca de mensagens enquanto em outras
como Java fala-se de chamadas/invocação de métodos

● Métodos são divididos em métodos de instância , que lidam com o estado e


manipulação de um objeto específico e métodos de classe/estáticos que, tipicamente,
tratam requisições que não são particulares a um objeto

Vantagens
• Encapsula códigos imperativos para segurança e reuso.

• Evita o uso de variáveis globais, inibe uso indevido de trechos de códigos.

Desvantagens
• Não são todos os problemas que podem ser facilmente ou naturalmente modelados como
objetos.

• Composição de funções é feita através de herança, que pode bagunçar o fluxo lógico do
código.

• Uso pesado de estados mutáveis.

• Difícil de paralelizar.
1.4 Paradigma Lógico
● Especifica-se apenas fatos e regras de inferência .
● O objetivo (retorno) é escrito em forma de pergunta.

Vantagens
• O compilador constrói o programa para você, baseado em fatos lógicos.

• Provar a corretude do programa é simples.

Desvantagens
• Algoritmos mais complexos podem ser difíceis de expressar dessa forma.

• Costuma ser mais lento para operações matemáticas.

Referências:
https://haskell.pesquisa.ufabc.edu.br/haskell/01.paradigmas/

paradigmas_programacao_uma_introducao_V0

Você também pode gostar