Flexible Object Layouts: enabling lightweight language extensions by intercepting slot access

Abstract : Programming idioms, design patterns and application li- braries often introduce cumbersome and repetitive boiler- plate code to a software system. Language extensions and external DSLs (domain specific languages) are sometimes introduced to reduce the need for boilerplate code, but they also complicate the system by introducing the need for lan- guage dialects and inter-language mediation. To address this, we propose to extend the structural reflec- tive model of the language with object layouts, layout scopes and slots. Based on the new reflective language model we can 1) provide behavioral hooks to object layouts that are triggered when the fields of an object are accessed and 2) simplify the implementation of state-related language exten- sions such as stateful traits. By doing this we show how many idiomatic use cases that normally require boilerplate code can be more effectively supported. We present an implementation in Smalltalk, and illustrate its usage through a series of extended examples.
Type de document :
Communication dans un congrès
Proceedings of 26th International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA '11), Nov 2011, Portland, United States. 2011
Liste complète des métadonnées

Littérature citée [22 références]  Voir  Masquer  Télécharger

https://hal.inria.fr/hal-00641716
Contributeur : Lse Lse <>
Soumis le : mercredi 16 novembre 2011 - 14:51:05
Dernière modification le : jeudi 11 janvier 2018 - 06:22:25
Document(s) archivé(s) le : lundi 5 décembre 2016 - 10:15:38

Fichier

Verw11b-OOSPLA11-FlexibleObjec...
Fichiers éditeurs autorisés sur une archive ouverte

Identifiants

  • HAL Id : hal-00641716, version 1

Citation

Toon Verwaest, Camillo Bruni, Mircea Lungu, Oscar Nierstrasz. Flexible Object Layouts: enabling lightweight language extensions by intercepting slot access. Proceedings of 26th International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA '11), Nov 2011, Portland, United States. 2011. 〈hal-00641716〉

Partager

Métriques

Consultations de la notice

298

Téléchargements de fichiers

347