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

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

Paradigmas de Programação

Apresentações semelhantes


Apresentação em tema: "Paradigmas de Programação"— Transcrição da apresentação:

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

2 Paradigmas de Programação - prof Gláucya Carreiro Boechat
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 Paradigmas de Programação prof Gláucya Carreiro Boechat

3 Paradigmas de Programação - prof Gláucya Carreiro Boechat
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” 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 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 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, ... 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 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 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 Paradigmas de Programação prof Gláucya Carreiro Boechat

10 Modelo Computacional do Paradigma Imperativo
Entrada Programa Saída Estado 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” O paradigma imperativo tem sevido de base para outros: oo e concorrente 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) 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 . . . Paradigmas de Programação prof Gláucya Carreiro Boechat

14 O Paradigma Orientado a Objetos
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 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 Paradigmas de Programação prof Gláucya Carreiro Boechat

16 Modelo Computacional do Paradigma Orientado a Aspectos
Entrada Programa Saída Estado Aspecto Estado Entrada Programa Saída ... Estado Entrada Programa Saída Estado Entrada Programa Saída Estado Entrada Programa Saída . . . 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 Paradigmas de Programação prof Gláucya Carreiro Boechat

18 Paradigmas de Programação - prof Gláucya Carreiro Boechat
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 Paradigmas de Programação prof Gláucya Carreiro Boechat

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

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

21 Paradigmas de Programação - prof Gláucya Carreiro Boechat
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, ... Paradigmas de Programação prof Gláucya Carreiro Boechat

22 Modelo Computacional do Paradigma Lógico
Entrada Programa Saída 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 Paradigmas de Programação prof Gláucya Carreiro Boechat

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

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


Carregar ppt "Paradigmas de Programação"

Apresentações semelhantes


Anúncios Google