runtime evolution

45
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.

Upload: jorge-ressia

Post on 03-Jul-2015

1.713 views

Category:

Documents


0 download

DESCRIPTION

Paper presentation at Models@runtime 2010

TRANSCRIPT

Page 1: Runtime evolution

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.

Page 2: Runtime evolution

Tuesday, October 5, 2010

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

Page 3: Runtime evolution

Instrospection

Tuesday, October 5, 2010

Query

Page 4: Runtime evolution

Intercession

Tuesday, October 5, 2010

Modify

Page 5: Runtime evolution

Structural Reflection

Tuesday, October 5, 2010

Page 6: Runtime evolution

ClassesObjectsMethods

InstructionsInstance Variables

Tuesday, October 5, 2010

Page 7: Runtime evolution

That is not enough

Tuesday, October 5, 2010

Page 8: Runtime evolution

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

Page 9: Runtime evolution

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.

Page 10: Runtime evolution

Behavioral Reflection

Smith1982

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.

Page 11: Runtime evolution

Message SendMessage ReceiveMethod LookupObject Creation

State Read/Write

Tuesday, October 5, 2010

Page 12: Runtime evolution

Tuesday, October 5, 2010

Page 13: Runtime evolution

CodAMcAffer 1995

Tuesday, October 5, 2010

Page 14: Runtime evolution

Is that all?

Tuesday, October 5, 2010

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

Page 15: Runtime evolution

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.

Page 16: Runtime evolution

To enab le run t ime change we must reify Meta-objects explicitely

Thesis

Tuesday, October 5, 2010

Page 17: Runtime evolution

Albedo

Tuesday, October 5, 2010

Page 18: Runtime evolution

Structural Meta-objects

Behavioral Meta-objects

Albedo

Tuesday, October 5, 2010

Page 19: Runtime evolution

Structural Meta-Object

Tuesday, October 5, 2010

Page 20: Runtime evolution

add methodremove method

add stateremove state

Tuesday, October 5, 2010

Page 21: Runtime evolution

Object

Class

Tuesday, October 5, 2010

- Removing accessors.

Page 22: Runtime evolution

Object

Meta-object

Class

Tuesday, October 5, 2010

- Removing accessors.

Page 23: Runtime evolution

BehavioralMeta-Object

Tuesday, October 5, 2010

Page 24: Runtime evolution

message sendmessage received

state writestate read

object creation

Tuesday, October 5, 2010

Page 25: Runtime evolution

Object

Class

Tuesday, October 5, 2010

Method Look up

Page 26: Runtime evolution

Object

Meta-object

Class

Tuesday, October 5, 2010

Method Look up

Page 27: Runtime evolution

Object

Meta-object

Class

Object

M

Tuesday, October 5, 2010

Method Look up

Page 28: Runtime evolution

Composables

Tuesday, October 5, 2010

Page 29: Runtime evolution

Object Object

Tuesday, October 5, 2010

Page 30: Runtime evolution

Object Object

Meta-object

Tuesday, October 5, 2010

Page 31: Runtime evolution

Object Object

Meta-object

Meta-object

Tuesday, October 5, 2010

Page 32: Runtime evolution

Object ObjectMeta-object

Meta-object

Meta-object

Tuesday, October 5, 2010

Page 33: Runtime evolution

Reusable

Tuesday, October 5, 2010

Page 34: Runtime evolution

Object

ObjectObject

Meta-objects

Tuesday, October 5, 2010

Page 35: Runtime evolution

Object

Object

ObjectObject

Meta-objects

Tuesday, October 5, 2010

Page 36: Runtime evolution

Object

Object

ObjectObject

Object

Meta-objects

Tuesday, October 5, 2010

Page 37: Runtime evolution

Extensible

Tuesday, October 5, 2010

Page 38: Runtime evolution

Partial Behavioral Reflection

Tuesday, October 5, 2010

Page 39: Runtime evolution

Partial Behavioral Reflection

ReflexTanter 2003

Tuesday, October 5, 2010

Page 40: Runtime evolution

Partial Behavioral Reflection

ReflexTanter 2003

Reflectivity

Denker 2008

Tuesday, October 5, 2010

Page 41: Runtime evolution

AST

Tuesday, October 5, 2010

Examples?

Page 42: Runtime evolution

AST

Tuesday, October 5, 2010

Examples?

Page 43: Runtime evolution

AST

Tuesday, October 5, 2010

Examples?

Page 44: Runtime evolution

Conclusions

Tuesday, October 5, 2010

- runtime- flexible- object oriented- dynamic- a Model that we can reflect upon.

Page 45: Runtime evolution

Albedohttp://scg.unibe.ch/research/Albedo

Tuesday, October 5, 2010