LEESA: Embedding Strategic and XPath-Like Object Structure Traversals in C++
نویسندگان
چکیده
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 metainformation to statically optimize the traversals and check their compatibility against the schema. Moreover, a key usability issue of domainspecific 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.
منابع مشابه
An Embedded Declarative Language for Hierarchical Object Structure Traversal
A common challenge in processing large domain-specific models and in-memory object structures (e.g., complex XML documents) is writing traversals and queries on them. Object-oriented (OO) designs, particularly those based on the Visitor pattern, are commonly used for developing traversals. However, such OO designs limit the reusability and independent evolution of visitation actions (i.e., the ...
متن کاملA bi-labeling based XPath processing system
We present BLAS, a Bi-LAbeling based XPath processing System. BLAS uses two labeling schemes to speed up query processing: P-labeling for processing consecutive child (or parent) axis traversals, and D-labeling for processing descendant (or ancestor) axis traversals. XML data are stored in labeled form and indexed. Algorithms are presented for translating XPath queries to SQL expressions. BLAS ...
متن کاملAn Extended Preorder Index for Optimising XPath Expressions
Many of the problems with native XML databases relate to query performance and subsequently, it can be difficult to convince traditional database users of the benefits of using semior unstructured databases. Presently, there still lacks an index structure providing efficient support for structural queries and the traditional data-centric and content queries. This paper presents an extended inde...
متن کاملSPath: an extensible query-language for Scala
Scala combines the functional and object-oriented paradigms and is good at supporting embedded domain-specific languages. Scala presents therefore an opportunity for designing a new kind of query-language that belongs to the family of XPath-like query-languages, for querying semistructured data that is stored within internal memory. In the terminology of XPath, a relation between the nodes of a...
متن کاملOptimizing Object-Oriented Collection Join Queries through Path Traversals
Path traversals have been recognized as one of the strengths of object-oriented query processing as object retrieval can be carried out through pointer navigation. Apart from path traversals, explicit join between objects is sometimes necessary in Object-Oriented Databases (OODB), due to the absence of pointer connections or the need for value matching between objects. Like in Relational Databa...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2009