1 curso sistemas de informação disciplina: arquitetura de software paradigmas de programação

Post on 17-Apr-2015

106 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Curso Sistemas de InformaçãoDisciplina: Arquitetura de Software

Paradigmas de Programação

2

A maioria das linguagens de programação são extensas e complexas e normalmente integram várias idéias. No entanto, cada linguagem baseia-se, usualmente, numa idéia central, ou paradigma;

Conjunto de regras, princípios e valores que determinam um padrão de comportamento;

Paradigmas de Programação

3

Um paradigma é uma maneira de se abordar a concepção de um programa;

Modelo ou estilo de programação suportado por linguagens que agrupam certas características comuns;

Determina a visão que o programador tem da estruturação e execução do programa;

Paradigmas de Programação

4

Por que estudar os diferentes paradigmas?

Para saber escolher o paradigma cuja idéia base modele adequadamente o domínio do meu problema;

Para escolher a melhor maneira de tratar o problema em questão;

Paradigmas de Programação

5

Paradigmas de Programação

6

Modelo Declarativo:

Abrangem as linguagens que não possuem os conceitos de seqüências de comandos e atribuições;

Não manipulam a memória;

Dão ênfase ao o que calcular e não como calcular;

Modelos de Paradigmas

7

Modelo Declarativo: Linguagens funcionais ( resultados obtidos através de

funções); Exemplo: Lisp, Scheme, Haskell, APL

Linguagens Lógicas (resultados obtidos através da analise de axiomas lógicos);

Exemplo: Prolog, Godel

Modelos de Paradigmas

8

Modelo Imperativo:

Abrangem as linguagens que expressam seqüências de comandos e que realizam transformações sobre dados e estados do sistema;

Baseado na máquina de Von Neumann;

Modelos de Paradigmas

9

Modelo Imperativo:

Linguagens procedurais ou seqüenciais (código modularizado);

Exemplo: Fortran, Basic, Cobol, C, Pascal, Visual Basic Linguagens orientadas a objetos(computação é a interação

entre objetos); Exemplo: C++, Java

Modelos de Paradigmas

10

Paradigmas de Programação

11

Primeiro paradigma a surgir e ainda é o dominante. Programas centrados no conceito de um estado

(modelado por variáveis) e ações (comandos) que mudam o estado.

Pode incluir subrotinas ou procedimentos como mecanismo de estruturação.

Uma computação significa transformar valores da memória do computador;

Paradigma Sequencial ouProcedural

12

As regras são definidas por passos a serem executados; Declaração explicita de variáveis e alocação de memória; Presença de laços e iteratividade Executar um programa significa executar uma série de

comandos;

Paradigma Sequencial ouProcedural

13

O estado de um programa é mantido nas variáveis do programa; Essas variáveis são associadas a localizações de memória

caracterizadas por um endereço e por um valor armazenado no endereço;

É possível acessar o valor diretamente, lendo o valor da variável; O valor da variável é modificado através de atribuições. Por exemplo, em Pascal: X := 5;

Paradigma Sequencial ouProcedural

14

O termo à esquerda do operador de atribuição (:=) é a variável cujo valor está sendo modificado e à direita está o novo valor;

A variável X tem valores diferentes antes e depois da atribuição;

O significado (efeito) de um programa depende da ordem em que as atribuições são escritas e executadas;

Paradigma Sequencial ouProcedural

15

Paradigma Sequencial ouProcedural

16

Trata a computação como uma avaliação de funções matemáticas;

Função matemática é uma correspondência de membros de um conjunto domínio com o conjunto imagem;

Função retorna elemento do conjunto imagem; Uma função, neste sentido, pode ter ou não ter parâmetros

e um simples valor de retorno. Os parâmetros são os valores de entrada da função e o

valor de retorno é o resultado da função;

Paradigma Funcional

17

Utiliza apenas funções que, dada uma lista de parâmetros, retornam um único valor;

Busca imitar as funções matemáticas no maior grau possível;

Forma das Funções Simples:

Cubo(x) x * x* x, em que x é um número real;

>Cubo(2) = 8

Paradigma Funcional

18

A ordem de avaliação das expressões de mapeamento é controlada por recursão e iteração;

RECURSÃO:

