Post on 17-Apr-2015
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.
Muitas linguagens integram propriedades de mais de um paradigma.
Paradigmas de Programação
Os principais paradigmas, a considerar na nossa aula serão:
Imperativo; Orientado a Objectos; Funcional; Lógico.
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.
Modelo Computacional doParadigma Imperativo
Entrada Programa Saída
Estado
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.
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).
Modelo Computacional doParadigma Orientado a Objectos
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
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.
Modelo Computacional doParadigma Funcional
Entrada Programa Saida
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.
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.
Modelo Computacional doParadigma Lógico
Entrada Programa Saída
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.