A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Curso Sistemas de Informação Disciplina: Arquitetura de Software

Apresentações semelhantes


Apresentação em tema: "Curso Sistemas de Informação Disciplina: Arquitetura de Software"— Transcrição da apresentação:

1 Curso Sistemas de Informação Disciplina: Arquitetura de Software
Paradigmas de Programação

2 Paradigmas de Programação
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;

3 Paradigmas de Programação
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;

4 Paradigmas de Programação
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;

5 Paradigmas de Programação

6 Modelos de Paradigmas 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;

7 Modelos de Paradigmas 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

8 Modelos de Paradigmas 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;

9 Modelos de Paradigmas 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

10 Paradigmas de Programação

11 Paradigma Sequencial ou Procedural
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;

12 Paradigma Sequencial ou Procedural
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;

13 Paradigma Sequencial ou Procedural
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;

14 Paradigma Sequencial ou Procedural
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;

15 Paradigma Sequencial ou
Procedural

16 Paradigma Funcional 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;

17 Paradigma Funcional 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

18 Paradigma Funcional 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 ) ); }

19 Paradigma Funcional 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

20 Paradigma Funcional 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) ) ) ))

21 Paradigma Funcional 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”))

22 Paradigma Orientado a Objetos
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

23 Paradigma Orientado a Objetos
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;

24 Paradigma Orientado a Objetos
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

25 Paradigma Orientado a Objetos
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;

26 Paradigma Orientado a Objetos
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;

27 Paradigma Orientado a Objetos

28 Paradigma Orientado a Objetos
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;

29 Paradigma Orientado a Objetos

30 Paradigma Lógico 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;

31 Paradigma Lógico 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;

32 Paradigma Lógico Homem(joao). Mulher(maria). Mulher(cristina)
Pai(joao,andre). Pai(luiz,fabio). Mae(mara, luiza). ?-homem(luiz) Não ?-homem(joao) Sim ?-pai(joao, carlos) ?-mulher(x) X=maria X=crisitina

33 Paradigma Lógico 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). ?-planeta(marte) Sim ?-planeta(P) P=mercurio P=venus P=terra P=marte


Carregar ppt "Curso Sistemas de Informação Disciplina: Arquitetura de Software"

Apresentações semelhantes


Anúncios Google