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

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

Paradigmas de Programação - prof Gláucya Carreiro Boechat1 Paradigmas de Programação Prof.: Gláucya Carreiro Boechat Universidade.

Apresentações semelhantes


Apresentação em tema: "Paradigmas de Programação - prof Gláucya Carreiro Boechat1 Paradigmas de Programação Prof.: Gláucya Carreiro Boechat Universidade."— Transcrição da apresentação:

1 Paradigmas de Programação - prof Gláucya Carreiro Boechat1 Paradigmas de Programação Prof.: Gláucya Carreiro Boechat Universidade Federal Rural de Pernambuco Departamento de Estatística e Informática

2 Paradigmas de Programação - prof Gláucya Carreiro Boechat 2 Objetivos Fornecer ao aluno os conceitos fundamentais sobre linguagens de programação, permitindo-o ter parâmetros para selecionar entre as diversas linguagens de programação qual a mais adequada à sua necessidade

3 Paradigmas de Programação - prof Gláucya Carreiro Boechat 3 Paradigma Etimologia: A palavra paradigma tem origem:  Na palavra grega παράδειγμα (paradeigma) que significa “padrão” ou “exemplo”  Na palavra grega παραδεικνύναι (paradeiknunai) que significa “demonstrar”. Fonte: “http://en.wikipedia.org/wiki/Paradigm”

4 Paradigmas de Programação - prof Gláucya Carreiro Boechat 4 Paradigma de programação Um paradigma de programação é um estilo paradigmático de programar Um paradigma de programação (e determina) a visão que o programador tem da execução de um programa Exemplos  Orientada a objetos  Funcional

5 Paradigmas de Programação - prof Gláucya Carreiro Boechat 5 O que caracteriza uma Linguagem de Programação? Gramática e significado bem definidos Implementável (executável) com eficiência ‘‘aceitável’’ Universal  Qualquer problema deve conseguir ser expresso Natural para expressar problemas  Aplicável ao domínio da linguagem

6 Paradigmas de Programação - prof Gláucya Carreiro Boechat 6 Aspectos do estudo de linguagens Sintaxe  Gramática (forma) Semântica  Significado Pragmática  Metodologias Processadores/Ferramentas  Compiladores, interpretadores, editores, ambientes visuais,...

7 Paradigmas de Programação - prof Gláucya Carreiro Boechat 7 Por que tantas linguagens? Propósitos diferentes Avanços tecnológicos Interesses comercias Cultura e background científico

8 Paradigmas de Programação - prof Gláucya Carreiro Boechat 8 O que é um paradigma de programação? Modelo, padrão ou estilo de programação suportado por linguagens que agrupam certas características comuns A classificação de linguagens em paradigmas é uma conseqüência de decisões de projeto que impactam radicalmente a forma na qual uma aplicação real é modelada do ponto de vista computacional

9 Paradigmas de Programação - prof Gláucya Carreiro Boechat 9 O Paradigma Imperativo Programas centrados no conceito de um estado (modelado por variáveis) e ações (comandos) que manipulam o estado Também conhecido como paradigma procedural  Inclui subrotinas ou procedimentos como mecanismo de estruturação Primeiro paradigma a surgir  Ainda é muito utilizado

10 Paradigmas de Programação - prof Gláucya Carreiro Boechat 10 Modelo Computacional do Paradigma Imperativo Entrada Programa Saída Estado

11 Paradigmas de Programação - prof Gláucya Carreiro Boechat 11 O Paradigma Imperativo Vantagens  Eficiência  Modelagem “natural” de aplicações do mundo real  Paradigma dominante e bem estabelecido Desvantagens  Relacionamento indireto entre E/S Difícil legibilidade Erros introduzidos durante manutenção Descrições demasiadamente operacionais focalizam o “como” e não “o que”

12 Paradigmas de Programação - prof Gláucya Carreiro Boechat 12 O Paradigma Orientado a Objetos Não é um paradigma no sentido estrito  Subclassificacão do imperativo Modificação na metodologia de concepção e modelagem do sistema  A grosso modo, uma aplicação é estruturada em módulos (classes) que agrupam um estado (variáveis) e operações (métodos) Classes podem ser estendidas e/ou usadas como tipos (objetos)

