Domain-specific languages (DSL) provides high-level functions making applications easier to write, and to maintain. Unfortunately, many applications axe written from scratch and poorly documented, which make them hard...
详细信息
ISBN:
(纸本)3540291385
Domain-specific languages (DSL) provides high-level functions making applications easier to write, and to maintain. Unfortunately, many applications axe written from scratch and poorly documented, which make them hard to maintain. An ideal solution should be to rewrite them in a appropriate DSL. In this paper, we present TeMa (Template Matcher), an automatic tool to recognize high-level functions in source code. Preliminary results show how TeMa can be used to reformulate Fortran code into Signal Processing Language (SPL) used in SPIRAL. this opens new possibilities for domain-specific languages.
the proceedings contain 31 papers. the topics discussed include: staging static analyses for program generation;a multi-stage language with intentional analysis;assimilating MetaBorg: embedding language tools in langu...
详细信息
ISBN:
(纸本)1595932372
the proceedings contain 31 papers. the topics discussed include: staging static analyses for program generation;a multi-stage language with intentional analysis;assimilating MetaBorg: embedding language tools in languages;creating custom containers withgenerative techniques;safe component updates;application-specific foreign-interface generation;when to use features and aspects?: a case study;a dynamic aspect-oriented system for OS kernels;concurrent aspects;software extension and integration with type classes;flexible and efficient measurement of dynamic bytecode metrics;patches as better bug reports;feature refactoring a multi-representation program into a product line;refactoring product lines;verifying feature-based model templates against well-formedness OCL constraints;roadmap for enhanced languages and methods to aid verification;semantic reasoning about feature composition via multiple aspect-weavings;and distributed meta-programming.
Extending a programming language by new language constructs often implies extending its compiler by additional machinery. To reduce the complex interweaving of compiler and extension implementations we present a simpl...
详细信息
ISBN:
(纸本)3540291385
Extending a programming language by new language constructs often implies extending its compiler by additional machinery. To reduce the complex interweaving of compiler and extension implementations we present a simple and modular concept of lifting the often needed additional preprocessing out of the base compiler implementation. Avoiding the introduction of standalone tools, this preprocessor framework for extensions of Haskell is designed as a separate portable library of monadic preprocessing functions based on Template Haskell. Additional preprocessing passes expressed in this framework can then much easier be carried along the series of ever advancing base compiler versions. Taking Eden, a parallel programming extension of Haskell, as an example we show that besides achieving improved portability and reusability pass code sizes can be reduced considerably.
the expressiveness of AspectJ's dynamic join point model has been shown in many useful applications, while the static join point model (also called lexical shadows) has been studied less. We propose a notion of sh...
详细信息
ISBN:
(纸本)3540291385
the expressiveness of AspectJ's dynamic join point model has been shown in many useful applications, while the static join point model (also called lexical shadows) has been studied less. We propose a notion of shadow programmingthat exposes a program's adapted lexical shadow information to compile time language constructs to enable customized static analysis and more expressive join point selection mechanisms. In particular, within the framework of the AspectJ language and compiler, we have designed and implemented two compile time language constructs, called Statically Executable Advice and Pointcut Evaluator respectively, to show how the lexical shadow information can be used.
Enterprise distributed real-time and embedded (DRE) systems are increasingly being developed withthe use of component-based software techniques. Unfortunately, commonly used component middleware platforms provide lim...
详细信息
ISBN:
(纸本)9781450306898
Enterprise distributed real-time and embedded (DRE) systems are increasingly being developed withthe use of component-based software techniques. Unfortunately, commonly used component middleware platforms provide limited support for event-based publish/subscribe (pub/sub) mechanisms that meet both quality-of-service (QoS) and configurability requirements of DRE systems. On the other hand, although pub/sub technologies, such as OMG Data Distribution Service (DDS), support a wide range of QoS settings, the level of abstraction they provide make it hard to configure them due to the significant source-level configuration that must be hard-coded at compile time or tailored at run-time using proprietary, ad hoc configuration logic. Moreover, developers of applications using native pub/sub technologies must write large amounts of boilerplate "glue" code to support run-time configuration of QoS properties, which is tedious and error-prone. this paper describes a novel, generative approach that combines the strengths of QoS-enabled pub/sub middleware withcomponent-based middleware technologies. In particular, this paper describes the design and implementation of DDS4CIAO which addresses a number of inherent and accidental complexities in the DDS4CCM standard. DDS4CIAO simplifies the development, deployment, and configuration of component-based DRE systems that leverage DDS's powerful QoS capabilities by provisioning DDS QoS policy settings and simplifying the development of DDS applications.
the development of embedded Systems becomes more and more complex. Model driven engineering can help to manage this complexity by specifying real-time properties in a declarative way and automating the deployment. the...
详细信息
ISBN:
(纸本)9781605584942
the development of embedded Systems becomes more and more complex. Model driven engineering can help to manage this complexity by specifying real-time properties in a declarative way and automating the deployment. the UML profile MARTE is a OMG standard that allows to model real-time properties. However, there is no execution infrastructure that supports MARTE's generic component model (GCM) and the application modeling (HLAM). the contribution of the paper is twofold: it presents a proposition of a component model with flexible interaction support that allows to tailor code generation to domain and target requirements. Second, it will show how MARTE's GCM concepts can be implemented by means of the proposed component model. the proposed component model has been largely developed in the context of the French national project Flex-eWare withthe intention to unify major components model, notably the CORBA component model (CCM) and Fractal. the paper explains the major elements of this model in detail and shows how specific connector and containers can implement MARTE specifications. We present the tool support that is integrated into a UML modeler and based on model-to- model and model to text transformations.
We describe the application of generativeprogramming to a problem in interactive information retrieval. the particular interactive information retrieval problem we study is the support for 'out of turn interactio...
详细信息
ISBN:
(纸本)3540291385
We describe the application of generativeprogramming to a problem in interactive information retrieval. the particular interactive information retrieval problem we study is the support for 'out of turn interaction' with a website - how a user can communicate input to a website when the site is not soliciting such information on the current. page, but will do so on a subsequent page. Our solution approach makes generous use of program transformations (partial evaluation, currying, and slicing) to delay the site's current solicitation for input until after the user's out-of-turn input is processed. We illustrate how studying out-of-turn interaction through a generative lens leads to several valuable insights: (i) the concept of a web dialog, (ii) an improved understanding of web taxonomies, and (iii) new web interaction techniques and interfaces. these notions allow us to cast-the design of interactive (and responsive) websites in terms of the underlying dialog structure and, further, suggest a simple implementation strategy with a clean separation of concerns. We also highlight new research directions opened up by the generativeprogramming approach to interactive information retrieval such as the idea of web interaction axioms.
Modeling software systems as component & connector architectures with application-specific behavior modeling languages enables domain experts to describe each component behavior withthe most appropriate language....
详细信息
ISBN:
(纸本)9781450336871
Modeling software systems as component & connector architectures with application-specific behavior modeling languages enables domain experts to describe each component behavior withthe most appropriate language. Generating executable systems for such language aggregates requires composing appropriate code generators for the participating languages. Previous work on code generator composition either focuses on white-box integration based on code generator internals or requires extensive handcrafting of integration code. We demonstrate an approach to black-box generator composition for architecture description languages that relies on explicit interfaces and exploits the encapsulation of components. this approach is implemented for the architecture modeling framework MontiArcAutomaton and has been evaluated in various contexts. Ultimately, black-box code generator composition facilitates development of code generators for architecture description languages with embedded behavior languages and increases code generator reuse.
Software product lines (SPLs) and adaptive systems aim at variability to cope with changing requirements. Variability can be described in terms of features, which are central for development and configuration of SPLs....
详细信息
ISBN:
(纸本)9781450306898
Software product lines (SPLs) and adaptive systems aim at variability to cope with changing requirements. Variability can be described in terms of features, which are central for development and configuration of SPLs. In traditional SPLs, features are bound statically before runtime. By contrast, adaptive systems support feature binding at runtime and are sometimes called dynamic SPLs (DSPLs). DSPLs are usually built from coarse-grained components, which reduces the number of possible application scenarios. To overcome this limitation, we closely integrate static binding of traditional SPLs and runtime adaptation of DSPLs. We achieve this integration by statically generating a tailor-made DSPL from a highly customizable SPL. the generated DSPL provides only the runtime variability required by a particular application scenario and the execution environment. the DSPL supports self-configuration based on coarse-grained modules. We provide a feature-based adaptation mechanism that reduces the effort of computing an optimal configuration at runtime. In a case study, we demonstrate the practicability of our approach and show that a seamless integration of static binding and runtime adaptation reduces the complexity of the adaptation process.
the evolution of a software framework may invalidate existing plugins - modules that used one of its previous versions. To preserve binary compatibility (i.e., plugins will link and run with a new framework release wi...
详细信息
暂无评论