P' CointeT' LedouxJ'M Menaud - PowerPoint PPT Presentation

1 / 16
About This Presentation
Title:

P' CointeT' LedouxJ'M Menaud

Description:

R flexion et Jonathan. Evaluation partielle et Java (th se de M. Braux/J. Noy ) ... R flexion et programmation. Langages objets. Protocoles de m ta-objets ... – PowerPoint PPT presentation

Number of Views:16
Avg rating:3.0/5.0
Slides: 17
Provided by: gatewayl5
Category:

less

Transcript and Presenter's Notes

Title: P' CointeT' LedouxJ'M Menaud


1
ESLO/OCM Infrastructure rƩflexive Ơ composants
rƩpartis
  • P. Cointe/T. Ledoux/J.M Menaud
  • ._at_emn.fr

2
Classtalk un MOP pour Smalltalk
Classtalk
Smalltalk-80 Goldberg Robson 83
  • tout objet
  • mĆ©taclasses explicites
  • rĆ©ification de lenvoi de messages

ClassTalk Briot Cointe 89
CodA McAffer 1995
Sina Composition filters Aksit al. 1992
NeoClasstalk Rivard 97
  • contrĆ“le de lĆ©mission et de la rĆ©ception des
    messages
  • contrĆ“le des accĆØs Ć  la structure
  • contrĆ“le de lĆ©mission et de la rĆ©ception des
    messages
  • encapsulateurs des mĆ©thodes
  • changement dynamique de classe

MetaClassTalk Bouraqadi 99
  • compatibilitĆ© de mĆ©taclasses
  • composition des mĆ©taclasses/aspects

OpenCorba Ledoux 98
3
Java
  • Compilateur Java pour IBM/VisualAge (OTI, P.
    Mulet)
  • MOPs Java
  • ExpĆ©rimentations avec java.lang.reflect (JDK
    1.1/1.3)
  • Reflex migration (E. Tanter)
  • RAMeur mobilitĆ©/sĆ©curitĆ© (N. Bouraqadi/M.
    Sudholt)
  • ORBs adaptables
  • RĆ©flexion et Jonathan
  • Evaluation partielle et Java (thĆØse de M.
    Braux/J. NoyƩ)
  • Applications Ć  la serialization et Ć 
    lĀ invocation des mĆ©thodes distantes
  • Idiomes et Patterns Java (H. Albin/Amiot, Y.G.
    Gueheneuc)
  • Comment les rĆ©ifier au niveau du langage

4
Objectifs dans ARCAD
  • MOP Java incluant migration et sĆ©curitĆ©
  • middlewares rĆ©flexifs
  • Compilation par assemblage/tissage basĆ© sur
  • AOP pour la mĆ©thodologie
  • reflĆ©xivitĆ© et Ć©valuation partielle pour
    lĀ implĆ©mentation
  • RĆ©alisation dĀ une application adaptable mettant
    en uvre les PDA
  • RĆ©alisation dĀ une plate-forme de composition
    (projet IST EASYCOMP)

5
Three kinds of MOPs for Java
  • Compile time
  • reflect language constructs and based on source
    to source transformations
  • in general per class basis
  • OpenC/OpenJava, Reflective Java
  • Load time
  • reflect on the byte code and based on
    ClassLoaderA specialization
  • in general per class basis
  • wrappers and the Self problem
  • does not go against the late binding semantics of
    Java
  • Dalang/Kava, JavaAssist
  • Run time
  • modification of the VM (with a dynamic library)
    to intercept message sends
  • can be per object basis
  • MetaJava/MetXa, GuaranĆ”(Kaffe), Iguana, RJava,
    ProActive

6
Architectures ouvertes pourquoi et comment ?
  • AdaptabilitĆ©/ExtensibilitĆ©/FlexibilitĆ©
  • Late binding/Choix tardifs
  • Forme vs Ouverture
  • Ouverture vs EfficacitĆ©
  • EfficacitĆ© vs GĆ©nĆ©ricitĆ©
  • InteropĆ©rabilitĆ©

7
Luvre ouverte/Opera Aperta(Umberto Eco62)
  • LĀ uvre dĀ art est un message fondamentalement
    ambigu, une pluralitƩ de signifiƩs qui coexistent
    en un seul signifiant.
  • Pour rĆ©aliser lĀ ambiguĆÆtĆ© comme valeur, les
    artistes contemporains ont souvent recours Ć  Ā l
    informel, au dĆ©sordre, Ć  lĀ indĆ©termination des
    rĆ©sultats. On est ainsi tentĆ© dĀ Ć©tablir une
    dialectique entre forme et ouverture, qui
    dƩterminerait dans quelles limites une uvre
    dart peut accentuer son ambiguĆÆtĆ© et dĆ©pendre de
    lĀ intervention active du spectateur sans perdre
    pour autant sa qualitƩ duvre. Il faut entendre
    par uvre un objet dotƩ de propriƩtƩs
    structurales qui permettent, mais aussi
    coordonnent, la succession des interprƩtations,
    lĀ Ć©volution des perspectives.

8
Architectures ouvertes pourquoi et comment ?
  • RĆ©flexion et programmation
  • Langages Ć  objets
  • Protocoles de mĆ©ta-objets
  • Base vs Meta
  • Programmation par aspects
  • Architectures Ć  mĆ©ta-niveaux
  • Crosscutting concernsĀ 
  • Intelligence collective
  • GranularitĆ© des composants

9
B.C. SmithĀ canonical definition of reflection
  • A processs integral ability to represent,
    operate on, otherwise deal with itself in the
    same way that it represents, operates and deals
    with its primary subject matter.
  • La capacitĆ© illimitĆ©e dun processus Ć  se
    reprĆ©senter et se manipuler lui-mĆŖme de la mĆŖme
    faƧon quil reprƩsente et manipule les entitƩs de
    son domaine dapplication premier.

10
Definitions Ć  la P. Maes (PhD thesis 87)
  • A Computational System is something that reasons
    ans acts upon some part of the world, called the
    domain of the system. The CS is implemented in
    the language defining its program.
  • A CS is causally connected to its domain if the
    system and its domain are linked in such a way
    that if one of the two changes, this leads to an
    effect upon the other.
  • A Meta System is a CS that has as its domain
    another CS, called its object-system.
  • Reflection is the process of reasoning about
    and/or acting upon oneself.
  • A Reflective System is a causally connected
    meta-system that has as object-system itself.

11
A causally connected computational system
Causally connected representation
SOME PART OF THE WORLD
Reasons about
and acts upon
12
A meta system
SOME PART OF THE WORLD
13
A reflective system
SOME PART OF THE WORLD
14
Recurrent questions when building a reflective
system (Ferber OOPSLA89)
  • What entities should be reified, transformed into
    something which can be manipulated at the
    meta-level ?
  • How is the causal link implemented ?
  • When does the system shift up to the meta-level?
  • How to deal with potential infinite regression
    (infinite tower of meta-levels) ?

15
Reflection and Object Oriented Languages
  • Encapsulating every pair (data, program) as an
    object,
  • Reifying program elements and state as first
    class objects,
  • Associating a metaobject (an executer or
    interpreter) to every object.

16
Questions ?
  • MVV et interopĆ©rabilitĆ©?
  • Encapsulateur/wrapper vs metaobject
  • Programmation par aspects
  • Comment trouver les aspects
  • Comment tisser les aspects
Write a Comment
User Comments (0)
About PowerShow.com