+ All Categories
Home > Education > Paradigmas de Linguagens de Programacao - Aula #6

Paradigmas de Linguagens de Programacao - Aula #6

Date post: 25-May-2015
Category:
Upload: ismarfrango
View: 1,633 times
Download: 4 times
Share this document with a friend
Description:
Paradigmas de Linguagens de Programacao Aula #6 Prof. Ismar Frango
Popular Tags:
15
Paradigmas de Linguagens de Programação Paradigma Orientado a Objetos Aula #6 (CopyLeft)2009 - Ismar Frango [email protected]
Transcript
Page 1: Paradigmas de Linguagens de Programacao - Aula #6

Paradigmas de Linguagens de Programação

Paradigma Orientado a ObjetosAula #6

(CopyLeft)2009 - Ismar Frango [email protected]

Page 2: Paradigmas de Linguagens de Programacao - Aula #6

Paradigma Orientado a Objetos

try { web.throw( );}catch (RunOutOfWebFluidException e) { e.sendMessage(UncleMay.getInstance()); this.fall(); System.exit(-1);}

Page 3: Paradigmas de Linguagens de Programacao - Aula #6

•Simula I (1962-65) e Simula 67 (1967) foram as duas primeiras linguagens a implementarem boa parte dos conceitos que viriam a ser conhecidos posteriormente como Orientação a Objetos (objetos, classes, subclasses, late binding). (Norwegian Computing Center, Oslo, Noruega - Ole-Johan Dahl e Kristen Nygaard

Origens

The best way to predict the future is to invent it.

Alan Kay

Page 4: Paradigmas de Linguagens de Programacao - Aula #6

•Alan Kay, Adele Goldberg e colegas na Xerox PARC estenderam as idéias de Simula com Smalltalk (1970’s)

•Kay cunha o termo ”orientação a objetos”•Smalltalk é a primeira linguagem totalmente orientada a objetos.

Origens

Page 5: Paradigmas de Linguagens de Programacao - Aula #6
Page 6: Paradigmas de Linguagens de Programacao - Aula #6

O.O

- F

unda

men

tos

http://whysm

alltalk.com/

Page 7: Paradigmas de Linguagens de Programacao - Aula #6

O.O

- F

unda

men

tos

http://whysm

alltalk.com/

Page 8: Paradigmas de Linguagens de Programacao - Aula #6

O.O

- F

unda

men

tos

http://whysm

alltalk.com/

Page 9: Paradigmas de Linguagens de Programacao - Aula #6

O.O

- F

unda

men

tos

http://whysm

alltalk.com/

Page 10: Paradigmas de Linguagens de Programacao - Aula #6

O.O

- F

unda

men

tos

http://whysm

alltalk.com/

Page 11: Paradigmas de Linguagens de Programacao - Aula #6

O.O

- F

unda

men

tos

http://whysm

alltalk.com/

Page 12: Paradigmas de Linguagens de Programacao - Aula #6

Categorias de polimorfismo

Cardelli e Wegner

Πολλοί + μορφή

Page 13: Paradigmas de Linguagens de Programacao - Aula #6

Polimorfismo UniversalParamétrico

Uma função ou uma classe que siga o polimorfismo universal paramétrico tem um parâmetro de tipo (implícito ou explícito), que determina o tipo de argumento para cada aplicação dessa função/classe.

Inclusão

Um objeto pode ser visto como pertencendo a diferentes classes que não precisam ser disjuntas

List < >

Animal

Page 14: Paradigmas de Linguagens de Programacao - Aula #6

Polimorfismo ad-hoc

Um mesmo nome é utilizado para designar diferentes funções e o contexto é usado para decidir qual função é denotada por uma instância específica do nome.

Sobrecarga

CoerçãoOperação semântica que é necessária para converter um argumento para um tipo esperado por uma função, em uma situação que de outra forma resultaria em um erro de tipo.

fugirDe( )

fugirDe( )

+

=

= ?

Page 15: Paradigmas de Linguagens de Programacao - Aula #6

Sobrecarga ou coerção?

3 + 43.0 + 43 + 4.03.0 + 4.0

•O operador + tem quatro significados sobrecarregados, uma para cada uma das quatro combinações de tipos de argumentos.

•O operador + tem dois significados sobrecarregados, correspondentes à adição de inteiros e reais. Quando um dos argumentos é do tipo inteiro e o outro é do tipo real, então o argumento inteiro é convertido para o tipo real.

•O operador + é definido apenas para adições reais, e os argumentos inteiros são sempre convertidos em reais.


Recommended