Results 1 -
5 of
5
Instant and Incremental QVT Transformation for Runtime Models
"... Abstract. As a dynamic representation of the running system, a runtime model provides a model-based interface to monitor and control the system. A key issue for runtime models is to maintain their causal connections with the running system. That means when the systems change, the runtime models that ..."
Abstract
- Add to MetaCart
Abstract. As a dynamic representation of the running system, a runtime model provides a model-based interface to monitor and control the system. A key issue for runtime models is to maintain their causal connections with the running system. That means when the systems change, the runtime models that are heterogeneous to their target systems, it is challenging to maintain such causal connections. This paper presents a model-transformation-based approach to maintaining causal connections for abstract runtime models. We define a new instant and incremental transformation semantics for the QVT-Relational language, according to the requirements of runtime models, and develop the transformation algorithm following this semantics. We implement this approach on the mediniQVT transformation engine, and apply it to provide the runtime model for an intelligent office system named SmartLab. 1
Three Complementary Approaches to Bidirectional Programming
"... Abstract. This paper surveys three distinct approaches to bidirectional programming. The first approach, syntactic bidirectionalization, takes a program describing the forward transformation as input and calculates a well-behaved reverse transformation. The second approach, semantic bidirectionaliza ..."
Abstract
- Add to MetaCart
Abstract. This paper surveys three distinct approaches to bidirectional programming. The first approach, syntactic bidirectionalization, takes a program describing the forward transformation as input and calculates a well-behaved reverse transformation. The second approach, semantic bidirectionalization, is similar, but takes the forward transformation itself as input rather than a program describing it. It requires the transformation to be a polymorphic function and uses parametricity and free theorems in the proof of well-behavedness. The third approach, based on bidirectional combinators, focuses on the use of types to ensure wellbehavedness and special constructs for dealing with alignment problems. In presenting these approaches, we pay particular attention to use of complements, which are structures that represent the information discarded by the transformation in the forward direction. 1
Edit Lenses
"... A lens is a bidirectional transformation between a pair of connected data structures, capable of translating an edit on one structure into an appropriate edit on the other. Many varieties of lenses have been studied, but none, to date, has offered a satisfactory treatment of how edits are represente ..."
Abstract
- Add to MetaCart
A lens is a bidirectional transformation between a pair of connected data structures, capable of translating an edit on one structure into an appropriate edit on the other. Many varieties of lenses have been studied, but none, to date, has offered a satisfactory treatment of how edits are represented. Many foundational accounts [5, 7] only consider edits of the form “overwrite the whole structure,” leading to poor behavior in many situations by failing to track the associations between corresponding parts of the structures when elements are inserted and deleted in ordered lists, for example. Other theories of lenses do maintain these associations, either by annotating the structures themselves with change information [6, 15] or using auxiliary data structures [2, 4], but every extant theory assumes that the entire original source structure is part of the information passed to the lens. We offer a general theory of edit lenses, which work with descriptions of changes to structures, rather than with the structures themselves. We identify a simple notion of “editable structure”—a set of states plus a monoid of edits with a partial monoid action on the states—and construct a semantic space of lenses between such structures, with natural laws governing their behavior. We show how a range of constructions from earlier papers on “statebased” lenses can be carried out in this space, including composition, products, sums, list operations, etc. Further, we show how to construct edit lenses for arbitrary containers in the sense of Abbott, Altenkirch, and Ghani [1]. Finally, we show that edit lenses refine a well-known formulation of state-based lenses [7], in the sense that every state-based lens gives rise to an edit lens over structures with a simple overwrite-only edit language, and conversely every edit lens on such structures gives rise to a state-based lens. 1.
www.informatik2011.de Towards Lenses for View Synchronization in Metamodel-Based Domain-Specific Workbenches Arif Wider
"... Abstract: Model-driven engineering (MDE) advocates the use of different domainspecific languages (DSLs) for describing different aspects of a system, which is called multi-view modeling or multimodeling. Existing metamodel-based technologies like Xtext provide good support for defining a DSL and for ..."
Abstract
- Add to MetaCart
Abstract: Model-driven engineering (MDE) advocates the use of different domainspecific languages (DSLs) for describing different aspects of a system, which is called multi-view modeling or multimodeling. Existing metamodel-based technologies like Xtext provide good support for defining a DSL and for creating a corresponding domainspecific workbench but do not support multimodeling, yet, i.e., they do not provide means to specify (non-bijective) relations between DSLs, so that models that are created using these DSLs are synchronized automatically. We present an approach to model synchronization that is based on asymmetric bidirectional transformations. Therefore, we implement lenses – a term-rewriting-based approach to bidirectional transformations – as an internal DSL in the Scala programming language and use lenses for model transformations. This way, our approach does not depend on special tool support and allows for seamless integration with Java-based MDE technologies. 1

