the proceedings contain 30 papers. the topics discussed include: object-oriented reengineering patterns - an overview;certifiable program generation;efficient code generation for a domain specific language;Bossa Nova:...
详细信息
ISBN:
(纸本)3540291385
the proceedings contain 30 papers. the topics discussed include: object-oriented reengineering patterns - an overview;certifiable program generation;efficient code generation for a domain specific language;Bossa Nova: introducing modularity into the Bossa domain-specific language;model compiler construction based on aspect-oriented mechanisms;shadow programming: reasoning about programs using Lexical join point information;generalized type-based disambiguation of meta programs with concrete object syntax;semi-inversion of guarded equations;a generativeprogramming approach to interactive information retrieval: insights and experiences;and optimizing marshalling by run-time program generation.
component-oriented programming yields a tension between higher-order features (deployment, reconfiguration, passivation), encapsulation, and component sharing. We propose a discipline for component-oriented programmin...
详细信息
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.
abc is an extensible, optimising compiler for AspectJ. It has been designed as a workbench for experimental research in aspect-oriented programming languages and compilers. We outline a programme of research in these ...
详细信息
this paper presents AOP++, a generic aspect-oriented programming framework in C++. It successfully incorporates AOP with object-oriented programming as well as generic programming naturally in the framework of standar...
详细信息
the C Preprocessor (CPP) is the tool of choice for the implementation of variability in many large-scale configurable software projects. Linux, probably the most-configurable piece of software ever, employs more than ...
详细信息
ISBN:
(纸本)9781450301541
the C Preprocessor (CPP) is the tool of choice for the implementation of variability in many large-scale configurable software projects. Linux, probably the most-configurable piece of software ever, employs more than 10,000 preprocessor variables for this purpose. However, this de-facto variability tends to be "hidden in the code";which on the long term leads to variability defects, such as dead code or inconsistencies with respect to the intended (modeled) variability of the software. this calls for tool support for the efficient extraction of (and reasoning over) CPP-based variability. We suggest a novel approach to extract CPP-based variability. Our tool transforms CPP-based variability in O(n) complexity into a propositional formula that "mimics" all valid effects of conditional compilation and can be analyzed with standard SAT or BDD packages. Our evaluation results demonstrate the scalability and practicability of the approach. A dead-block-analysis on the complete Linux source tree takes less than 30 minutes;we thereby have revealed 60 dead blocks, 2 of which meanwhile have been confirmed as new (and long-lasting) bugs;the rest is still under investigation.
In this paper we describe a type system for a generative mechanism that generalizes the concept of generic types by combining it with a controlled form of reflection. this mechanism makes many code generation tasks po...
详细信息
ISBN:
(纸本)3540291385
In this paper we describe a type system for a generative mechanism that generalizes the concept of generic types by combining it with a controlled form of reflection. this mechanism makes many code generation tasks possible for which generic types alone would be insufficient. the power of code generation features are carefully balanced withtheir safety, so that we axe able to perform static type checks on generator code. this leads to a generalized notion of type safety for generators.
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.
In this paper, we show how to combine a component system and a macro system. A component system separates the definition of a program fragment from the statements that link it, enabling independent compilation of the ...
详细信息
ISBN:
(纸本)3540291385
In this paper, we show how to combine a component system and a macro system. A component system separates the definition of a program fragment from the statements that link it, enabling independent compilation of the fragment. A macro system, in contrast, relies on explicit links among fragments that import macros, since macro expansion must happen at compile time. Our combination places macro definitions inside component signatures, thereby permitting macro expansion at compile time, while still allowing independent compilation and linking for the run-time part of components.
We present a domain-specific-language (DSL) for writing instances of a class of filter programs. the values in the language are symbolic and independent of a concrete precision. Efficient code generation is required t...
详细信息
ISBN:
(纸本)3540291385
We present a domain-specific-language (DSL) for writing instances of a class of filter programs. the values in the language are symbolic and independent of a concrete precision. Efficient code generation is required to fit the program onto a target device limited in both memory and processing power. We construct an interpreter for the DSL in a language specific to the device which contains the semantics of the target instruction set embedded within a declarative meta-language. the compiler is automatically generated from the interpreter through specialisation. this extension of the instruction set allows the construction of an interpreter for the DSL that is both simple and clear. In particular it allows us to declare static representations of the symbolic values, and have the specialisation of the code produce operate upon these values in the instruction set of the target device.
暂无评论