the abilities to extend a software module and to integrate a software module into an existing software system without changing existing source code are fundamental challenges in software engineering and programming-la...
详细信息
the proceedings contain 21 papers. the topics discussed include: generative metaprogramming;parsimony principles for software components and metalanguages;debugging macros;lightweight scalable components;constructing ...
详细信息
ISBN:
(纸本)9781595938558
the proceedings contain 21 papers. the topics discussed include: generative metaprogramming;parsimony principles for software components and metalanguages;debugging macros;lightweight scalable components;constructing language processors with algebra combinators;aspects of availability;refactoring-based support for binary compatibility in evolving frameworks;Repleo: a syntax-safe template engine;preventing injection attacks with syntax embeddings;context-aware scanning for parsing extensible languages;library composition and adaptation using C++ concepts;challenges in generating QoS-constrained software implementations;and safe composition of product lines.
this paper presents the definition of a language with reflection primitives. the language is a homogeneous multi-stage language that provides the capacity of code analysis by the inclusion of a pattern matching mechan...
详细信息
Modular Monadic Semantics (MMS) is a well-known mechanism for structuring modular denotational semantic definitions for programming languages. the principal attraction of MMS is that families of language constructs ca...
详细信息
Modular Monadic Semantics (MMS) is a well-known mechanism for structuring modular denotational semantic definitions for programming languages. the principal attraction of MMS is that families of language constructs can be independently specified and later combined in a mix-and-match fashion to create a complete language semantics. this has proved useful for constructing formal, yet executable, semantics when prototyping languages. In this work we demonstrate that MMS has an additional software engineering benefit. In addition to composing semantics for various language constructs, we can use MMS to compose various differing semantics for the same language constructs. this capability allows us to compose and reuse orthogonal language tasks such as type checking and compilation. We describe algebra combinators, the principal vehicle for achieving this reuse, along with a series of applications of the technique for common language processing tasks. (C) 2010 Elsevier B.V. All rights reserved.
Template languages are widely used within generativeprogramming, because they provide intuitive means to generate software artefacts expressed in a specific object language. However, most template languages perform t...
详细信息
ISBN:
(纸本)9781605584942
Template languages are widely used within generativeprogramming, because they provide intuitive means to generate software artefacts expressed in a specific object language. However, most template languages perform template instantiation on the level of string literals, which allows neither syntax checks nor semantics analysis. To make sure that generated artefacts always conform to the object language, we propose to perform static analysis at template design time. In addition, the increasing popularity of domain-specific languages (DSLs) demands an approach that allows to reuse boththe concepts of template languages and the corresponding tools. In this paper we address the issues mentioned above by presenting how existing languages can be automatically extended with generic template concepts (e.g., placeholders, loops, conditions) to obtain safe template languages. these languages provide means for syntax checking and static semantic analysis w.r.t. the object language at template design time. We discuss the prerequisites for this extension, analyse the types of correctness properties that can be assured at template design time, and exemplify the key benefits of this approach on a textual DSL and Java.
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.
programming in an open environment remains challenging because it requires combining modularity, security, concurrency, distribution, and dynamicity. In this paper, we propose an approach to open distributed programmi...
详细信息
the validation and verification of reliable systems is a difficult and complex task, mainly for two reasons: First, it is difficult to precisely state which formal properties a system needs to fulfil to be of high qua...
详细信息
ISBN:
(纸本)9781450306898
the validation and verification of reliable systems is a difficult and complex task, mainly for two reasons: First, it is difficult to precisely state which formal properties a system needs to fulfil to be of high quality. Second, it is complex to automatically verify such properties, due to the size of the analysis state space which grows exponentially withthe number of components. We tackle these problems by a tool-supported method which embeds application functionality in building blocks that use UML activities to describe their internal behaviour. To describe their externally visible behaviour, we use a combination of complementary interface contracts, so-called ESMs and EESMs. In this paper, we present an extension of the interface contracts, External Reliability Contracts (ERCs), that capture failure behaviour. this separation of different behavioural aspects in separate descriptions facilitates a two-step analysis, in which the first step is completely automated and the second step is facilitated by an automatic translation of the models to the input syntax of the model checker TLC. Further, the cascade of contracts is used to separate the work of domain and reliability experts. the concepts are proposed withthe background of a real industry case, and we demonstrate how the use of interface
Developing tools for profiling, debugging, testing, and reverse engineering is error-prone, time-consuming, and therefore costly when using low-level techniques, such as bytecode instrumentation. As a solution to thes...
详细信息
ISBN:
(纸本)9781605584942
Developing tools for profiling, debugging, testing, and reverse engineering is error-prone, time-consuming, and therefore costly when using low-level techniques, such as bytecode instrumentation. As a solution to these problems, we promote tool development in Java using high-level aspect-oriented programming (AOP). We demonstrate that the use of aspects yields compact tools that are easy to develop and extend. As enabling technology, we rely on HotWave, a new tool for dynamic and comprehensive aspect weaving. HotWave reconciles compatibility with existing virtual machine and AOP technologies. It provides support for runtime adaptation of aspects and reweaving of previously loaded code, as well as the ability to weave aspects into all methods executing in a Java Virtual Machine, including methods in the standard Java class library. HotWave also features a new mechanism for efficiently passing data between advices that are woven into the same method. We demonstrate the benefits of HotWave's distinguishing features with two case studies in the area of profiling.
Code instrumentation is finding more and more practical applications, but the required program transformations are often difficult to implement, due to the lack of dedicated, high-level tools. In this paper we present...
详细信息
暂无评论