Paradigmas de Programação
|
|
- Gilberto Neto Cordeiro
- 6 Há anos
- Visualizações:
Transcrição
1 Paradigmas de Programação Programação Orientada a Objetos Java Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior
2 Linguagem de Programação Linguagem destinada a ser usada por um ser humano para expressar um processo através do qual um computador pode resolver um problema processo Solução 2
3 Para que estudar linguagens? Desenvolvimento da habilidade em resolver problemas. Capacidade de extrair o máximo da funcionalidade e eficiência da LP. Escolha da LP apropriada de cada problema para a solução Facilidade para aprender outras linguagens. 3
4 O que Estudar? Sintaxe: gramática (forma) Semântica: significado Pragmática (ex.: metodologias) Processadores: compiladores, interpretadores, editores, ambientes visuais... 4
5 Histórico das LP FORTRAN (FORmula TRANslation)-1956-John Backus muito utilizada no meio técnico-científico disponibilidade de uma vasta biblioteca Contribuições: variáveis; comando de atribuição; conceito de tipos; modularidade (com o uso de subprogramas); E/S formatadas ; 5
6 Histórico das LP COBOL (COmmon Business Oriented Language) Código é "English-like" Padrão para as aplicações comerciais (até pouco tempo) Excelente para a manipulação de arquivos. Contribuições: código mais legível; estrutura de dados heterogênea (record). 6
7 Histórico das LP ALGOL 60 (ALGorithmic Oriented Language) Linguagem algébrica européia resolução de problemas científicos. Influência marcante Pouco usada em aplicações comerciais Contribuições: estrutura de blocos; comandos de controle estruturados; recursividade. 7
8 Histórico das LP LISP (LISt Processing) John McCartly(MIT) Linguagem funcional criada para dar suporte à pesquisa em Inteligência Artificial. Contribuição: pioneirismo na idéia de computação simbólica ou não-numérica. BASIC (Beginners All-purpose Symbolic Instruction Code) John Kemeny-Thomas Kurtz (Dartmouth College) Contribuições para futuras linguagens: ambiente de programação interativo; conceito de execução interpretativa de programas. 8
9 Histórico das LP PL/I (Programming Language I) -IBM Incorporou: ALGOL 60- estrutura de bloco, de controle e recursividade FORTRAN - subprogramas e E/S formatadas; COBOL - manipulação de arquivos e registros do LISP - alocação dinâmica e estruturas encadeadas linguagem complexa Contribuições: tratamento de interrupção suporte a multitarefa 9
10 Histórico das LP 10 SIMULA 67 destinada a sistemas e programação de simulações. Contribuição: conceito de classe PASCAL - Niklaus Wirth(1969) linguagem de fácil aprendizado e implementação; suporta programação estruturada; adequada para o ensino de programação; Influenciou quase todas posteriores Contribuições: Estruturas de controle flexíveis; tipos definidos pelo usuário; manipulação de arquivos; estruturas de dados heterogêneas e conjuntos.
11 Histórico das LP PROLOG (PROgramming in LOGic) desenvolvida para aplicações de IA Artificial baseada em lógica formal SMALL TALK - Alan Kay -Xerox - Palo Alto Ambiente de programação com menus pop-up, windows e mouse. Modelo OO: conceito de classe, encapsulamento, herança e instanciação. Contribuições: - 1ª a utilizar o paradigma de programação interativa; - Conceito de LP extensível; 11
12 Histórico das LP C - Bell Lab - início dos anos 70 implementação do UNIX. facilidades para a programação em "baixo nível" gera código compacto e eficiente Alta portabilidade MODULA 2 - Niklaus Wirth - final 70's 12 linguagem de propósito geral, baseada em melhorias no Pascal. Acrescentou: - possibilidade de implementar TAD; - existência de uma palavra-chave de terminação para toda estrutura de controle; - co-rotinas - execução intercalada; e tipos de procedimentos;
13 Por que tantas linguagens? Propósitos diferentes Avanços tecnológicos Interesses comerciais Cultura e background científico 13
14 Escolha de uma LP Implementação Competência na LP Portabilidade Sintaxe Semântica Ambiente de programação Modelo de computação- 14
15 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 15
16 Paradigmas de LP Paradigma Imperativo - Computador FORTRAN, COBOL, ALGOL 60, APL, BASIC, PL/I, SIMULA 67, ALGOL 68, PASCAL, C, MODULA 2, ADA. Paradigma Funcional - solução do problema LISP. Paradigma Lógico - ser humano PROLOG. Paradigma Orientado a Objetos - problema SMALTALK, Java C++ : Linguagem híbrida Modelo Imperativo + Orientação a Objetos 16
17 O Paradigma Imperativo Solução do problema especificada na ótica do computador Programas centrados no conceito de um estado (modelado por variáveis) e ações (comandos) que manipulam o estado Paradigma também denominado de procedural, por incluir subrotinas ou procedimentos como mecanismo de estruturação Primeiro paradigma a surgir e ainda é o dominante 17
18 Vantagens e Desvantagens - Imperativo Vantagens - Eficiência (embute modelo de Von Neumann) - Modelagem natural de aplicações do mundo real - Paradigma dominante e bem estabelecido Desvantagens - erros introduzidos durante manutenção - descrições demasiadamente operacionais focalizam o como e não o que 18
19 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 Aplicação: prototipação em geral e IA 19
20 Vantagens e Desvantagens - Funcional Vantagens - Manipulação de programas mais simples: - Prova de propriedades - Transformação (exemplo: otimização) - Concorrência explorada de forma natural 20 Desvantagens - O mundo não é funcional! - Implementações ineficientes - Mecanismos primitivos de E/S e formatação
21 Exemplo LP Funcional - Scheme Função que Calcula o Máximo de uma lista (define maximo ) (lambda (l) (if (null? (cdr l)) ; ultimo/unico elemento? (car l) (max (car l) (maximo (cdr l)) ) ) ) 21
22 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: sistemas especialistas e banco de dados 22
23 Vantagens e Desvantagens - 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 23
24 Exemplo Lp Lógico - Prolog Verifica se uma palavra é palíndroma. Exemplo de utilização: inicio(madam). % entrada e saida de dados inicio(x) :- ler(x), (X = para; teste(x), inicio(y)). teste(x) :- nome(x,n), palindromo(n), write(x), write(` e' palindroma'), nl,!. teste(x) :- write(x), write(` nao e' palindroma'), nl. % inversao e teste palindromo(x) :- inverte2(x,x). inverte2(l1,l) :- invconc(l1,[ ],L). invconc([h L],L,M) :- invconc(t,[h L],M). invconc([ ], L, L). 24
25 O Paradigma Orientado a Objetos Pode ser visto como uma subclassificacão do imperativo A diferença é mais de metodologia quanto à concepção e modelagem do sistema A grosso modo, uma aplicação é estruturada em módulos (classes) que agrupam um estado e operações (métodos) sobre este estado Classes podem ser estendidas e/ou usadas como tipos (cujos elementos são objetos) 25
26 Vantagens e Desvantagens - OO Vantagens Todas as do estilo imperativo Classes estimulam projeto centrado em dados: modularidade, reusabilidade e extensibilidade Aceitação comercial crescente Desvantagens Semelhantes às do paradigma imperativo, mas amenizadas pelas facilidades de estruturação 26
27 Tendência: integração de paradigmas A principal vantagem é combinar facilidades de mais de um paradigma, aumentando o domínio de aplicação da linguagem Exemplos: linguagens lógicas ou funcionais com o conceito de estado e comandos A integração deve ser conduzida com muita cautela, para que não se viole os princípios básicos de cada paradigma. 27
28 Outras Classificações Linguagens de 1a., 2a., 3a., 4a. e 5a. gerações Programação seqüencial versus concorrente Programação Linear versus orientada a eventos 28
29 29 Uma Visão histórica FORTRAN ALGOL-60...COBOL...LISP... SIMULA ALGOL-68 PL/I BASIC Pascal... Smalltalk C PROLOG Modula-2 ML Ada...DBASE-II... Eifell C++ Miranda Java Delphi Haskell...Godel... Orientado a objetos Imperativo Funcional Lógico
30 Paradigma de Orientação a Objetos
31 Paradigma de OO 1ª noção de objeto - Simula (Birtwistle, 1973) POO programador visualiza programa como uma coleção de objetos cooperantes que se comunicam através de mensagens. Cada objeto é uma instância de uma classe As classes estão organizadas em hieraquia Unifica dados e procedimentos Dá ênfase à estrutura de dados, adicionando funcionalidade a estas estruturas. Aspectos fundamentais: Abstração de dados; Objetos; Mensagens; Classes; Herança; Polimorfismo. 31
32 Abstração de dados Tipo Abstrato de Dados (TAD) o que constitui o tipo as operações aplicáveis representação Exemplo: TAD Pilha. Interface: boolean isempty() - verifica se a pilha está vazia push(int n) - empilha o número fornecido int pop() - desempilha o número do topo e o retorna int top() - retorna o número do topo Representação: vetor 32
33 Abstração de dados TAD pode ser usado sem qualquer conhecimento sobre sua implementação. Vantagens: Independência entre uso e implementação Manutenção da integridade do TAD Abstração de dados: introduz um novo tipo de objeto, útil no domínio do problema a ser resolvido. usuários dos tipos abstratos de dados tem comportamento do objeto dados estão ocultos aumento de confiabilidade 33
34 Abstração - Exemplo Plantação de alface hidropônico Sistema para monitorar as condições Elemento central: sensores para medir: temperatura, ph, luz,.. sensor: objeto que mede a temp. em uma posição identificação do sensor responsabilidades: o conhecer a temperatura na sua posição de medida o relatar a temp. medida. Operações: o perguntar a temperatura o Calibrar o sensor 34
35 Abstração - Exemplo Elemento SensorTemp Parte Públicas: SensorTemp(pos) - cria o sensor ~SensorTemp() - destroi o sensor Calibra( tempatual) - calibra o sensor real QualTemp() - devolve a temp. atual no sensor Parte Privada... 35
36 Objetos Entidade autônoma que combina a representação da informação (estruturas de dados) e sua manipulação (procedimentos) Compostos de: - Propriedades(atributos) - Comportamento (Métodos) - Identidade INTERFACE { OPERAÇÃO 1 OPERAÇÃO 2 ESTADO INTERNO OPERAÇÃO 3 IMPLEMENTAÇÕES DAS OPERAÇÕES 1, 2 E 3 36
37 Objetos Fácil identificar objetos Exemplo: Objetos do tipo empregado identidade única: CPF. Atributos: endereço idade dependentes salário cargo Comportamento (Operações): aumentar salário listar dependentes alterar cargo AUMENTAR SALÁRIO LISTAR DEPENDENTES NOME CARGO SALÁRIO 37
38 Objetos Vantagens: Modularidade: a unidade de programa que implementa um objeto pode ser escrita e mantida sem gerar alterações nas demais; Ocultamento de informação: Objeto possui interface pública que outros objetos usam para se comunicar com ele. Objeto mantêm informações e métodos particulares, que podem ser alterados a qualquer momento sem afetar os outros objetos que se comunicam com ele Não é necessário saber como o objeto é implementado para poder utilizá-lo. 38
39 Mensagens Aplicação OO: vários objetos interagindo fornece grande funcionalidade e comportamentos complexos. Interação através de mensagens objeto A envia mensagem para objeto B executar um de seus métodos informação adicional para B executar o métodos: lista de parâmetros Componentes: - o objeto a quem a mensagem é endereçada (receptor); o nome do método que se deseja executar; os parâmetros (se existirem) necessários ao método; Objetos em processos ou máquinas distintas podem comunicar-se através do uso de mensagens(corba, DCOm, etc.). Mensagem ~ uma chamada de subrotina (procedimento ou função). 39
40 Troca de Mensagens - Exemplo 1 "João deseja enviar flores para Maria mas ela mora em outra cidade. João vai, então, até a floricultura e pede a José, o floricultor, para que ele envie um bouquet de rosas ao endereço de Maria. José, por sua vez, liga para uma outra floricultura, da cidade de Maria, e pede para que as flores sejam entregues. João precisa resolver um problema, então, ele procura um agente, José, e lhe passa uma mensagem contendo sua requisição: enviar rosas para Maria. José tem a responsabilidade de, através de algum método, cumprir a requisição. O método utilizado por José pode estar oculto de João." 40
41 Troca de Mensagens - Exemplo 2 Realização de uma operação aritmética (SmallTalk) Adição é realizada enviando uma mensagem a um objeto representando o número. A mensagem especifica a operação desejada (adição) e o número que deve ser somado ao objeto receptor. Então, a operação x + y é interpretada como a mensagem + sendo enviada ao objeto x com o parâmetro y. 41
42 Método implementa algum aspecto do comportamento do objeto. uma função ou procedimento que é definido para o objeto e tipicamente pode acessar o seu estado interno para realizar alguma operação. procedimento cujo primeiro parâmetro é o objeto no qual deve trabalhar(objeto receptor) receptor.nome_da_mensagem(par1, par2, par3) 42
43 Construtores e Destrutores Construtores: usados para criar e inicializar objetos novos. Destrutores: usados para destruir objetos construtor chamado automaticamente quando objeto é declarado Exemplo: gerenciar a quantidade de objetos de uma determinada classe que já foram criados até o momento. 43
44 Classes Objetos com estrutura e comportamento idênticos são descritos como pertencendo a uma classe Provê a informação para construir e utilizar objetos de um tipo particular Classes de objetos descrição das propriedades de objetos, de forma concisa em termos de estrutura e comportamento Provê a informação para construir e utilizar objetos de um tipo particular Descreve o comportamento de vários objetos de comportamento semelhante 44
45 Classes Objeto -- variável Classe - tipo Objeto criado a partir de uma classe: instância Cada instância pertence a uma classe Uma classe pode possuir múltiplas instâncias Exemplo: classe Posição Posição Dados: Variável de classe (compartilhada) nobj Variável de Instância (única) X, Y tipo coordenadas Métodos Inicializa a Posição Retorna valor X Retorna valor Y Objeto Posição #1 nobj = 3 X = 5 Y = 10 Objeto Posição #2 nobj = 3 X = 7 Y = 2 Objeto Posição #3 nobj = 3 X = 5 Y = 10 45
46 Herança Permite a reutilização das propriedades de uma classe na definição de outra. característica única de linguagens OO diferencia POO de programação com TAD Classe mais generalizada: superclasse Classe mais especializada: subclasse. Objeto descendente não tem nenhum trabalho para receber a herança 46
47 Herança classe Ponto: herança da classe Posição variável de instância Visivel métodos para desenhar, apagar e perguntar acercar da visibilidade de pontos. classe Circulo: herança da classe Ponto variável de instância Raio métodos para contrair e expandir círculos. Posição Ponto Dados: Variável de classe (compartilhada) nobj Variável de Instância (única) X, Y tipo coordenadas Métodos Inicializa a Posição Retorna valor X Retorna valor Y Dados: Variável de Instância (única) Visivel - lógico Métodos Inicializa Ponto Desenha Ponto Apaga valor Y Retorna Visivel Circulo Dados: Variável de Instância (única) Raio Métodos Inicializa Circulo Expande Circulo Contrai Circulo 47
48 Herança se B é subclasse de A: objetos da classe B suportam todas as operações suportadas por objetos da classe A, menos as redefinidas as variáveis de instância de B incluem todas as variáveis de instância de A. Especialização: nova classe é criada a partir de uma classe existente, que era muito geral. Generalização: processo inverso 48
49 Herança Pode afetar o encapsulamento de informação. Clientes: requisitam operações sobre instâncias da classe informações ocultadas classes definidas através da herança acesso à representação das variáveis de instâncias definidas na sua superclasse Mudanças na implementação de uma classe, podem comprometer a implementação de suas subclasses. 49
50 Herança Múltipla subclasse pode herdar características de diversas superclasses Exemplo: classe Janela DefineAltura DefineLargura MostraObjeto MoveObjeto ExibeTexto AdicionaTexto RemmoveTexto AdicionaFilho RemoveFilho ObjetoTela Texto Arvore Janela 50
51 Polimorfismo Vários objetos respondem à uma mesma mensagem, cada um a seu próprio modo Solução sem polimorfismo Função DesenhaObjeto ( Obj ) Se Obj é do tipo Ponto DesenhaPonto ( Obj) Senão Se Obj é do tipo Circulo DesenhaCirculo (Obj) Fim se Fim se Fim DesenhaObjeto Solução com polimorfismo Função DesenhaObjeto ( Obj ) Obj.Desenha() Fim DesenhaObjeto 51
52 Polimorfismo 52 útil na compreensão de programas sobrecarga de função ou de operadores polimorfismo paramétrico ligação (binding): associação entre um atributo e uma entidade ou entre uma operação e um símbolo. Estática: ocorre em tempo de compilação ou de ligação (linking) e não é mais modificada durante toda a execução do programa. Dinâmica: é feita em tempo de execução ou pode ser alterada no decorrer da execução do programa. Aumenta reutilização - diminui a performance
53 Objeto, Classe e Herança Permitem a definição de hierarquias de abstrações, que facilitam a compreensão classes agrupam objetos com características iguais herança estrutura classes semelhantes. Objetos e classes: grande poder de modelagem expressa relações entre comportamentos: classificação/instanciação generalização/especialização agregação/composição 53
54 Classificação/Instanciação Classificação de objetos em classes definição de propriedades e comportamentos comuns a objetos para agrupá-los em classes Instanciação de objetos de uma classe criação de um objeto de uma determinada classes INSTANCIAÇÃO MICROCOMPUTADOR IBM PC MACHINTOSH CLASSIFICAÇÃO 54
55 Generalização/Especialização Abstração de uma classe mais genérica Subclasses possuem todas as propriedades das classes de quem elas são especializações Pelo menos uma propriedade para diferenciar duas classes especializadas (subclasses) a partir da mesma classe genérica (superclasse) ESPECIALIZAÇÃO COMPUTADOR MICROCOMPUTADOR MAINFRAME GENERALIZAÇÃO 55
56 Composição/Decomposição objetos compostos pela agregação de outros objetos ou componentes instâncias (objetos) de uma classe compostas por instâncias de outras classes. DECOMPOSIÇÃO MICROCOMPUTADOR TECLADO VÍDEO COMPOSIÇÃO 56
57 Vantagens POO Reutilização de código: maior vantagem Escalabilidade: capacidade de crescimento Encapsulamento: facilita manutenção Polimorfismo: aumenta a legibilidade Herança: facilidade de adição de novas funcionalidades 57
58 Desvantagens da POO Apropriação: Problemas com limites nebulosos Fragilidade sensível a mudanças de relacionamentos entre as classes chave Importância fundamental de bom projeto e análise necessidade de estratégia linera de projeto ao invés da cíclica 58
59 Estilo POO Modularidade: Suporte a generalização/especialização Visão balanceada entre dados e processos Composição botton-up de aplicação Atividade incremental e evolutiva Reutilização de código Robustez Programação em grande escala 59
PROGRAMAÇÃO ORIENTADA A OBJETOS I -CONCEITOS PRELIMINARES. Prof. Angelo Augusto Frozza, M.Sc.
PROGRAMAÇÃO ORIENTADA A OBJETOS I -CONCEITOS PRELIMINARES Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO O que é programação Linguagens de Programação Paradigmas de Programação História
Leia maisIntrodução. Parte 01. Desenvolvimento de Programação Orientada a Objetos. Prof. Pedro Neto
Introdução Parte 01 Prof. Pedro Neto Aracaju Sergipe - 2011 Conteúdo 1. Introdução i. Paradigmas de ii. Motivação da OO iii. Desafio das novas tecnologias iv. Ambientes de Desenvolvimento Modernos v. OO
Leia maisVisão Geral... e conceitos básicos
Visão Geral.. e conceitos básicos 1 Curso de... Programação O que se estuda aqui? Algoritmos 2 E o que são algoritmos? Sequência finita e não ambígua de passos para a solução de um problema. Lembre- se
Leia maisHistórico de Linguagens de Programação
Bacharelado em Ciência da Computação PARADIGMAS DE PROGRAMAÇÃO Histórico de Linguagens de Programação Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Objetivos Geral: Estudar as características
Leia maisLinguagens de Programação
Linguagens de Programação Prof a Jerusa Marchi Departamento de Informática e Estatística Universidade Federal de Santa Catarina e-mail: jerusa@inf.ufsc.br Linguagens de Programação p. 1/5 Linguagens de
Leia maisProgramação Orientada a Objetos
Curso Profissional de Gestão e Programação de Sistemas Informáticos Disciplina: Programação e Sistemas de Informação Programação Orientada a Objetos Módulos 9/10/11 POO 2016/2017 História A OO surgiu no
Leia maisConceitos de Linguagens de Programação - Características. Paavo Soeiro
Conceitos de Linguagens de Programação - Características Paavo Soeiro Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o
Leia maisO PARADIGMA ORIENTADO POR OBJETOS
O PARADIGMA ORIENTADO POR OBJETOS A idéia básica do paradigma orientado a objetos é imaginar que programas simulam o mundo real: um mundo povoado de objetos. Dessa maneira, linguagens baseadas nos conceitos
Leia maisParadigmas de Programação
Paradigmas de Programação Aula 3 Histórico das Linguagens Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Definição Linguagens de programação são usadas para descrever
Leia maisParadigmas de Linguagens
Paradigmas de Linguagens Paradigma Imperativo Professora Sheila Cáceres Paradigma Imperativo Um pouco de historia Paradigma fundamentado no conceito de máquina de Turing. A máquina de Turing é uma abstração
Leia maisParadigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto
Suporte para Programação Orientada a Objeto Cristiano Lehrer Categoria das Linguagens que Suportam POO Suporte a POO acrescentado a uma linguagem já existente: C++ (também suporta programação procedural
Leia maisRevisão: linguagens de programação
Revisão: linguagens de programação Definição, histórico, paradigmas e semântica Prof. Thiago A. S. Pardo taspardo@icmc.usp.br Definição Uma linguagem de programação é uma linguagem destinada a ser usada
Leia maisAspectos preliminares
Aspectos preliminares Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. http://github.com/malbarbo/na-lp-copl
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
Programação Orientada a Objetos 1.1 - Perspectiva histórica: Conceitos A evolução das linguagens de programação tem-se feito na procura de ferramentas: -cada vez mais próximas da percepção humana - e que
Leia maisCapítulo 1. Aspectos Preliminares
Capítulo 1 Aspectos Preliminares Tópicos do Capítulo 1 Razões para estudar conceitos de linguagens de programação Domínios de programação Critérios de avaliação de linguagens Influências no projeto de
Leia maisParadigmas de Linguagens de Programação. Tipos de Dados Abstratos
Tipos de Dados Abstratos Cristiano Lehrer Conceito de Abstração O conceito de abstração é fundamental em programação. Quase todas as linguagens suportam abstração de processos, através de subprogramas:
Leia maisIntrodução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Aula 03 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação Linguagens de Programação A primeira linguagem de programação foi criada por Ada Lovelace. Amiga
Leia maisClasses e Objetos. Sintaxe de classe em Java
Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados
Leia maisIntrodução à Orientação a Objetos
Introdução à Orientação a Objetos Paradigmas de programação Objetos Classes Paradigma não é só uma palavra bonita! Lógico - tudo é assertiva lógica: Prolog, Mercury; Funcional tudo são listas e funções:
Leia maisReinaldo Gomes Análise/projeto estruturado
Programação Orientada a Objetos Objetos, Classes e Mensagens O Modelo de Objetos Objetos e Classes Mensagens e métodos Reinaldo Gomes reinaldo@cefet-al.br Decomposição Análise/projeto estruturado Soluciona
Leia maisLinguagens de Programação. Introdução. Carlos Bazilio
Linguagens de Programação Introdução Carlos Bazilio carlosbazilio@id.uff.br http://www.ic.uff.br/~bazilio/cursos/lp ??? Pascal aux := 0 for i:=1 to 10 do aux := aux + i 10: i = 1 20: if i > 10 goto 60
Leia maisInformática I. Aula 9. Aula 9-17/05/2006 1
Informática I Aula 9 http://www.ic.uff.br/~bianca/informatica1/ Aula 9-17/05/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação
Leia mais2. Introdução à Programação e Análise. Orientada a Objetos
Programação Orientada a Objetos em C++ Renato Cardoso Mesquita Departamento de Eng. Elétrica da UFMG renato@cpdee.ufmg.br 2. Introdução à Programação e Análise.......... Orientada a Objetos 2.1. Introdução
Leia maisConceitos de Programação Orientada por Objectos. Rui Camacho Programação 2
Conceitos de Programação Orientada por Objectos Um Problema Problema: Existem, hoje em dia, aplicações complexas e de grande dimensão que é preciso desenvolver e manter de modo eficiente utilizando equipas
Leia maisNomes, vinculações e escopos
Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisFIC-POO. Aula 1.1 Apresentação do Curso e Introdução aos Paradigmas de Programação. Prof. Dr. Bruno Moreno
FIC-POO Aula 1.1 Apresentação do Curso e Introdução aos Paradigmas de Programação Prof. Dr. Bruno Moreno bruno.moreno@ifrn.edu.br Apresentação Professor Bruno Neiva Moreno E-mail institucional: bruno.moreno@ifrn.edu.br
Leia maisModelo do Mundo Real. Abstração. Interpretação
Modelo do Mundo Real Mundo Real Abstração Interpretação Sistema de Software Modelo Algoritmo Abstração: O modelo precisa capturar apenas as características do mundo real que são importantes para o sistema
Leia maisInformática I. Aula Aula 18-29/10/2007 1
Informática I Aula 18 http://www.ic.uff.br/~bianca/informatica1/ Aula 18-29/10/2007 1 Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript
Leia maisNomes, vinculações e escopos
Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisLinguagens de Programação Funcional
Linguagens de Programação Funcional Conceitos de Linguagens de Programação Pedro Libório Setembro de 2013 2 Roteiro Introdução Funções matemáticas Fundamentos das linguagens de programação funcionais A
Leia maisInformática I. Aula 9. Aula 9-27/09/2006 1
Informática I Aula 9 http://www.ic.uff.br/~bianca/informatica1/ Aula 9-27/09/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação
Leia maisParadigmas de Linguagens Computacionais (PLC) (Apresentação da disciplina)
Paradigmas de Linguagens Computacionais (PLC) (Apresentação da disciplina) George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Informações Básicas Professor George Darmiton da Cunha Cavalcanti Monitores
Leia mais3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Linguagem de programação C 3.1. Conceitos
Leia maisORIENTAÇÃO A OBJETOS
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DA PARAÍBA DIRETORIA DE ENSINO COORDENAÇÃO DE INFORMÁTICA INTRODUÇÃO AO PARADIGMA DE ORIENTAÇÃO A OBJETOS MENSAGEM OBJETO B OBJETO A AUTOR: PROF. CARLOS ALBERTO KAMIENSKI
Leia maisLinguagens de Programação
Visão Geral Faculdade de Computação - UFU Agosto - 2009 1 Princípios 2 O que é uma linguagem de programação? Linguagens naturais facilitam a expressão e o intercâmbio de idéias entre as pessoas. Assim
Leia maisCapítulo 5. Nomes, Vinculações e Escopos
Capítulo 5 Nomes, Vinculações e Escopos Tópicos do Capítulo 5 Introdução Nomes Variáveis O conceito de vinculação Escopo Escopo e tempo de vida Ambientes de referenciamento Constantes nomeadas Introdução
Leia maisParadigmas. Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I
Paradigmas Paradigmas Tradicional Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I Paradigmas Tradicional Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I OO Simula-67, Smalltalk, C++, Eiffel, Object Pascal,
Leia maisO código fonte (source code) é o conjunto de palavras escritas de forma ordenada, contendo instruções em uma determinada linguagem de programação.
Uma linguagem de programação é um método padronizado para expressar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um conjunto de procedimentos (programa)
Leia maisLinguagens Computacionais (Conceitos Básicos)
Linguagens Computacionais (Conceitos Básicos) George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Tópicos Razões para estudar os conceitos de linguagens de programação Domínios de programação Critérios
Leia maisParadigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
Leia maisParadigmas de análise e desenvolvimento de sistemas. Principais Paradigmas
Paradigmas de análise e desenvolvimento de sistemas Principais Paradigmas Rosemary Silveira Filgueiras Melo rosesfmelo@hotmail.com rosefib.webnode.com.br Tópicos abordados Conceito de Paradigma Tipos de
Leia maisParadigmas de Programação
Paradigmas de Programação Aula 6 Nomes, Vinculações, Verificação de Tipos e Escopos Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Introdução As linguagens de
Leia maisOrientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental
Orientação a Objetos (OO) LPG II - Java Orientação a Objetos (OO) Roberto Vedoato vedoato@joinville.udesc.br Programação Procedimental x Orientada a Objetos Objetivos e Benefícios da Orientação a Objetos
Leia maisSEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS
SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Prof. Dr. Daniel Caetano 2014-1 DISCUSSÃO Visão Geral dos Paradigmas Quais os paradigmas mais comuns? Do que é composto um programa
Leia maisCONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO
CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO ROTEIRO 1. INTRODUÇÃO 2. LINGUAGENS IMPERATIVAS 1. CONCEITO 2. PARADIGMA IMPERATIVO 3. ORIGENS 4. MODELO COMPUTACIONAL 1. ARQUITETURA DE VON NEUMANN 2. CARACTERISTICAS
Leia maisORIENTAÇÃO A OBJETOS Histórico:
GESTÃO DE TECNOLOGIA DA INFORMAÇÃO Anhanguera Itapecerica da Serra Curso: Gestão da Tecnologia da Informação Disciplina: Modelagem de Sistemas Prof. Luiz Antonio do Nascimento Histórico: A orientação a
Leia maisProfª. Juliana Pinheiro Campos ENG10082 Programação II Créditos: Prof. Gustavo Willam Pereira e Prof.
1 Profª. Juliana Pinheiro Campos E-mail: jupcampos@gmail.com ENG10082 Programação II Créditos: Prof. Gustavo Willam Pereira e Prof. Clayton Vieira Fraga Filho 2 Paradigmas de programação Paradigmas de
Leia maisIntrodução ao Java. Prof. Herbert Rausch Fernandes
Introdução ao Java Prof. Herbert Rausch Fernandes Orientação a Objetos Programação Orientada por Objetos: é a construção de sistemas de software como uma coleção estruturada de implementações de tipos
Leia maisDaniel Wildt
Orientação a Objetos 1 Daniel Wildt http://danielwildt.blogspot.com Agenda 2 Orientação a Objetos Classe x Objeto Representação classe Atributos / operações Construtores e Destrutores Liberando memória
Leia maisParadigmas de Programação
Paradigmas de Programação Gustavo Jungthon 1, Cristian Machado Goulart 1 1 Faculdade de Informática de Taquara (FIT) Rua Oscar Martins Rangel, 4500 95600 000 Taquara RS Brazil guto@faccat.br, cmg3k@faccat.br
Leia maisProgramação I A Linguagem C. Prof. Carlos Alberto
Programação I A Linguagem C Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br 2 Origem A linguagem C foi desenvolvida em 1972, nos Laboratórios Bell, por Dennis Ritchie. Implementada
Leia maisAula 1 Java Prof. Dr. Sylvio Barbon Junior
5COP101 Linguagens de Programação Aula 1 Java Prof. Dr. Sylvio Barbon Junior Sylvio Barbon Jr barbon@uel.br 1 Sumário 1) Razões para Estudar Conceitos de LP; 2) Domínios das Linguagens de Programação 3)
Leia mais1 Introdução à Programação O que é? Para que serve?... 1
Nesta aula... Conteúdo 1 Introdução à Programação 1 1.1 O que é?................................. 1 1.2 Para que serve?............................. 1 2 Linguagens de programação 2 2.1 Programação estruturada........................
Leia maisIntrodução à Orientação a Objetos. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012
Introdução à Orientação a Objetos SSC 121 - Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012 Conteúdo Histórico de OO Vantagens de OO Linguagens OO Conceitos Básicos de OO
Leia maisLinguagens de Programação Aula 12
Linguagens de Programação Aula 12 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Implementando subprogramas 2 Na aula de hoje Suporte para a programação orientada a objetos 3 Roteiro Introdução
Leia maisOrientação a Objetos (OO)
CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 04 APRESENTAÇÃO: Hoje vamos discutir os conceitos de Orientação a Objetos.
Leia maisAspectos preliminares
Aspectos preliminares Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisProgramação Estruturada e OO Aula 1.2 Introdução a Paradigmas de Programação. Prof. Bruno Moreno
Programação Estruturada e OO Aula 1.2 Introdução a Paradigmas de Programação Prof. Bruno Moreno bruno.moreno@ifrn.edu.br Motivação Por que existe mais de uma LP? Propósitos diferentes; Avanços tecnológicos;
Leia maisAspectos preliminares
Aspectos preliminares Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisHerança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos
e Ligação Dinâmica Programação Orientada a Objetos e Polimorfismo A é a contribuição original do paradigma de programação orientado a objetos Fundamentos chave do paradigma OO: Abstração de Dados A herança
Leia maisC com introdução a OO
... Centro Integrado de Tecnologia da Informação C com introdução a OO ... Centro Integrado de Tecnologia da Informação Aula 9 Ronald Dener - Instrutor Matheus Soares - Monitor 17 / outubro 17 / outubro
Leia maisUniversidade Estadual de Santa Cruz
Universidade Estadual de Santa Cruz Conceitos de Linguagens de Programação Linguagens Imperativas e Funcionais Prof. Dr. Rogério Vargas Ilhéus-Ba, 16 de Maio de 2013. Linguagens Imperativas Linguagens
Leia maisParadigmas de Linguagens
Paradigmas de Linguagens Aula 1: Introdução e Conceitos Básicos Professora Sheila Cáceres O que é um paradigma??? Paradigmas de Linguagens - Sheila Cáceres 2 O que é um paradigma??? Paradigmas de Linguagens
Leia maisIntrodução à Orientação a Objetos
Introdução à Orientação a Objetos 11/04/2006 Prof. Vítor Souza Análise e Projeto Orientado a Objetos Departamento de Informática Univ. Federal do Espírito Santo Licença para uso e distribuição Este material
Leia maisIntrodução à Programação. Conceitos Básicos de Orientação a Objetos
Introdução à Programação Conceitos Básicos de Orientação a Objetos Tópicos da Aula Aprenderemos fundamentos do paradigma orientado a objetos, mas antes veremos o que é paradigma Conceito de paradigma Diferentes
Leia maisTema da aula Introdução ao paradigma de programação: Orientado a Objetos
Profa. Juliana Santiago Teixeira Disciplina: Programação Orientada a Objetos I Tema da aula Introdução ao paradigma de programação: Orientado a Objetos Paradigma Paradigma é a filosofia adotada na construção
Leia maisIntrodução a orientação a objetos
2 Introdução a orientação a objetos Introdução 2 Linguagens procedimentais 2 Um pouco de história 2 Idéias básicas da POO 2 Classe, atributo e método 2 Herança 3 Polimorfismo 3 Vantagens e desvantagens
Leia maisUML (Unified Modelling Language)
UML (Unified Modelling Language) Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Booch, G. et al. The Unified Modeling Language User Guide
Leia maisOrientação a Objetos (OO) Java Avançado Revisão do Paradigma de. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental
Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de Orientação a Objetos (OO) Roberto Vedoato vedoato@joinville.udesc.br Programação Procedimental x Orientada a Objetos Objetivos e Benefícios
Leia maisQuestões de Paradigmas de Programação Matéria: Prova 1 4ª EDIÇÃO
Questões de Paradigmas de Programação Matéria: Prova 1 4ª EDIÇÃO QUESTÃO 1 : Enviada por: Francisco Carlos Moraes Junior Duvidas: Thaise Domínios de programação são áreas onde os computadores são usados.
Leia maisLinguagens de Programação
Curso Superior em Análise e Desenvolvimento de Sistemas História da Ciência e da Tecnologia - (HCT) Linguagens de Programação Alunas: Érika H. Gamas Flávia G. Pereira Melissa B. Alcantud Thaynara da Silva
Leia maisProgramação Orientada a Objetos
PMR2300 Escola Politécnica da Universidade de São Paulo Proposta O mundo real é composto de entidades que interagem entre si para realizar tarefas (objetos). Objetos podem representar entidades concretas
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
Programação Orientada a Objetos 1.1 - Perspectiva histórica: Conceitos A evolução das linguagens de programação tem-se feito na procura de ferramentas: -cada vez mais próximas da percepção humana - e que
Leia maisRequisitos de sistemas
Requisitos de sistemas Unidade III - Casos de Uso Identificação de casos de uso Conceitos de orientação a objetos Modelagem do diagrama de classes e casos de uso 1 Casos de uso CONCEITO Especifica o comportamento
Leia maisProgramação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs
Programação Orientada a Objetos Professor: André Luis Meneses Silva andreluis.ms@gmail.com br.geocities.com/programacao2ufs [ Conteúdo ] Objeto Mensagens Classe Encapsulamento Visibilidade Membros de Instância
Leia maisCapítulo 2. Orientação a Objetos
Capítulo 2 Orientação a Objetos Princípios da Orientação a Objetos Os princípios da orientação a objetos afetam todo o processo de desenvolvimento de software: Seres humanos pensam em termos de substantivos
Leia maisPROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO (PSI) 11ºANO
PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO (PSI) 11ºANO 1 Módulo 9 - Int. à Programação Orientada a Objectos 2 1. Conceitos básicos A Programação Orientada a Objectos: é uma lógica de programação que procura
Leia maisLinguagens de Programação Aula 3
Aula 3 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada... Classificação das LPs (nível, geração e paradigma) Paradigmas Imperativo, OO, funcional, lógico e concorrente 2/33 Na aula de hoje...
Leia maisLinguagens de Programação Conceitos e Técnicas. Amarrações
Linguagens de Programação Conceitos e Técnicas Amarrações Conceituação Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável e seu valor ou entre um identificador
Leia mais2 Paradigmas de linguagens de programação João B. Rocha- Junior. As linguagens evoluem com o passar do tempo
Agenda Paradigmas de Linguagens de ção joao@ecomp.uefs.br Principais paradigmas de linguagem de programação imperajvo funcional declaração Departamento de Ciências Exatas Universidade Estadual de Feira
Leia maisLinguagem de Programação I Apresentação da Disciplina
Linguagem de Programação I Apresentação da Disciplina Apresentação da Disciplina Conteúdo: 1) Orientação a Objetos - Características da OO - Reutilização de código 2) Introdução à Linguagem Java - Histórico
Leia maisCurso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 1ª Parte Prof. Sandra Pais Soares
Curso Profissional de Gestão e Programação de Sistemas Informáticos Programação e Sistemas de Informação Módulo 1 1ª Parte Prof. Sandra Pais Soares Linguagens de Programação Linguagens de Programação Uma
Leia maisOrientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos)
Orientação a Objetos Parte I Introdução a POO (Programação Orientada a Objetos) Histórico Gerações de Linguagens de Programação Primeira Geração: Linguagem de máquina Segunda Geração: Linguagem de montagem
Leia maisConceitos de Linguagens de Programação
Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Conceitos de Linguagens de Programação Aula 06 (rogerio@fct.unesp.br) Aula 6 Subprogramas
Leia maisLinguagem de Programação e Compiladores
Linguagem de Programação e Compiladores Fernando Antônio Asevedo Nóbrega Instituto de Ciências Matemáticas e de Computação USP SCC-206 Introdução à Compilação 24 de abril de 2012 1 / 20 Sumário 1 Introdução
Leia maisTelevisao tamanho tela emitirsom. conectarperifericos
1 - Introdução a Programação Orientada a Objeto Para tentar solucionar o problema do baixo reaproveitamento de código, surgiu a idéia da Programação Orientada a Objeto (POO). A POO não é nova, sua formulação
Leia maisParadigmas de Linguagem de Programação. Aspectos Básicos
Paradigmas de Linguagem de Programação Aspectos Básicos Introdução Nesta segunda etapa de nossos estudos, veremos: aspectos básicos de programa e linguagem de programação; revisão de conceitos de compilador
Leia maisConceitos de Programação Orientada a Objetos
Conceitos de Programação Orientada a Objetos flavio@facom.ufu.br 80 Por que a Orientação a Objetos? As abstrações podem corresponder às "coisas" do domínio do problema, facilitando o entendimento Esta
Leia maisEderson Luiz da Silva Ciência da Computação. Algoritmos e Programação
Ederson Luiz da Silva Ciência da Computação Algoritmos e Programação Linguagem de programação Linguagem de Programação Linguagem de máquina http://www.assemblyprogressivo.net/p/curso.html Linguagem de
Leia mais3.4. Programação Orientada a Objetos
Paradigmas de Linguagens I 1 3.4. Programação Orientada a Objetos Os conceitos de objetos e classes, vistos nas seções anteriores, são fundamentais na programação orientada a objetos. Complementando a
Leia maisHerança Tiago Eugenio de Melo
Herança Tiago Eugenio de Melo tiago@comunidadesol.org Herança Conceito: Herança é a capacidade de especializar tipos de objetos (classes), de forma que os tipos especializados contenham, além de características
Leia maisCompiladores. Introdução
Compiladores Introdução Apresentação Turma Noite Continuada I 20/03 Continuada II 22/05 Atividades Regimental 05/06 Total 1 Ponto 1 Ponto 1 Ponto 7 Pontos 10 Pontos Aulas expositivas teórico-práticas Exercícios
Leia maisACH2002. Orientação a Objetos
ACH2002 Orientação a Objetos Professores: Delano Medeiros Beder Fátima L. S. Nunes EACH USP O que é abstração? Abstração s.f. Operação do espírito, que isola de uma noção um elemento, negligenciando os
Leia maisModelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo
MODELAGEM DE DADOS Sistemas de Banco de Dados Profa. Rosemary Melo SISTEMAS DE BANCO DE DADOS OBJETIVOS Apresentar os conceitos fundamentais de Sistemas de Banco de Dados. Principais componentes dos SGBDs
Leia maisInformática I. Aula 19. Aula 19-31/10/2007 1
Informática I Aula 19 http://www.ic.uff.br/~bianca/informatica1/ Aula 19-31/10/2007 1 Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript
Leia maisProgramação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.
Orientação a Objetos Revisão Conceitos CLASSE CLASSIFICAÇÃO GENERALIZAÇÃO ESPECIALIZAÇÃO HERANÇA INTERFACES POLIMORFISMO SOBRECARGA ENCAPSULAMENTO ABSTRAÇÃO MODULARIZAÇÃO 9 CLASSE Classe é um agrupamento
Leia maisLinguagens de Programação
Linguagens de Programação Paradigma Imperativo Matheus Hafner Tiago Xavier CET 087 - Conceitos de Linguagens de Programação (CLP) 10 de novembro de 2011 Sumário 1 Introdução 2 Paradigma imperativo Modelo
Leia mais