SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
Run-Time Evolution
                       through Explicit
                        Meta-Objects
                      Jorge Ressia, Lukas Renggli, Tudor Gîrba,
                                  Oscar Nierstrasz



Tuesday, October 5, 2010

To enable change at run-time, a system must be self-aware and be able to fully reflect on
itself.
Tuesday, October 5, 2010

To enable change at run-time, a system must be self-aware and be able to fully reflect on
itself.
Instrospection



Tuesday, October 5, 2010

Query
Intercession



Tuesday, October 5, 2010

Modify
Structural Reflection



Tuesday, October 5, 2010
Classes
                                Objects
                                Methods
                              Instructions
                           Instance Variables
Tuesday, October 5, 2010
That is not enough



Tuesday, October 5, 2010
Dynamic
                           Representation


Tuesday, October 5, 2010

We need to reflect on the dynamic representation of a program, that is, the operational
execution.
This is called Behavioral Reflection pioneered by Smith in the context of Lisp
Behavioral Reflection



Tuesday, October 5, 2010

Behavioral reflection provides a way to intercept and change the execution of a program. It is concerned with execution
events, i.e., method execution, message sends, or variable assignments.
Behavioral Reflection

                                                                                      S mith
                                                                                           1982



Tuesday, October 5, 2010

Behavioral reflection provides a way to intercept and change the execution of a program. It is concerned with execution
events, i.e., method execution, message sends, or variable assignments.
Message Send
                           Message Receive
                           Method Lookup
                           Object Creation
                           State Read/Write
Tuesday, October 5, 2010
Tuesday, October 5, 2010
odA 5
                           C 99    1
                           McAffer


Tuesday, October 5, 2010
Is that all?



Tuesday, October 5, 2010

It is not possible to foresee all potential reification that might be required at runtime.
What if we need a
                            new reification?


Tuesday, October 5, 2010

It is not possible to foresee all potential reification that might be required at runtime.
Thesis

                To e n a b l e r u n t i m e
                change we must reify
                Meta-objects explicitely


Tuesday, October 5, 2010
Albedo

Tuesday, October 5, 2010
Albedo
                 Structural   Behavioral
                Meta-objects Meta-objects


Tuesday, October 5, 2010
Structural
                           Meta-Object


Tuesday, October 5, 2010
add method
                           remove method
                               add state
                             remove state


Tuesday, October 5, 2010
Class




                            Object



Tuesday, October 5, 2010

- Removing accessors.
Class
                                     Meta-object




                            Object



Tuesday, October 5, 2010

- Removing accessors.
Behavioral
                           Meta-Object


Tuesday, October 5, 2010
message send
                           message received
                              state write
                              state read
                            object creation

Tuesday, October 5, 2010
Class




                            Object



Tuesday, October 5, 2010

Method Look up
Class
                                     Meta-object




                            Object



Tuesday, October 5, 2010

Method Look up
Class
                                     Meta-object




                                     M
                            Object
                                          Object


Tuesday, October 5, 2010

Method Look up
Composables



Tuesday, October 5, 2010
Object   Object




Tuesday, October 5, 2010
Meta-object




                     Object   Object




Tuesday, October 5, 2010
Meta-object




                                          Meta-object



                     Object   Object




Tuesday, October 5, 2010
Meta-object




                                          Meta-object



                     Object   Object
                                          Meta-object



Tuesday, October 5, 2010
Reusable



Tuesday, October 5, 2010
Meta-objects




                     Object




Tuesday, October 5, 2010
Meta-objects
                                             Object




                     Object




Tuesday, October 5, 2010
Meta-objects
                                             Object



                                                  Object




                     Object




Tuesday, October 5, 2010
Extensible



Tuesday, October 5, 2010
Partial Behavioral
                              Reflection


Tuesday, October 5, 2010
Partial Behavioral
                              Reflection
                                         eflex
                                        R 003  2
                                        Tanter




Tuesday, October 5, 2010
Partial Behavioral
                              Reflection
                                         eflex
                                        R 003  2
                                        Tanter



                                       R eflec tivity
                                          Denker 2008



Tuesday, October 5, 2010
AST
Tuesday, October 5, 2010

Examples?
AST
Tuesday, October 5, 2010

Examples?
AST
Tuesday, October 5, 2010

Examples?
Conclusions



Tuesday, October 5, 2010

- runtime
- flexible
- object oriented
Albedo
                    http://scg.unibe.ch/research/Albedo




Tuesday, October 5, 2010

Mais conteúdo relacionado

Semelhante a Run-Time Evolution through Explicit Meta-Objects

Building Brilliant APIs
Building Brilliant APIsBuilding Brilliant APIs
Building Brilliant APIsbencollier
 
Successful development without QA
Successful development without QASuccessful development without QA
Successful development without QAPavel Gabriel
 
T-DOSE 2010 - Agile Enterprise, CLouds and Devops
T-DOSE 2010 - Agile Enterprise, CLouds and DevopsT-DOSE 2010 - Agile Enterprise, CLouds and Devops
T-DOSE 2010 - Agile Enterprise, CLouds and DevopsChef Software, Inc.
 
DOTT Cornwall - Introduction to Service Design and Methods
DOTT Cornwall - Introduction to Service Design and MethodsDOTT Cornwall - Introduction to Service Design and Methods
DOTT Cornwall - Introduction to Service Design and MethodsAndy Polaine
 
