Title: MAC 413/5715
1MAC 413/5715 SeminárioProf. Fabio Kon
- Self The Power of Simplicity
- David Ungar and Randall B. Smith
- OOPSLA 1987
- Cristina Fang
- Eduardo Miyoshi Kasa
2MAC 413/5715 SeminárioProf. Fabio Kon
3MAC 413/5715 SeminárioProf. Fabio Kon
4MAC 413/5715 SeminárioProf. Fabio Kon
5Self The Power of Simplicit
6Self The Power of Simplicit
7Self The Power of Simplicity
- Linguagem Orientada a Objetos
- Tudo é objeto (herdado de Smalltalk)
- Idéias utilizadas no desenho
- Protótipos
- Slots
- Comportamento
8Self The Power of Simplicity
- Protótipos
- Objetos base que serão clonados
- Não utiliza classes
- Mais simples e flexível do que a maioria das
linguagens orientada a objetos
9Self The Power of Simplicity
- Slots
- Protótipos contêm Slots
- Slots podem conter qualquer coisa (objetos,
procedures ou closures) - Comportamento
- Não existe diferença entre comportamento e estado.
10Self The Power of Simplicity
11Self The Power of Simplicity
12Self The Power of Simplicity
- Desvantagens de Linguagens OO baseada em classes
- - É necessário criar uma nova classe para
criarmos um novo tipo de objeto - - Para alterar a estrutura do objeto precisamos
alterar a classe.
13Self The Power of Simplicity
- Self combina herança, protótipos e objetos para
eliminar a necessidade de classes
14Self The Power of Simplicity
- Classes
- Contém comportamento
- Herda de outra classe
- Pode ser instanciada
- Objetos
- Contém estado
- São instâncias de Classes
- Protótipos
- Contém comportamento
- Delega a outros objetos
- Pode ser clonado
- Contém estados
15Self The Power of Simplicity
16Self The Power of Simplicity
17Self The Power of Simplicity
- Relações simples
- "is a" e "kind of" são substituídos por "inherits
from" - Fica mais fácil de entender a linguagem e criar
hierarquia de herança - Criação por cópia
- Criar novos objetos é fácil basta clonar
18Self The Power of Simplicity
- Exemplos de módulos já existentes
- Protótipos são mais concretos que classes
- Exemplos (protótipos) são mais fáceis de entender
do que descrições (classes) - Objetos únicos (one-of-a-kind)
- Objetos do tipo Singleton são mais fáceis de se
criar, pois cada objeto tem suas próprias
características
19Self The Power of Simplicity
- Meta-regressão
- Baseada em classes
- Nenhum objeto é auto-suficiente
- Classes são necessárias para expressar sua
estrutura e comportamento - Baseada em protótipos
- O objeto pode incluir o seu próprio comportamento
- Não tem meta-regressão
20Self The Power of Simplicity
- Princípios no desenho de Self
- Messages-at-the-bottom
- Occam's Razor
- Concreto
21Self The Power of Simplicity
- Messages-at-the-bottom
- Mensagens são a operação fundamental da linguagem
- Acessos são feitos através de mensagens
- Não existem variáveis, apenas objetos que se
devolvem
22Self The Power of Simplicity
- Occam's razor
- Self omite Classes e Variáveis
- Não existe diferença entre acessar variáveis ou
enviar uma mensagem. - Concreto
- Os elementos são o mais concreto possível
- Para um objeto ser criado, ele é clonado
- Qualquer objeto pode ser clonado
23Self The Power of Simplicity
24Self The Power of Simplicity
- Herança dinâmica
- Objetos Singleton
- Adicionar/remover métodos em tempo de execução
- Compartilha estados entre objetos
- Herança múltipla
25Self The Power of Simplicity
- Conclusão
- - Novo paradigma para linguagens OO
-
- - Simplicidade por não precisar de classes e
variáveis (eliminando meta-regressão) -
- - Em Self é possível criar estruturas com
Classes e variáveis através de protótipos.
26Self The Power of Simplicity
- http//research.sun.com/self/
27Self The Power of Simplicity