«Object-Oriented Multi-Methods in Cecil» Craig Chambers (Cours IFT6310, H08) Mathieu Lemoine 2008/02/25 Craig Chambers : Professeur à l Université de Washington au département de Computer Science and Engineering, maintenant ingénieur chez Google à leur départemment de Seatle.
1 Introduction Contexte Cecil 2 Résolution des ambiguïtés Encapsulation Langage Object-Centred Future Work Related Work Conclusion 3 Discussion 4 Bibliographie
Introduction Contexte 1 Introduction Contexte Cecil 2 Résolution des ambiguïtés Encapsulation Langage Object-Centred Future Work Related Work Conclusion 3 Discussion 4 Bibliographie
Introduction Contexte Vs Message Passing Syntaxes Message Passing + - Privilégier 1 argument Object Centred (lecture, détection de l object principale) Privilégier plusieurs arguments Pas de dispatche multiple (difficile)
Introduction Contexte «Design Patterns : Elements of Reusable Object-Oriented Software» de Gamma et al. «Design Pattern Visitor» (p 341 à 344) «issues that arise when you apply the Visitor Pattern : Double Dispatch» «Consequences : Breaking Encapsulation»
Introduction Contexte Vs Message Passing Syntaxes multi-méthodes + - Permet de privilégier plusieurs arguments. Pas Object Centred Ambiguïté, Conflits Encapsulation
Introduction Contexte «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) (fonctionnalitées fourniees par l OO).
Introduction Contexte Cecil 1 Introduction Contexte Cecil 2 Résolution des ambiguïtés Encapsulation Langage Object-Centred Future Work Related Work Conclusion 3 Discussion 4 Bibliographie
Introduction Contexte Cecil Le langage Développé à UWashington dès 1991, Projet Vortex Orienté Objet, non Object Centred Pas de classes mais des prototypes Héritage distinct pour interface et comportement Utilisé pour développer et tester de nouveaux concepts et paradigmes
Résolution des ambiguïtés 1 Introduction Contexte Cecil 2 Résolution des ambiguïtés Encapsulation Langage Object-Centred Future Work Related Work Conclusion 3 Discussion 4 Bibliographie
Résolution des ambiguïtés Les règles de résolution des multi-méthodes Définition de la spécialisation Objets : A > B A hérite de B Arguments a d implémentations d une méthode m : m 1 > m 2 l objet attendu pour a dans m 1 > celui dans m 2 Implémentations d une méthode m : m 1 > m 2 argument de m, m 1 m 2 Appel de l implémentation la plus spécialisée Si ambiguïté erreur à la compilation
Résolution des ambiguïtés Exemple : Présentation des méthodes utilsées
Résolution des ambiguïtés Exemple : Présentation des résolutions des ambiuïtés
Encapsulation 1 Introduction Contexte Cecil 2 Résolution des ambiguïtés Encapsulation Langage Object-Centred Future Work Related Work Conclusion 3 Discussion 4 Bibliographie
Encapsulation privilégiée dans tous les objets spécialisant Une Multi-Méthode a accès à l interne de ses objets spécialisants
Encapsulation privées déclarées privées par rapport à l ensemble de leurs objets spécialisants
Langage Object-Centred 1 Introduction Contexte Cecil 2 Résolution des ambiguïtés Encapsulation Langage Object-Centred Future Work Related Work Conclusion 3 Discussion 4 Bibliographie
Langage Object-Centred Description d un environnement de programmation Cecil n est pas Object-Centred Présentation d un IDE avec une vue Object-Centred
Future Work 1 Introduction Contexte Cecil 2 Résolution des ambiguïtés Encapsulation Langage Object-Centred Future Work Related Work Conclusion 3 Discussion 4 Bibliographie
Future Work Future Work Implémentation Amélioration des concepts proposés
Related Work 1 Introduction Contexte Cecil 2 Résolution des ambiguïtés Encapsulation Langage Object-Centred Future Work Related Work Conclusion 3 Discussion 4 Bibliographie
Related Work Related Work Principalement CLOS et son prédécesseur CommonLoops C++, Haskell Kea, NOAL, RPDE 3 SELF
Conclusion 1 Introduction Contexte Cecil 2 Résolution des ambiguïtés Encapsulation Langage Object-Centred Future Work Related Work Conclusion 3 Discussion 4 Bibliographie
Conclusion Conclusion L auteur propose une implémentation des multi-méthodes prennant en compte l encapsulation ainsi qu une notation Object-Centred pour l environnement de développement.
Discussion 1 Introduction Contexte Cecil 2 Résolution des ambiguïtés Encapsulation Langage Object-Centred Future Work Related Work Conclusion 3 Discussion 4 Bibliographie
Discussion Discussion + - Présentation d un nouveau concept permettant d utiliser les multi-méthodes dans un contexte Orienté Objet ou Object Centred Organisation un peu bancale Explications quelques fois obscures ou incomplètes Pas d implémentation
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
The End! Merci de votre attention!