«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08)
«
Object-Oriented Multi-Methods in Cecil
»
Craig Chambers
(Cours IFT6310, H08)
Mathieu Lemoine
2008/02/25
Craig Chambers : Professeur `
a l’Universit´
e de Washington au
d´
epartement de
Computer Science and Engineering, maintenant
ing´
enieur chez Google `
a leur d´
epartemment de Seatle.
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08)
1
Introduction – Contexte
Multi-M´
ethodes
Cecil
2
Pr´
esentation de l’article
R´
esolution des ambigu¨ıt´
es
Encapsulation
Langage Object-Centred
Future Work
Related Work
Conclusion
3
Discussion
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Introduction – Contexte
Multi-M´ethodes
1
Introduction – Contexte
Multi-M´
ethodes
Cecil
2
Pr´
esentation de l’article
R´
esolution des ambigu¨ıt´
es
Encapsulation
Langage Object-Centred
Future Work
Related Work
Conclusion
3
Discussion
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Introduction – Contexte
Multi-M´ethodes
Multi-M´
ethodes Vs Message Passing
Syntaxes
Message Passing
+
Privil´
egier 1 argument
Object Centred
(lecture, d´
etection de l’object principale)
-Privil´
egier plusieurs arguments
Pas de dispatche multiple (difficile)
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Introduction – Contexte
Multi-M´ethodes
«
Design Patterns : Elements of Reusable Object-Oriented
Software
»
de Gamma et al.
«
Design Pattern Visitor
»
(p 341 `
a 344)
«
issues that arise when you apply the Visitor Pattern : Double
Dispatch
»
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Introduction – Contexte
Multi-M´ethodes
Multi-M´
ethodes Vs Message Passing
Syntaxes multi-m´
ethodes
+
Permet de privil´
egier plusieurs arguments.
-Pas
Object Centred
Ambigu¨ıt´
e, Conflits
Encapsulation
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Introduction – Contexte
Multi-M´ethodes
«
Structured Programming with go to Statements
»
de
Donald E. Knuth
«
Multi-way branching is an important programming technique
»
(p. 290)
«
One of the nice properties of his syntax is that the word repeat
occurs naturally
»
(p.279)
Comparaison de la syntaxes des langages de prgrammation.
«
a way we rarely think about go to statements
»
(p. 275)
Multi-M´
ethodes (fonctionnalit´
ees fourniees par l’OO).
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Introduction – Contexte
Cecil
1
Introduction – Contexte
Multi-M´
ethodes
Cecil
2
Pr´
esentation de l’article
R´
esolution des ambigu¨ıt´
es
Encapsulation
Langage Object-Centred
Future Work
Related Work
Conclusion
3
Discussion
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Introduction – Contexte
Cecil
Le langage
D´
evelopp´
e `
a UWashington d`
es 1991, Projet
Vortex
Orient´
e Objet, non
Object Centred
Pas de classes mais des prototypes
H´
eritage distinct pour interface et comportement
Utilis´
e pour d´
evelopper et ”tester” de nouveaux concepts et
paradigmes
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Pr´esentation de l’article
R´esolution des ambigu¨ıt´es
1
Introduction – Contexte
Multi-M´
ethodes
Cecil
2
Pr´
esentation de l’article
R´
esolution des ambigu¨ıt´
es
Encapsulation
Langage Object-Centred
Future Work
Related Work
Conclusion
3
Discussion
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Pr´esentation de l’article
R´esolution des ambigu¨ıt´es
Les r`
egles de r´
esolution des multi-m´
ethodes
D´
efinition de la sp´
ecialisation
Objets :
A
>
B
⇔
A
h´
erite de
B
Arguments
a
d’impl´
ementations d’une m´
ethode
m
:
m1
>
m2
⇔
l’objet attendu pour
a
dans
m1
>
celui dans
m2
Impl´
ementations d’une m´
ethode
m
:
m1
>
m2
⇔ ∀
argument de
m,
m1
≥
m2
Appel de l’impl´
ementation la plus sp´
ecialis´
ee
Si ambigu¨ıt´
e
⇒
erreur `
a la compilation
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Pr´esentation de l’article
R´esolution des ambigu¨ıt´es
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Pr´esentation de l’article
R´esolution des ambigu¨ıt´es
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Pr´esentation de l’article
Encapsulation
1
Introduction – Contexte
Multi-M´
ethodes
Cecil
2
Pr´
esentation de l’article
R´
esolution des ambigu¨ıt´
es
Encapsulation
Langage Object-Centred
Future Work
Related Work
Conclusion
3
Discussion
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Pr´esentation de l’article
Encapsulation
Multi-M´
ethodes privil´
egi´
ee
Multi-M´
ethodes
dans
tous les objets
sp´
ecialisant
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Pr´esentation de l’article
Encapsulation
Multi-M´
ethodes priv´
ees
Multi-M´
ethodes d´
eclar´
ees priv´
ees par rapport `
a l’ensemble de leurs
objets
sp´
ecialisants
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Pr´esentation de l’article
Langage Object-Centred
1
Introduction – Contexte
Multi-M´
ethodes
Cecil
2
Pr´
esentation de l’article
R´
esolution des ambigu¨ıt´
es
Encapsulation
Langage Object-Centred
Future Work
Related Work
Conclusion
3
Discussion
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Pr´esentation de l’article
Langage Object-Centred
Description d’un environnement de programmation
Cecil
n’est pas
Object-Centred
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Pr´esentation de l’article
Future Work
1
Introduction – Contexte
Multi-M´
ethodes
Cecil
2
Pr´
esentation de l’article
R´
esolution des ambigu¨ıt´
es
Encapsulation
Langage Object-Centred
Future Work
Related Work
Conclusion
3
Discussion
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Pr´esentation de l’article
Future Work
Future Work
Impl´
ementation
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Pr´esentation de l’article
Related Work
1
Introduction – Contexte
Multi-M´
ethodes
Cecil
2
Pr´
esentation de l’article
R´
esolution des ambigu¨ıt´
es
Encapsulation
Langage Object-Centred
Future Work
Related Work
Conclusion
3
Discussion
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Pr´esentation de l’article
Related Work
Related Work
Principalement CLOS et son pr´
ed´
ecesseur CommonLoops
C++, Haskell
Kea, NOAL, RPDE
3
SELF
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Pr´esentation de l’article
Conclusion
1
Introduction – Contexte
Multi-M´
ethodes
Cecil
2
Pr´
esentation de l’article
R´
esolution des ambigu¨ıt´
es
Encapsulation
Langage Object-Centred
Future Work
Related Work
Conclusion
3
Discussion
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Pr´esentation de l’article
Conclusion
Conclusion
L’auteur propose une impl´
ementation des multi-m´
ethodes prennant
en compte l’encapsulation ainsi qu’une notation
Object-Centred
pour l’environnement de d´
eveloppement.
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Discussion
1
Introduction – Contexte
Multi-M´
ethodes
Cecil
2
Pr´
esentation de l’article
R´
esolution des ambigu¨ıt´
es
Encapsulation
Langage Object-Centred
Future Work
Related Work
Conclusion
3
Discussion
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Discussion
Discussion
+
Pr´
esentation d’un nouveau concept permettant d’utiliser les
multi-m´
ethodes dans un contexte Orient´
e Objet ou
Object
Centred
-Organisation un peu bancale
Explications quelques fois obscures ou incompl`
etes
Pas d’impl´
ementation
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08) Bibliographie
Bibliographie
Gamma et al., 1995 :
«
Design Patterns : Elements of
Reusable Object-Oriented Software
»
Addison-Wesley
Publishing Company
Donald E. Knuth, 1979 :
«
Structured programming with go to
statements
»
ACM Comput. Surv. 6, 4 (Dec. 1974), 261-301.
Projet
Vortex
: http ://www.cs.washington.edu/research
/projects/cecil/www/vortex.html
«Object-Oriented Multi-Methods in Cecil»Craig Chambers (Cours IFT6310, H08)