Ghost: A uniform and general-purpose proxy ...
Document type :
Article dans une revue scientifique
Title :
Ghost: A uniform and general-purpose proxy implementation
Author(s) :
Martinez Peck, Mariano [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Centre for Digital Systems [CERI SN - IMT Nord Europe]
Bouraqadi, Noury [Auteur]
Centre for Digital Systems [CERI SN - IMT Nord Europe]
Fabresse, Luc [Auteur]
Centre for Digital Systems [CERI SN - IMT Nord Europe]
Denker, Marcus [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Teruel, Camille [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Centre for Digital Systems [CERI SN - IMT Nord Europe]
Bouraqadi, Noury [Auteur]
Centre for Digital Systems [CERI SN - IMT Nord Europe]
Fabresse, Luc [Auteur]
Centre for Digital Systems [CERI SN - IMT Nord Europe]
Denker, Marcus [Auteur]

Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Teruel, Camille [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Journal title :
Science of Computer Programming
Special Issue on Advances in Dynamic Languages
Special Issue on Advances in Dynamic Languages
Pages :
339-359
Publisher :
Elsevier
Publication date :
2015-02-01
ISSN :
0167-6423
English keyword(s) :
Phaaro
Proxy
Message passing control
Smalltalk
Interception
Object-Oriented Programming and Design
Proxy
Message passing control
Smalltalk
Interception
Object-Oriented Programming and Design
HAL domain(s) :
Informatique [cs]/Langage de programmation [cs.PL]
English abstract : [en]
A proxy object is a surrogate or placeholder that controls access to another target object. Proxy objects are a widely used solution for different scenarios such as remote method invocation, future objects, behavioral ...
Show more >A proxy object is a surrogate or placeholder that controls access to another target object. Proxy objects are a widely used solution for different scenarios such as remote method invocation, future objects, behavioral reflection, object databases, inter-languages communications and bindings, access control, lazy or parallel evaluation, security, among others. Most proxy implementations support proxies for regular objects but are unable to create proxies for objects with an important role in the runtime infrastructure such as classes or methods. Proxies can be complex to install, they can have a significant overhead, they can be limited to certain kind of classes, etc. Moreover, proxy implementations are often not stratified and they do not have a clear separation between proxies (the objects intercepting messages) and handlers (the objects handling interceptions). In this paper, we present Ghost: a uniform and general-purpose proxy implementation for the Pharo programming language. Ghost provides low memory consuming proxies for regular objects as well as for classes and methods. When a proxy takes the place of a class, it intercepts both the messages received by the class and the lookup of methods for messages received by its instances. Similarly, if a proxy takes the place of a method, then the method execution is intercepted too.Show less >
Show more >A proxy object is a surrogate or placeholder that controls access to another target object. Proxy objects are a widely used solution for different scenarios such as remote method invocation, future objects, behavioral reflection, object databases, inter-languages communications and bindings, access control, lazy or parallel evaluation, security, among others. Most proxy implementations support proxies for regular objects but are unable to create proxies for objects with an important role in the runtime infrastructure such as classes or methods. Proxies can be complex to install, they can have a significant overhead, they can be limited to certain kind of classes, etc. Moreover, proxy implementations are often not stratified and they do not have a clear separation between proxies (the objects intercepting messages) and handlers (the objects handling interceptions). In this paper, we present Ghost: a uniform and general-purpose proxy implementation for the Pharo programming language. Ghost provides low memory consuming proxies for regular objects as well as for classes and methods. When a proxy takes the place of a class, it intercepts both the messages received by the class and the lookup of methods for messages received by its instances. Similarly, if a proxy takes the place of a method, then the method execution is intercepted too.Show less >
Language :
Anglais
Peer reviewed article :
Oui
Audience :
Internationale
Popular science :
Non
Collections :
Source :
Files
- https://hal.inria.fr/hal-01081236/document
- Open access
- Access the document
- https://hal.inria.fr/hal-01081236/document
- Open access
- Access the document
- https://hal.inria.fr/hal-01081236/document
- Open access
- Access the document