Paradigmas de Programação

Slides:



Advertisements
Apresentações semelhantes
01/08/2011 Professor Leomir J. Borba- –
Advertisements

3 Paradigmas e Linguagens de Programação
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
Engenharia de Software
Paradigmas de Programação
Linguagens de Programação
Software Básico Silvio Fernandes
Metodologia Científica e Tecnológica
11. Gerenciamento de riscos do projeto
Introdução a Informática
April 05 Prof. Ismael H. F. Santos - 1 Módulo II XML Processing: XSLT, SAX e DOM Prof. Ismael H F Santos.
INTRODUÇÃO À PROGRAMAÇÃO
Introdução ao paradigma de programação: Orientado a Objetos
Curso Sistemas de Informação I Disciplina: Arquitetura de Software
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
Luiz A. M. Palazzo Pelotas, maio de 2010
Paradigmas da Programação – Semestre 1 - Aula 1
Programação orientada a objetos com Java
Aula 3 Evolução da Principais Linguagens
Aula 2 Aspectos Preliminares
Aula 8 Orientação à Objetos
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
Aula 10 Manipulação de Exceções
1 MAC 413/5715 – Seminário Prof. Fabio Kon Self: The Power of Simplicity David Ungar and Randall B. Smith OOPSLA 1987 Cristina Fang Eduardo Miyoshi Kasa.
Laboratório de Programação de Computadores I
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Classes e objetos Modelagem
Introdução a Programação Orientada a Objetos
Paradigmas de Linguagens de Programação Introdução Professor: Armando Hage Belém-2008.
Universidade do Vale do Rio dos Sinos
TÉCNICAS DE PROGRAMAÇÃO II
DIAGRAMA DE COMPONENTES
Desenvolvimento de Projetos e Aplicações Web
Object Oriented Software Construction (MEYER, Bertrand)
Universidade São Marcos Curso: Gestão de Negócios Internacionais
Linguagens Orientadas a Objeto
Flávio Melo Gabriel Fornari
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
. Smalltalk HISTÓRICO . Década de 60 – POO . Dynabook (Alan Kay)
Programação Orientada à Objetos
Caracterização e Objetivos das LP
PROGRAMAÇÃO ESTRUTURADA (MODULARIZAÇÃO/SUBPROGRAMAÇÃO)
Arquitetura de computadores
Avaliação da Linguagem de Programação
Sintaxe e Semântica Prof.: Gláucya Carreiro Boechat
Estudo dos Conceitos e Paradigmas de Programação
Tipos Abstratos de Dados
Paradigmas de Linguagens de Programação
Paradigmas de Linguagens de Programação Linguagem Imperativa 2
Expressões e Instrução de Atribuição
Projeto de Banco de Dados
Paradigmas de Programação - prof Gláucya Carreiro Boechat1 Elaborando um Programa Prof.: Gláucya Carreiro Boechat Universidade.
02/08/2011 Professor Leomir J. Borba- –
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Paradigma funcional.
Paradigmas de Linguagens de Programação Aula 2
Introdução a Linguagens de Programação
Paradigmas de Linguagens de Programação
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Abr-17 Atividades, Artefatos e Responsáveis da Disciplina de Análise e Projeto Fluxo de análise e projeto.
INTRODUÇÃO À PROGRAMAÇÃO EM LÓGICA Profa. Joseluce de Farias Cunha
Aula 1 – Profª Danielle Costa
Linguagens de Programação Introdução Prof. Renato Melo.
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros
Evolução das Principais Linguagens de Programação
Paradigmas de Programação
Módulo II Capítulo 1: Orientação a Objetos
Módulo I – Softwares: Linguagens de Programação Prof.: Rogério Morais.
Transcrição da apresentação:

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 glaucyacboechat@gmail.com Paradigmas de Programação - prof Gláucya Carreiro Boechat

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Um breve histórico Imperativo Funcional Lógico Orientado a objetos Smalltalk C PROLOG 1980....................Ada...........DBASE-II.................................................. 1990.....................................................................Haskell..........Godel... 1950........................................................................................................ FORTRAN 1960.......................ALGOL-60...........COBOL......LISP......................... SIMULA ALGOL-68 PL/I BASIC 1970..................Pascal............................................................................ Modula-2 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

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