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 actions to be performed at each traversed node) due to tight coupling between the traversal logic and visitation actions, particularly when a variety of different traversals are needed. Code generators developed for traversal specification languages alleviate some of these problems but their high cost of development is often prohibitive. This paper presents Language for Embedded quEry and traverSAl (LEESA), which provides a generative programming approach for embedding object structure queries and traversal specifications within a host language, C++. By virtue of being declarative, LEESA significantly reduces the development cost of programs operating on complex object structures compared to the traditional techniques.
منابع مشابه
Declarative Semantics in Object-Oriented Software Development - A Taxonomy and Survey
One of the modern paradigms to develop an application is object oriented analysis and design. In this paradigm, there are several objects and each object plays some specific roles in applications. In an application, we must distinguish between procedural semantics and declarative semantics for their implementation in a specific programming language. For the procedural semantics, we can write a ...
متن کامل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. Th...
متن کاملThe Synchronous Approach to Designing Reactive Systems
Abstract. Synchronous programming is available through several formally defined languages having very different characteristics: ESTEREL is imperative, while LUSTRE and SIGNAL are declarative in style; STATECHARTS and ARGOS are graphical languages that allow one to program by constructing hierarchical automata. Our motivation for taking the synchronous design paradigm further, integrating imper...
متن کاملPractical Declarative Model Transformation with Tefkat
We present Tefkat, an implementation of a language designed speci cally for the transformation of MOF models using patterns and rules. The language adopts a declarative paradigm, wherein users may concern themselves solely with the relations between the models rather than needing to deal explicitly with issues such as order of rule execution and pattern searching/traversal of input models. In t...
متن کاملThe Synchronous Approach to Designing Reactive Systems
Synchronousprogramming is available through several formally defined languages having very different characteristics: ESTEREL is imperative, while LUSTRE and SIGNAL are declarative in style; STATECHARTS and ARGOS are graphical languages that allow one to program by constructing hierarchical automata. Our motivation for taking the synchronous design paradigm further, integrating imperative, decl...
متن کامل