Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
CommonLoops: merging Lisp and object-oriented programming
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
PCLOS: stress testing CLOS experiencing the metaobject protocol
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
User-level language crafting: introducing the CLOS metaobject protocol
Object-oriented programming
JavaScript (2nd ed.): the definitive guide
JavaScript (2nd ed.): the definitive guide
Modular Domain Specific Languages and Tools
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Traits: A mechanism for fine-grained reuse
ACM Transactions on Programming Languages and Systems (TOPLAS)
LINQ: reconciling object, relations and XML in the .NET framework
Proceedings of the 2006 ACM SIGMOD international conference on Management of data
A Java code annotation approach for model checking software systems
Proceedings of the 2007 ACM symposium on Applied computing
Executable Grammars in Newspeak
Electronic Notes in Theoretical Computer Science (ENTCS)
Stateful traits and their formalization
Computer Languages, Systems and Structures
Persistence in the enterprise: a guide to persistence technologies
Persistence in the enterprise: a guide to persistence technologies
Software hardening: a research agenda
Proceedings for the 1st workshop on Script to Program Evolution
Embedding languages without breaking tools
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
First-class relationships in an object-oriented language
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Magritte: a meta-driven approach to empower developers and end users
MODELS'07 Proceedings of the 10th international conference on Model Driven Engineering Languages and Systems
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
Hi-index | 0.00 |
Programming idioms, design patterns and application libraries often introduce cumbersome and repetitive boilerplate 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 language dialects and inter-language mediation. To address this, we propose to extend the structural reflective 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 extensions 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.