What's with an image?
What's with an image? What's with an image?
What's with an image? Terri Sallee
 
Badges101webinar mozilla slides_v1.0
Badges101webinar mozilla slides_v1.0Badges101webinar mozilla slides_v1.0
Badges101webinar mozilla slides_v1.0Erin Knight
 
Memory
MemoryMemory
MemoryLisa
 
Dweck study
Dweck studyDweck study
Dweck studyoccam98
 

Semelhante a Run-Time Evolution through Explicit Meta-Objects (10)

Building Brilliant APIs
Building Brilliant APIsBuilding Brilliant APIs
Building Brilliant APIs
 
Successful development without QA
Successful development without QASuccessful development without QA
Successful development without QA
 
T-DOSE 2010 - Agile Enterprise, CLouds and Devops
T-DOSE 2010 - Agile Enterprise, CLouds and DevopsT-DOSE 2010 - Agile Enterprise, CLouds and Devops
T-DOSE 2010 - Agile Enterprise, CLouds and Devops
 
DOTT Cornwall - Introduction to Service Design and Methods
DOTT Cornwall - Introduction to Service Design and MethodsDOTT Cornwall - Introduction to Service Design and Methods
DOTT Cornwall - Introduction to Service Design and Methods
 
What's with an image?
What's with an image? What's with an image?
What's with an image?
 
Badges101webinar mozilla slides_v1.0
Badges101webinar mozilla slides_v1.0Badges101webinar mozilla slides_v1.0
Badges101webinar mozilla slides_v1.0
 
Memory
MemoryMemory
Memory
 
Why Git
Why  GitWhy  Git
Why Git
 
Dweck study
Dweck studyDweck study
Dweck study
 
Noboxing plugin
Noboxing pluginNoboxing plugin
Noboxing plugin
 

Mais de Jorge Ressia

Object-Centric Reflection - Thesis Defense
Object-Centric Reflection - Thesis DefenseObject-Centric Reflection - Thesis Defense
Object-Centric Reflection - Thesis DefenseJorge Ressia
 
Object-Centric Reflection - ESUG 2012
Object-Centric Reflection - ESUG 2012Object-Centric Reflection - ESUG 2012
Object-Centric Reflection - ESUG 2012Jorge Ressia
 
Object-Centric Debugging
Object-Centric DebuggingObject-Centric Debugging
Object-Centric DebuggingJorge Ressia
 
SDE - Dynamic Analysis
SDE - Dynamic AnalysisSDE - Dynamic Analysis
SDE - Dynamic AnalysisJorge Ressia
 
Bifrost: Setting Smalltalk Loose
Bifrost: Setting Smalltalk LooseBifrost: Setting Smalltalk Loose
Bifrost: Setting Smalltalk LooseJorge Ressia
 
Talents Presentation at ESUG 2011
Talents Presentation at ESUG 2011Talents Presentation at ESUG 2011
Talents Presentation at ESUG 2011Jorge Ressia
 
Domain-Specific Profiling - TOOLS 2011
Domain-Specific Profiling - TOOLS 2011Domain-Specific Profiling - TOOLS 2011
Domain-Specific Profiling - TOOLS 2011Jorge Ressia
 
Subjectopia tools2011
Subjectopia tools2011Subjectopia tools2011
Subjectopia tools2011Jorge Ressia
 
Advanced OO Design
Advanced OO DesignAdvanced OO Design
Advanced OO DesignJorge Ressia
 
05 Problem Detection
05 Problem Detection05 Problem Detection
05 Problem DetectionJorge Ressia
 

Mais de Jorge Ressia (11)

Object-Centric Reflection - Thesis Defense
Object-Centric Reflection - Thesis DefenseObject-Centric Reflection - Thesis Defense
Object-Centric Reflection - Thesis Defense
 
Object-Centric Reflection - ESUG 2012
Object-Centric Reflection - ESUG 2012Object-Centric Reflection - ESUG 2012
Object-Centric Reflection - ESUG 2012
 
Object-Centric Debugging
Object-Centric DebuggingObject-Centric Debugging
Object-Centric Debugging
 
SDE - Dynamic Analysis
SDE - Dynamic AnalysisSDE - Dynamic Analysis
SDE - Dynamic Analysis
 
Bifrost: Setting Smalltalk Loose
Bifrost: Setting Smalltalk LooseBifrost: Setting Smalltalk Loose
Bifrost: Setting Smalltalk Loose
 
Talents Presentation at ESUG 2011
Talents Presentation at ESUG 2011Talents Presentation at ESUG 2011
Talents Presentation at ESUG 2011
 
Domain-Specific Profiling - TOOLS 2011
Domain-Specific Profiling - TOOLS 2011Domain-Specific Profiling - TOOLS 2011
Domain-Specific Profiling - TOOLS 2011
 
Subjectopia tools2011
Subjectopia tools2011Subjectopia tools2011
Subjectopia tools2011
 
Advanced OO Design
Advanced OO DesignAdvanced OO Design
Advanced OO Design
 
Opal compiler
Opal compilerOpal compiler
Opal compiler
 
05 Problem Detection
05 Problem Detection05 Problem Detection
05 Problem Detection
 

Run-Time Evolution through Explicit Meta-Objects