Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Building program optimizers with rewriting strategies
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
A language for specifying recursive traversals of object structures
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
Dr. Dobb's Journal
Visitor combination and traversal control
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
Computer
IEEE Internet Computing
Strategic programming meets adaptive programming
Proceedings of the 2nd international conference on Aspect-oriented software development
Typed Combinators for Generic Traversal
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
An Examination of DSLs for Concisely Representing Model Traversals and Transformations
HICSS '03 Proceedings of the 36th Annual Hawaii International Conference on System Sciences (HICSS'03) - Track 9 - Volume 9
Traversals of object structures: Specification and Efficient Implementation
ACM Transactions on Programming Languages and Systems (TOPLAS)
C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond (C++ in Depth Series)
A Platform-Independent Component Modeling Language for Distributed Real-Time and Embedded Systems
RTAS '05 Proceedings of the 11th IEEE Real Time on Embedded Technology and Applications Symposium
When and how to develop domain-specific languages
ACM Computing Surveys (CSUR)
Scrap++: scrap your boilerplate in C++
Proceedings of the 2006 ACM SIGPLAN workshop on Generic programming
Concepts: linguistic support for generic programming in C++
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Scrap your boilerplate with XPath-like combinators
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Transformation of structure-shy programs: applied to XPath queries and strategic functions
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Tom: piggybacking rewriting on java
RTA'07 Proceedings of the 18th international conference on Term rewriting and applications
Hi-index | 0.00 |
Traversals of heterogeneous object structures are the most common operations in schema-first applications where the three key issues are (1) separation of traversal specifications from type-specific actions, (2) expressiveness and reusability of traversal specifications, and (3) supporting structure-shy traversal specifications that require minimal adaptation in the face of schema evolution. This paper presents Language for Embedded quEry and traverSAl (LEESA), which provides a generative programming approach to address the above issues. LEESA is an object structure traversal language embedded in C++. Using C++ templates, LEESA combines the expressiveness of XPath's axes-oriented traversal notation with the genericity and programmability of Strategic Programming. LEESA uses the object structure meta-information to statically optimize the traversals and check their compatibility against the schema. Moreover, a key usability issue of domain-specific error reporting in embedded DSL languages has been addressed in LEESA through a novel application of Concepts , which is an upcoming C++ standard (C++0x) feature. We present a quantitative evaluation of LEESA illustrating how it can significantly reduce the development efforts of schema-first applications.