16
Estudo dos Paradigmas de Programação

Estudo dos Paradigmas de Programação. Introdução Os paradigmas de programação não são exclusivos, mas reflectem ênfases diferentes de linguagens de programadores

Embed Size (px)

Citation preview

Page 1: Estudo dos Paradigmas de Programação. Introdução Os paradigmas de programação não são exclusivos, mas reflectem ênfases diferentes de linguagens de programadores

Estudo dos Paradigmas de Programação

Page 2: Estudo dos Paradigmas de Programação. Introdução Os paradigmas de programação não são exclusivos, mas reflectem ênfases diferentes de linguagens de programadores

Introdução

Os paradigmas de programação não são exclusivos, mas reflectem ênfases diferentes de linguagens de programadores.

Muitas linguagens integram propriedades de mais de um paradigma.

Page 3: Estudo dos Paradigmas de Programação. Introdução Os paradigmas de programação não são exclusivos, mas reflectem ênfases diferentes de linguagens de programadores

Paradigmas de Programação

Os principais paradigmas, a considerar na nossa aula serão:

Imperativo; Orientado a Objectos; Funcional; Lógico.

Page 4: Estudo dos Paradigmas de Programação. Introdução Os paradigmas de programação não são exclusivos, mas reflectem ênfases diferentes de linguagens de programadores

Paradigma ImperativoApresenta programas centrados no conceito

de um estado (modelado por variáveis) e acções (comandos), que o manipulam.

E também denominado por paradigma procedual, por incluir subrotinas ou procedimentos como mecanismos de instrução.

Foi o primeiro paradigma a surgir e é actualmente o dominante.

Page 5: Estudo dos Paradigmas de Programação. Introdução Os paradigmas de programação não são exclusivos, mas reflectem ênfases diferentes de linguagens de programadores

Modelo Computacional doParadigma Imperativo

Entrada Programa Saída

Estado

Page 6: Estudo dos Paradigmas de Programação. Introdução Os paradigmas de programação não são exclusivos, mas reflectem ênfases diferentes de linguagens de programadores

Paradigma ImperativoVantagens:Eficiência (usa o modelo de Von Neumann);Uso do modelo “natural” de aplicações do

mundo real;É o paradigma dominante.

Desvantagens:Relacionamento indireto entre E/S resulta em:- Difícil legibilidade;- Erros introduzidos durante manutenção;

- Descrições demasiadamente operacionais;Basea-se no como e não no que.

Page 7: Estudo dos Paradigmas de Programação. Introdução Os paradigmas de programação não são exclusivos, mas reflectem ênfases diferentes de linguagens de programadores

Paradigma Orientado aObjectos

• Não é um paradigma no sentido da palavra, é uma subclassificação do paradigma imperativo;

• A diferença reside na metodologia, quanto à concepção e modelagem do sistema;

• De maneira geral, uma aplicação é estruturada em módulos (classes) que agrupam um estado e operações (métodos) sobre eles.

• As classes podem ser usadas como tipos (cujos elementos são objetos).

Page 8: Estudo dos Paradigmas de Programação. Introdução Os paradigmas de programação não são exclusivos, mas reflectem ênfases diferentes de linguagens de programadores

Modelo Computacional doParadigma Orientado a Objectos

Page 9: Estudo dos Paradigmas de Programação. Introdução Os paradigmas de programação não são exclusivos, mas reflectem ênfases diferentes de linguagens de programadores

Paradigma Orientado aObjectos

Vantagens:As mesmas a do paradigma imperativo;Classes estimulam projeto centrado em dados: modularidade, reusabilidade e extensibilidadeAceitação comercial crescente

Desvantagens:Semelhantes às do paradigma imperativo, mas amenizadas pelas facilidades de estruturação

Page 10: Estudo dos Paradigmas de Programação. Introdução Os paradigmas de programação não são exclusivos, mas reflectem ênfases diferentes de linguagens de programadores

O Paradigma FuncionalOs programas são funções que descrevem uma

relação explícita e precisa entre E/S;

O estilo é declarativo:- não há o conceito de estado;- nem comandos como atribuição;

Conceitos sofisticados como polimorfismo, funções de alta ordem e avaliação sobre demanda;

Aplicação: prototipação.

Page 11: Estudo dos Paradigmas de Programação. Introdução Os paradigmas de programação não são exclusivos, mas reflectem ênfases diferentes de linguagens de programadores

Modelo Computacional doParadigma Funcional

Entrada Programa Saida

Page 12: Estudo dos Paradigmas de Programação. Introdução Os paradigmas de programação não são exclusivos, mas reflectem ênfases diferentes de linguagens de programadores

O Paradigma FuncionalVantagens:Manipulação de programas mais simples:- Prova de propriedades;- Transformação (exemplo: otimização);Concorrência explorada de forma natural.

Desvantagens : O mundo não é funcional;Implementações ineficientes;Mecanismos primitivos de E/S e formatação.

Page 13: Estudo dos Paradigmas de Programação. Introdução Os paradigmas de programação não são exclusivos, mas reflectem ênfases diferentes de linguagens de programadores

O Paradigma LógicoProgramas são relações entre E/S;

Estilo declarativo, como no paradigma funcional;

Na prática, inclui características imperativas, por questão de eficiência;

Aplicações: sistemas especiais e banco de dados.

Page 14: Estudo dos Paradigmas de Programação. Introdução Os paradigmas de programação não são exclusivos, mas reflectem ênfases diferentes de linguagens de programadores

Modelo Computacional doParadigma Lógico

Entrada Programa Saída

Page 15: Estudo dos Paradigmas de Programação. Introdução Os paradigmas de programação não são exclusivos, mas reflectem ênfases diferentes de linguagens de programadores

O Paradigma Lógico

Vantagens:Em princípio, todos paradigmas declarativos,

permitem concepção da aplicação em um alto nível de abstração (através de associações entre E/S).

Desvantagens:Linguagens usualmente não possuem tipos,

nemsão de alta ordem.

Page 16: Estudo dos Paradigmas de Programação. Introdução Os paradigmas de programação não são exclusivos, mas reflectem ênfases diferentes de linguagens de programadores