One of the major progress due to component based technology is the capability to let the "infrastructure" manage some (non functional or extra functional) aspects such as persistency, distribution and so on ...
详细信息
ISBN:
(纸本)9781581134698
One of the major progress due to component based technology is the capability to let the "infrastructure" manage some (non functional or extra functional) aspects such as persistency, distribution and so on without having to change the application code, using a wrappers technology (containers). Aspect Oriented programming (AOP) is a technology that provides a language in which different aspects can be applied to an application using a technology that "weaves" the code implementing the aspect inside the application *** technologies are addressing the same "separation of concerns" issue, but containers propose only a fixed set of services, while AOP require the capability to change the component code, and is working at the object *** our work, we merge both approaches, allowing aspect designers to define new aspects or services and aspect users to apply these aspects or services on components without the component code availability. This goal is reached by providing two languages, one for aspect designers the other one for aspect users, and by using a palette of technologies including object (stub) generation, method call interception and run-time instrumentation.
Applications in an evolving computing environment should be designed to cope with varying data. Object-oriented programming, polymorphisms and parametric types often do not provide the required flexibility, which can ...
ISBN:
(纸本)9783540442844
Applications in an evolving computing environment should be designed to cope with varying data. Object-oriented programming, polymorphisms and parametric types often do not provide the required flexibility, which can be achieved with the use of metadata attached or extracted from objects by means of reflection. We present a general mechanism to support reflection in C++, exploiting template metaprogramming techniques. Metaclass objects are present at runtime and can be inspected to access information about objects, in particular about their fields. Metaobjects describing fields can be extended, through a mechanism similar to custom attributes in C#. The mechanism is self-reflective, allowing for metaclass objects to be described in turn. This allows storing and retrieving metaclasses from external storage and allows programs to understand and manipulate objects built by other programs. We present two case studies of the technique: building configuration objects and creating object-oriented interfaces to relational database tables.
Macros are often regarded as a sort of black magic: highly useful yet abstruse. The present paper aims to make macro programming more like a craft. Using R5RS Scheme macros as an example, we develop and present a gene...
ISBN:
(纸本)9783540442844
Macros are often regarded as a sort of black magic: highly useful yet abstruse. The present paper aims to make macro programming more like a craft. Using R5RS Scheme macros as an example, we develop and present a general practical methodology of building complex macros systematically, by combining simpler components by functional composition or higher-order operatorsMacro programming is complex because the systematic approach does not apply to many macros. We show that macros and other headfirst normal-order re-writing systems generally lack functional composition. However, macros written in a continuation-passing style (CPS) always compose. Making CPS macros practical still requires an encoding for macro-continuations. We have found this missing piece, with an insight for anonymous macro-level *** the specific case of R5RS macros, this paper presents a stronger result: developing R5RS macros by a translation from the corresponding Scheme procedures. We demonstrate the practical use of the technique by elaborating a real-world example.
Internet telephony services enable a wealth of services. One of the important questions in engineering services is how to create the services. Another question is where to execute the services. This paper proposes a j...
详细信息
ISBN:
(纸本)3540423036
Internet telephony services enable a wealth of services. One of the important questions in engineering services is how to create the services. Another question is where to execute the services. This paper proposes a java-oriented solution to create services and also a new software component, which is able to control their execution.
The proceedings contain 16 papers. The special focus in this conference is on Aspects and generative Approaches. The topics include: A survey and a categorization scheme of automatic programming systems;using reflecti...
ISBN:
(纸本)3540411720
The proceedings contain 16 papers. The special focus in this conference is on Aspects and generative Approaches. The topics include: A survey and a categorization scheme of automatic programming systems;using reflective logic programming to describe domain knowledge as an aspect;aspect weaving with graph rewriting;aspects in distributed environments;lightweight and generativecomponents I;scoping constructs for software generators;efficient object-oriented software with design patterns;an open language framework;from macros to reusable generativeprogramming;aspect-oriented compilers;dynamic component gluing;recursive types and pattern-matching in java;C++ function object binders made easy;customizable domain analysis;a grey-box approach to component composition and an XML based component model for generating scientific applications and performing large scale simulations in a meta-computing environment.
We illustrate how to combine CORBA as a distributed system with aspect-oriented programming (AOP) and the resulting positive impacts. In particular, we focus on the question how AOP can be applied to a CORBA applicati...
详细信息
ISBN:
(纸本)3540411720
We illustrate how to combine CORBA as a distributed system with aspect-oriented programming (AOP) and the resulting positive impacts. In particular, we focus on the question how AOP can be applied to a CORBA application aiming at a better separation of concerns. The paper shows with implementation examples a practical way to package the distribution issues of a CORBA application into separated aspects (with AspectJ). This supports the distributed application design and leads to increased flexibility.
Automatic programming (AP) systems have been used in a great variety of ways since the early days of software engineering. They have been used in Al related research approaches with the nun to generate computer progra...
详细信息
ISBN:
(纸本)3540411720
Automatic programming (AP) systems have been used in a great variety of ways since the early days of software engineering. They have been used in Al related research approaches with the nun to generate computer programs from informal, incomplete, natural language-like specifications as well as in more pragmatic approaches related to 4th level languages. Terms such as "application generator", "transformational system", "code synthesizer", "generative software development" were used for naming various approaches to AP. This paper presents a categorization scheme for AP systems. In this categorization scheme, a clear distinction is made between the Al related, hard AP- and soft AP systems. Alter that, a broad range of AP systems as well as their position in the categorization scheme is presented. Finally we discuss the relation between AP and software reuse.
Aspect-oriented programming provides the programmer with means to cross-cut conventional program structures, in particular the class hierarchies of object-oriented programming. This paper studies the use of aspect ori...
详细信息
ISBN:
(纸本)3540411720
Aspect-oriented programming provides the programmer with means to cross-cut conventional program structures, in particular the class hierarchies of object-oriented programming. This paper studies the use of aspect orientation in structuring syntax directed compilers implemented as attribute grammars. Specifically, it describes it method for specifying definitions of related attributes as 'aspects' and treating them as first-class objects, that can be stored, manipulated and combined. It is hoped that this embedding of an aspect-oriented programmingstyle in Haskell provides a stepping stone towards a more general study of the semantics of aspect-oriented programming.
Software applications, mostly consisting of an algorithm applied to domain knowledge, are hard to maintain and to reuse as a result of their hard coded combination. We propose to follow the principles of aspect-orient...
详细信息
ISBN:
(纸本)3540411720
Software applications, mostly consisting of an algorithm applied to domain knowledge, are hard to maintain and to reuse as a result of their hard coded combination. We propose to follow the principles of aspect-oriented programming, separating the domain from the algorithm and describing then in a logic and conventional programming language respectively. In this paper, we report on an experiment that was conducted to validate this hypothesis, and to investigate the requirements of a programming environment for this configuration. An already existing environment that uses a logic meta-language to reason about object-oriented systems, SOUL, is used as a starting point for this experiment. The result is a working implementation in SOUL, which validates our ideas, reveals mechanisms that require more research, and points to other features that should be included.
暂无评论