13 Paradigmas de Programação - prof Gláucya Carreiro Boechat 13 Modelo Computacional do Paradigma Orientado a Objetos Entrada Programa Saída Estado Estado Entrada Programa Saída Estado Entrada Programa Saída Estado Entrada Programa Saída Estado Entrada Programa Saída

14 Paradigmas de Programação - prof Gláucya Carreiro Boechat 14 Vantagens  Todas as do estilo imperativo  Classes estimulam projeto centrado em dados: modularidade, reusabilidade e extensibilidade  Aceitação comercial crescente Desvantagens  Semelhantes aos do paradigma imperativo, mas amenizadas pelas facilidades de estruturação O Paradigma Orientado a Objetos

15 Paradigmas de Programação - prof Gláucya Carreiro Boechat 15 O Paradigma Orientado a Aspectos Não é um paradigma no sentido estrito  Sempre acoplado a um outro paradigma Nova técnica de modularização:  Para “requisitos” que afetam várias partes de uma aplicação  Aplicação é estruturada em módulos (aspectos) que agrupam pontos de interceptação de código (pointcuts) que afetam outros módulos (classes) ou outros aspectos, definindo novo comportamento (advice)  Para linguagens OO, aspectos podem ser estendidos e/ou usados como tipos

16 Paradigmas de Programação - prof Gláucya Carreiro Boechat 16 Modelo Computacional do Paradigma Orientado a Aspectos Entrada Programa Saída Estado Estado Entrada Programa Saída Estado Entrada Programa Saída Estado Entrada Programa Saída Estado Entrada Programa Saída Aspecto

17 Paradigmas de Programação - prof Gláucya Carreiro Boechat 17 O Paradigma Orientado a Aspectos Vantagens  Todas as do paradigma base  Modularização de conceitos que o paradigma base não consegue Em especial, aqueles ligados a requisitos não funcionais  Aumenta a extensibilidade e o reuso Desvantagens  Semelhantes aos do paradigma base  Ainda é preciso diminuir a relação entre o módulo afetado e aspectos  Problemas de conflito entre aspectos que afetam o mesmo módulo

18 Paradigmas de Programação - prof Gláucya Carreiro Boechat 18 O Paradigma Funcional Programas são funções que descrevem uma relação explícita e precisa entre E/S 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 sob demanda Aplicação: prototipação em geral e IA

19 Paradigmas de Programação - prof Gláucya Carreiro Boechat 19 Modelo Computacional do Paradigma Funcional Entrada Programa Saída

20 Paradigmas de Programação - prof Gláucya Carreiro Boechat 20 Paradigma Funcional Vantagens  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

21 Paradigmas de Programação - prof Gláucya Carreiro Boechat 21 O Paradigma Lógico Programas 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: prototipação em geral, sistemas especialistas, banco de dados,...

22 Paradigmas de Programação - prof Gláucya Carreiro Boechat 22 Modelo Computacional do Paradigma Lógico Entrada Programa Saída

23 Paradigmas de Programação - prof Gláucya Carreiro Boechat 23 Visão Crítica do Paradigma Lógico Vantagens Em princípio, todas do paradigma funcional Permite concepção da aplicação em um alto nível de abstração (através de associações entre E/S) Problemas Em princípio, todos do paradigma funcional Linguagens usualmente não possuem tipos, nem são de alta ordem

24 Paradigmas de Programação - prof Gláucya Carreiro Boechat 24 Um breve histórico Smalltalk C PROLOG Ada DBASE-II Haskell Godel FORTRAN ALGOL COBOL......LISP SIMULA ALGOL-68 PL/I BASIC Pascal Modula-2 ML Miranda Eifell C++ Delphi Java C# Imperativo FuncionalLógicoOrientado a objetos Erlang F#

25 Paradigmas de Programação - prof Gláucya Carreiro Boechat 25 Bibliografia 1. Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, Sebesta, Robert W. Concepts of Programming Languages. Addison Wesley, Watt, David A. Programming Language Design Concepts. John Wiley, Toscani, Simão e Price, Ana Maria de Alencar. Implementação de Linguagens de Programação. Sagra-Luzzatto, Melo, Ana Cristina Vieira de e Silva, Flávio Soares Correa da. Princípios de Linguagens de Programação


Carregar ppt "Paradigmas de Programação - prof Gláucya Carreiro Boechat1 Paradigmas de Programação Prof.: Gláucya Carreiro Boechat Universidade."

Apresentações semelhantes


Anúncios Google