Programação Orientada a Objetos
Professor: André de Carvalho
Fundamentos
Sobre o Curso
Q
Objetivo
Introduzir os conceitos fundamentais do paradigma de orientação a objetos e a sua aplicação à programação orientada a objetos Apresentação de conceitos de linguagens de programação orientadas a objetos
Sobre o Curso
Q
Conteúdo – Fundamentos
– Revisão da linguagem C
– Conceitos de programação orientada à objetos
– A linguagem C++
– Outras linguagens POO
Sobre o Curso
Q
Avaliação – Provas:
• Haverá 3 provas, cujas datas de realização estão marcadas no programa. Cada prova vale de 0 a 10
• A última prova é substitutiva, substituindo a menor nota dentre as notas anteriores
– Trabalhos:
• Haverá 5 Trabalhos Práticos.Cada trabalho vale de 0 a 10
Sobre o Curso
Q
Avaliação
– Cálculo da média:
• MP = Média Aritmética das Provas
• MT = Média Aritmética dos Trabalhos
• MF = Média Final
• Se MP ≥ 5 e MT ≥ 5 → MF = (7MP + 3MT) /10
• Se MP < 5 ou MT < 5 → MF = menor valor entre MP e MT
Sobre o Curso
Q
Avaliação
– Recuperação:
• Só terão direito à recuperação os alunos com 3.0 ≤ MF ≤ 5.0 e freqüência superior a 70%
Q
Observação:
– Será dada a nota 0.0 (zero) para cópia
parcial de programa ou prova, sendo o
problema levado para a coordenação do
curso.
Sobre o Curso
Q
Livros
– DEITEL, H. M.; DEITEL, P.J.: C++ How to program, Prentice Hall, Terceira Edição, 2001 (Livro Texto).
– SCHILDT, H.: C++: The Complete Reference Completo e Total, Makron Books1997.
– ECKEL B.: Thinking in C++, Pode ser baixado gratuitamente do site
(http://www.mindview.net/Books).
– SATIR G.; BROWN D.: C++: The Core Language, O'Reilly, 1995.
Sobre o Curso
Q
Livros
– STROUSTRUP B.: The C++ Programming Language (3rd Edition). Addison-Wesley Longman, 1997 (Traduzido para o português pela Bookman, Porto Alegre, Brazil).
– STROUSTRUP B.: An Overview of the C++
Programming language. Handbook of Object Technology. CRC Press, 1998.
– BOOCH,G.: Object-oriented design with Applications, Benjamin/Cummings, 1991.
Sobre o Curso
Q
Livros
– COX,B.J.: Object-Oriented Programming, Addison Wesley, 1986. (Nacional: Makron 1991).
– KERNIGHAN, B. W. ; RITCHIE, D. M. C - A linguagem de programação padrão ANSI, Editora Campus, 1995
– CARROL, D.W. The Art of Programming, Computer Science with C, West, 1996.
– ROBERTS, E. Programmin Abstractions in C, Addison Wesley, 1996.
Aula de hoje
Q
Estrutura do curso
Q
Linguagens de Programação
Q
Qualidade
Q
Linguagens de Programação Orientada a Objetos
Linguagens de programação
Q
Conjunto de comandos e estruturas de dados
– Utilizado para informar ao computador os passos a serem executados para a realização de uma dada tarefa
Q
Diferentes níveis – Linguagens de máquina – Linguagens de montagem – Linguagens de alto nível
Linguagens de programação
Q
Linguagens de máquina
– Qualquer computador entende internamente apenas sua própria linguagem de máquina
• Definido pelo hardware
• Depende da máquina
– Programa que soma salário base com hora extra
+1300042774 +1400593419 +1200274027
Linguagens de programação
Q
Linguagem de montagem (Assembly) – Abreviações em inglês para representar as
operações elementares dos computadores
• Programas tradutores (assemblers) convertiam programas em linguagem assembly para programas em linguagem de máquina
– Exemplo
LOAD BASE ADD EXTRA STORE SALARIO
Linguagens de programação
Q
Linguagem de alto nível
– Linguagem de montagem requer várias instruções mesmo para programas simples – Em linguagens de alto nível, comandos simples
podem realizar um grande número de tarefas – Programas são convertidos para linguagem de
máquina por programas chamados compiladores
– Exemplo
• salario = base + extra
Padrões de Programação
Q
Nomes de variáveis com significado
Q
Código estruturado
Q
Código adequadamente tabulado
Q
Boa documentação
– Nome do programador, contato – Descrição geral
– Bons comentários
História da Programação
Q
No início da computação, os programas eram escritos em linguagem de
máquina
– Instruções primitivas que podiam ser executadas diretamente na máquina
• Ex: mov A, B
– Estrutura da linguagem refletia a estrutura da máquina
• Não refletia as necessidades do programador
• Difícil de programar
História da Programação
Q
Maior parte da computação envolvia o cálculo de fórmulas
– Fórmulas eram traduzidas para a linguagem de máquina
– Por que não escrever programas parecidos com as fórmulas que se deseja computar?
– Em 1950 grupo de programadores da IBM liderados pôr John Backus produz a versão inicial da ling. Fortran (formula translation)
• Primeira linguagem de alto nível
História da Programação
Q
Várias outras linguagens de alto nível foram criadas
– Linguagem C
• Criada em 1972 nos laboratórios Bell por Denis Richie
• Uma das linguagens mais utilizadas atualmente
História da Programação
Q
Várias linguagens de alto nível começara a incorporar conceitos de POO
– Evoluíram para linguagens POO
CAda Pascal Modula 2 LISP
C++ e Objective C Ada 9X Object Pascal Modula 3 CLOS
História das LPOO
Q
Idéia antiga – SIMULA (1967)
• Ole-Johan Dahl, Björn Myhrhaug e Krinsten Nygaard
• Propósito: codificar simulações
• Muito a frente de seu tempo
• Muitos de seus conceitos se tornaram padrão – Tipo abstrato de dados
– Paradigma de programação orientada a objetos – Originou terminologia empregada hoje em LPOO
• Ficou um bom tempo na prateleira
História das LPOO
Q
Descoberta
– Smalltalk (final da década de 70)
• Primeira LPOO a se tornar popular
• Desenvolvida na Xerox Palo Alto Research Center
• Propósito: tornar programação acessível a um maior número de pessoas
• Deu origem a boa parte da tecnologia moderna de interfaces para usuários que hoje é padrão em micros
• Não atingiu sucesso comercial
História das LPOO
Q
Despertando interesse
– C++ (começo da década de 80)
• Bjarne Stroustrup AT & T Bell Labs
– Interesse se expandiu quando idéias de POO foram incorporadas em variantes da linguagem C
• C já tinha se tornado um padrão para aplicações Industriais
• A possibilidade de de integrar técnicas OO com código C existente (C++) levou uma grande comunidade de programadores a adotar o paradigma de OO
História das LPOO
Q
Estouro
– Desenvolvimento da linguagem Java (1991)
• Programadores da Sun Microsystems liderados por James Goslin
• Propósito: projetar uma linguagem adequada para programar microprocessadores embutidos em sistemas eletrônicos
• Enorme crescimento da Internet no início de 90, particularmente na forma de World Wide Web
História das LPOO
Q
Estouro
– Desenvolvimento da linguagem Java (1991)
• Web
– Coleção crescente de recursos interconectados contribuídos por usuários de todo o mundo – Sun re-projetou Java em 1993 como uma ferramenta
para escrever aplicações altamente interativas baseadas na web
– Anúncio formal da linguagem Java: 1995
História das LPOO
Q
Porque o Paradigma de POO demorou tanto para pegar?
– Foi criada pelos europeus em uma indústria dominada em grande parte pelos EUA
– Aplicações na época em que paradigma foi desenvolvido não eram
• Muito complexas
• Altamente interativas
Linguagens de POO
Q
Existem várias linguagens de POO – Alguns exemplos
• Sumula
• C++
• Java
• ObjectPascal (utilizada pelo ambiente Delphi)
• Perl5
• Eiffel
Comentários finais
Q
Sobre a disciplina
Q
Linguagens de programação
Q