2008
DOI: 10.1145/1379022.1375592
|View full text |Cite
|
Sign up to set email alerts
|

Expressive and safe static reflection with MorphJ

Abstract: Recently, language extensions have been proposed for Java and C# to support pattern-based reflective declaration. These extensions introduce a disciplined form of meta-programming and aspectoriented programming to mainstream languages: They allow members of a class (i.e., fields and methods) to be declared by statically iterating over and pattern-matching on members of other classes. Such techniques, however, have been unable to safely express simple, but common, idioms such as declaring getter and setter meth… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
12
0

Year Published

2009
2009
2015
2015

Publication Types

Select...
5
2
1

Relationship

0
8

Authors

Journals

citations
Cited by 15 publications
(12 citation statements)
references
References 20 publications
0
12
0
Order By: Relevance
“…• Finally, we can use any other implementation strategy, including runtime variability [44], sophisticated metaprogramming systems [26,31], and configuration management systems [10,32]. For most of these implementation mechanisms, no efficient means to type check all configurations is available yet.…”
Section: Abstraction From Variability Implementationmentioning
confidence: 99%
“…• Finally, we can use any other implementation strategy, including runtime variability [44], sophisticated metaprogramming systems [26,31], and configuration management systems [10,32]. For most of these implementation mechanisms, no efficient means to type check all configurations is available yet.…”
Section: Abstraction From Variability Implementationmentioning
confidence: 99%
“…C++ concepts add contracts to templates [7]. MorphJ statically verifies some contracts so that expanded code will not have name-resolution conflicts [11]. Quail checks types between SQL queries and the database system [24].…”
Section: Language-specific Safe Macro Systemsmentioning
confidence: 99%
“…In [20] the language MorphJ offers the mechanism of nested patterns to implement a form of "class morphing", which enables safe static reflection over members of a type, in order to generate new classes in a meta-programming style. Generic classes are used to abstract over the structure of methods in other classes and they can be type checked separately from the classes that instantiate it, in a type safe way.…”
Section: Related Workmentioning
confidence: 99%
“…Generic classes are used to abstract over the structure of methods in other classes and they can be type checked separately from the classes that instantiate it, in a type safe way. The main point of similarity between [20] and our approach is the aim of integrating abstraction linguistic constructs into mainstream languages with static typing. However, such constructs are at the class level in MorphJ, whereas they work dynamically at object composition level in CompObJ.…”
Section: Related Workmentioning
confidence: 99%