int fatorial(int n){

if (n == 0)

return 1;

else

return ( n * fatorial( n – 1 ) );

}

Paradigma Funcional

19

X := fatorial(4); N=4 -> 4 * fatorial(3) => 4 * 6 = 24 N=3 -> 3 * fatorial(2) => 3 * 2 = 6 N=2 -> 2 * fatorial(1) => 2 * 1 = 2 N=1 -> 1 * fatorial(0) => 1 * 1 = 1 N=0 -> 1

Paradigma Funcional

20

Exemplo: (DEFINE pi 3.14159) (DEFINE dois_pi (* 2 pi)) (DEFINE quadrado_numero (* numero numero)) (DEFINE (fatorial n)

(IF (= n 0)

1

(* n (fatorial ( - n 1) ) )

))

Paradigma Funcional

21

Exemplo: (DEFINE (compare x y)

(COND

(( > x y) (DISPLAY “x é maior que y”))

(( < x y) (DISPLAY “x é menor que y”))

(ELSE (DISPLAY “x e y são iguais”))

Paradigma Funcional

22

Conceito de objetos cooperativos; Mundo é um conjunto de objetos que interagem entre si; Objetos são instâncias de uma classes, possuem um

conjunto de atributos e métodos; Modelam entidades do mundo real; Objetos: Ocorrência específica de uma classe; Ex: carro, pessoa

Paradigma Orientado a Objetos

23

Classe: Conjunto de objetos que apresentam características em comum, possuem os mesmos atributos e as mesmas funcionalidades

Atributo: Conjunto de características específicas de um objeto;

Métodos: característica que permite alterar a funcionalidade de um atributo, são os serviços que o objeto pode prover;

Os objetos devem interagir uns com outros através de um mecanismo de comunicação chamado mensagem;

Paradigma Orientado a Objetos

24

Ex: Objeto: carro Atributos: cor, ano, qtd. portas Métodos: ligar, andar, abastecer

Ex: Objeto: pessoa Atributos: cor da pele, nascimento, estado civil Métodos: estudar, trabalhar, dormir

Paradigma Orientado a Objetos

25

Características: Abstração: habilidade de modelar características do

mundo real do problema que se quer resolver; Encapsulamento: definição de como implementar

atributos e métodos de um classe; todas as transações feitas com um objeto só podem ser realizadas dentro daquele objeto;

Paradigma Orientado a Objetos

26

Características: Um dado só está encapsulado quando só pode ser

visto dentro de um objeto Ex: botões e funções de um DVD Herança: capacidade de uma classe filho herdar um ou

mais atributos e métodos de uma classe pai; permite a reutilização de código;

Paradigma Orientado a Objetos

27

Paradigma Orientado a Objetos

28

Características: Polimorfismo: possuir várias formas, uma classe

possui uma operação e suas sub-classes possuem a mesma operação com outro comportamento;

Paradigma Orientado a Objetos

29

Paradigma Orientado a Objetos

30

Usa a lógica de predicados como linguagem de programação;

Um programa consiste de:

- Uma série de axiomas ou fatos;

- Regras de inferência;

- Teorema a ser provada

Uma computação significa inferir conseqüências lógicas a partir de fatos;

Paradigma Lógico

31

Um processamento consiste em testar uma afirmação ou pergunta feita;

Permite que novos fatos sejam deduzidos a partir de fatos já conhecidos;

Somente as especificações dos resultados desejados são declaradas, ao invés de procedimentos detalhados para produzi-los. Isto é, focaliza-se a forma do resultado e não como ele é computado;

Paradigma Lógico

32

Homem(joao). Mulher(maria). Mulher(cristina) Pai(joao,andre). Pai(luiz,fabio). Mae(mara, luiza).

Paradigma Lógico

?-homem(luiz)Não?-homem(joao)Sim?-pai(joao, carlos)Não?-mulher(x)X=mariaX=crisitina

33

Estrela (sol). Estrela(sirius). Orbita(mercurio,sol). Orbita(venus,sol). Orbita(terra,sol). Orbita(marte,sol). Orbita(lua, terra). Orbita(deimos, marte). Planeta(B):-orbita(B,sol).

Paradigma Lógico

?-planeta(marte)Sim?-planeta(P)P=mercurioP=venusP=terraP=marte

top related