LEESA: Embedding Strategic and XPath-Like Object Structure Traversals in C++

  • Authors:
  • Sumant Tambe;Aniruddha Gokhale

  • Affiliations:
  • Electrical Engineering and Computer Science Department, Vanderbilt University, Nashville, USA;Electrical Engineering and Computer Science Department, Vanderbilt University, Nashville, USA

  • Venue:
  • DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.