choose-news@iam.unibe.ch is a *moderated* mailing list for announcing non-commercial events related to Object Technology in Switzerland. Please send announcements to be posted to: choose-news@iam.unibe.ch To unsubscribe, please send the message "unsubscribe choose-news" to: Majordomo@iam.unibe.ch To learn more about SI and CHOOSE, see: http://www.iam.unibe.ch/CHOOSE/
Das Informatikkolloquium im Sommersemester 2003 - eine Veranstaltung des IAM mit Unterstützung der Hasler Stiftung ------------------------------------------------------------------
Einladung zum nächsten Vortrag:
Dienstag, 17. Juni 2003, 17.30 Uhr in der Uni Engehalde, Engehaldenstrasse 8, 3012 Bern Hörsaal 001 (1.UG)
Referent: Dr. Noury Bouraqadi Computer Science Lab, Ecole des Mines of Douai (France) Thema: Metaclass Composition in MetaclassTalk
Abstract:
Reflection is the ability of a system to reason and to act upon itself. A programming language is said to be reflective if it allows developers to alter its own semantics and the set of its own constructs. For this purpose, constructs of a reflective language and its evaluation mechanisms are ``reified''. That is, they are made explicit to allow developers handle them. In the context of object oriented languages, reification leads to representing such entities as full fledged objects available at run-time. For example, reification of methods and classes make them available as objects to developers. So, methods and classes can be handled (e.g. receive messages) likewise plain objects.
Since every object is instance of some class, reified classes are instances of other classes named ``metaclasses''. Metaclasses are useful to define new class properties and hence make new kinds of classes. An example of a class property is having a sole instance. This property corresponds to the Singleton design pattern. Another example of class property is multiple inheritance. In a language which provides single inheritance, metaclasses can be used to build classes with multiple superclasses. Metaclasses allows defining a variety of class properties. And, of course, a single class can have different properties (e.g. singleton + multiple inheritance). Therefore, we need to somehow compose metaclasses defining these properties.
In this talk, we focus on mixin-based inheritance and how it applies for metaclass composition. Mixin-based inheritance was introduced by Bracha and Cook as an alternative to both single and multiple inheritance. Contrary to single inheritance, mixin-based inheritance allows making some classes (named mixins) participate to different inheritance hierarchies. And contrary to multiple-inheritance, mixin-based inheritance avoids undesirable behavior resulting from automatic linearization. Experiments related to our work on mixins were done using a reflective extension of Smalltalk named MetaclassTalk (http://csl.ensm-douai.fr/MetaclassTalk). Besides allowing developers change program evaluation, MetaclassTalk also supports metaclass programming. We show how we implemented mixin-based inheritance using MetaclassTalk metaclasses, and how we took benefit from MetaclassTalk reflectivity to compose metaclasses using mixins.