programaÇÃo orientada a objetos i …frozza/2014.1/bsi13/pooi-aula001-conceit... · programaÇÃo...
TRANSCRIPT
PROGRAMAÇÃOORIENTADA A OBJETOS I- CONCEITOS PRELIMINARESProf. Angelo Augusto Frozza, M.Sc.http://about.me/TilFrozza
ROTEIRO
O que é programação
Linguagens de Programação
Paradigmas de Programação
História da POO
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
O QUE É PROGRAMAÇÃO
É o processo de escrita, teste e manutenção de umprograma de computador.
O programa é escrito em uma linguagem deprogramação, embora seja possível, com algumadificuldade, escrevê-lo diretamente em linguagem demáquina.
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
LINGUAGEM DE PROGRAMAÇÃO
Uma linguagem de programação é um métodopadronizado para expressar instruções para umcomputador.
É um conjunto de regras usadas para definir umprograma de computador.
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
LINGUAGEM DE PROGRAMAÇÃO
Uma linguagem permite que um programador especifiqueprecisamente: sobre quais dados um computador vai atuar; como estes dados serão armazenados ou transmitidos; e quais ações devem ser tomadas sob diversas circunstâncias.
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
LINGUAGEM DE PROGRAMAÇÃO
Linguagens de programação são classificadas em altonível e baixo nível.
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
LINGUAGENS DE ALTO NÍVEL
Se caracterizam por possuírem instruções ou comandosexpressos sintaticamente em inglês, ou seja, maispróximo de uma linguagem humana (por isso alto nível).
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
LINGUAGENS DE ALTO NÍVEL
Ao se utilizar uma linguagem de programação de altonível para desenvolver um programa, está se adquirindoprodutividade, pois ela permite expressar as intenções doprogramador mais facilmente do que quando comparadocom o uso de uma linguagem de máquina. Ex: Java, C, Pascal, Cobol etc.
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
LINGUAGENS DE BAIXO NÍVEL
São aquelas cujas instruções ou comandos seaproximam bastante da linguagem de máquina.
Normalmente, cada instrução nesta linguagemrepresenta uma instrução executada pelo processador.
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
LINGUAGENS DE BAIXO NÍVEL
A vantagem deste tipo de linguagem é a grandevelocidade de execução dos programas e o tamanho dosmesmos (que são mais compactos). Ex: Assembly
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
COMPILAÇÃO / INTERPRETAÇÃO
Uma linguagem de programação pode ser convertida emcódigo de máquina por compilação ou interpretação.
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
COMPILAÇÃO
Se o método utilizado traduz o código do programa(instruções que compõem o programa) para o código demáquina e só depois o programa pode ser executado,diz-se que o programa foi compilado.
A ferramenta utilizada para realizar esta tradução échamada compilador.
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
COMPILAÇÃO
Quando se utiliza a compilação, é gerado um arquivocom a extensão .EXE (*), que pode ser executado umnúmero indefinido de vezes sem que seja necessáriauma nova compilação.
Linguagens como Pascal e C utilizam-se da compilação.
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
INTERPRETAÇÃO
Se o código do programa é traduzido à medida em quevai sendo executado, em um processo de tradução detrechos seguidos de uma execução imediata, então diz-se que o programa foi interpretado e que o mecanismoutilizado para a tradução é um interpretador.
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
INTERPRETAÇÃO
Programas interpretados geralmente são mais lentos doque os compilados.
A cada nova execução do programa, é necessária umanova tradução do código-fonte para código de máquina.
Linguagens como PHP, JavaScript, Perl e Pythonutilizam este método de tradução.
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
PARADIGMAS DE PROGRAMAÇÃO
Modelo, padrão ou estilo de programação suportado porlinguagens que agrupam certas características comuns.
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
PARADIGMAS DE PROGRAMAÇÃO
Programação Imperativa
Programação Orientada a Objetos
Programação Funcional
Programação em Lógica
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
PROGRAMAÇÃO IMPERATIVA
Programas centrados no conceito de um estado(modelado por variáveis) e ações (comandos) quemanipulam o estado.
Paradigma também denominado de procedural, porincluir subrotinas ou procedimentos como mecanismo deestruturação.
Primeiro paradigma a surgir e ainda é o dominante.
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
PROGRAMAÇÃO IMPERATIVA
C, Pascal, Fortran e Basic são exemplos de linguagensque se enquadram no paradigma da programaçãoimperativa.
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
PROGRAMAÇÃO IMPERATIVA
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
PROGRAMAÇÃO IMPERATIVA
Vantagens: Eficiência (embute modelo de Von Neumann) Modelagem “natural” de aplicações do mundo real Paradigma dominante e bem estabelecido
Problemas: Relacionamento indireto entre E/S resulta em:
difícil legibilidade erros introduzidos durante manutenção descrições demasiadamente operacionais focalizam o como e não o
que
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
PROGRAMAÇÃO ORIENTADA A OBJETOS
Não é um paradigma no sentido estrito: é umasubclassificação do imperativo.
A diferença é mais de metodologia quanto à concepção emodelagem do sistema.
A grosso modo, uma aplicação é estruturada em módulos(classes) que agrupam um estado e operações(métodos) sobre este.
Classes podem ser estendidas ou usadas como tipos dedados (cujos elementos são os objetos).
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
PROGRAMAÇÃO ORIENTADA A OBJETOS
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
PROGRAMAÇÃO ORIENTADA A OBJETOS
Vantagens: Todas as do estilo imperativo Classes estimulam projeto centrado em dados: modularidade,
reusabilidade e extensibilidade Aceitação comercial crescente
Problemas: Semelhantes às do paradigma imperativo, mas amenizadas
pelas facilidades de estruturação.
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
PROGRAMAÇÃO ORIENTADA A OBJETOS
Linguagens como SmallTalk, C++, Java e Object Pascal,são exemplos das que se enquadram no paradigma daprogramação orientada a objetos.
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
PROGRAMAÇÃO FUNCIONAL
Programas são funções que descrevem uma relaçãoexplícita e precisa entre E/S.
Estilo declarativo: não há o conceito de estado nemcomandos como atribuição.
Conceitos sofisticados como polimorfismo, funções dealta ordem e avaliação sob demanda.
Aplicação: prototipação em geral e IA.
Ex.: Scheme
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
PROGRAMAÇÃO FUNCIONAL
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
PROGRAMAÇÃO FUNCIONAL
Vantagens: Manipulação de programas mais simples:
Prova de propriedades Transformação (exemplo: otimização)
Concorrência explorada de forma natural
Problemas: “O mundo não é funcional!” Implementações ineficientes Mecanismos primitivos de E/S e formatação
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
PROGRAMAÇÃO EM LÓGICA
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.
Ex.: Prolog, Lisp
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
PROGRAMAÇÃO EM LÓGICA
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
PROGRAMAÇÃO EM LÓGICA
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.
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
HISTÓRICO DA POO
O termo Programação Orientada a Objetos foi criado porAlan Kay, autor da linguagem de programação Smalltalk,desenvolvida na década de 70 nos laboratórios da Xerox.
Mas, mesmo antes da criação do Smalltalk, algumas dasidéias da POO já eram aplicadas, sendo que a primeiralinguagem a realmente utilizar estas idéias foi alinguagem Simula 67, criada por Ole Johan Dahl eKristen Nygaard em 1967.
Prof. Reginaldo Rubens da Silva, M.Sc. Programação Orientada a Objetos I
DÚVIDAS?
Prof. Angelo Augusto Frozza, M.Sc.
http://www.ifc-camboriu.edu.br/~frozza
@TilFrozzahttp://www.twitter.com/TilFrozza
http://about.me/TilFrozza