Results 1 -
5 of
5
Efficient Implementation of Adaptive Software
, 1994
"... Adaptive programs compute with objects, just like object-oriented programs. Each task to be accomplished is specified by a so-called propagation pattern which traverses the receiver object. The object traversal is a recursive descent via the instance variables where information is collected or pr ..."
Abstract
-
Cited by 59 (23 self)
- Add to MetaCart
Adaptive programs compute with objects, just like object-oriented programs. Each task to be accomplished is specified by a so-called propagation pattern which traverses the receiver object. The object traversal is a recursive descent via the instance variables where information is collected or propagated along the way. A propagation pattern consists of 1) a name for the task, 2) a succinct specification of the parts of the receiver object that should be traversed, and 3) code fragments to be executed when specific object types are encountered. The propagation patterns need to be complemented by a class graph which defines the detailed object structure. The separation of structure and behavior yields a degree of flexibility and understandability not present in traditional object-oriented languages. For example, the class graph can be changed without changing the adaptive program at all. In this paper, we present an efficient implementation of adaptive programs. Given an adap...
Aspect-Oriented Logic Meta Programming
, 1999
"... We propose to use a logic meta-system as a general framework for aspect-oriented programming. We illustrate our approach with the implementation of a simpli#ed version of the cool aspect language for expressing synchronization of Java programs. Using this case as an example we illustrate the pri ..."
Abstract
-
Cited by 34 (1 self)
- Add to MetaCart
We propose to use a logic meta-system as a general framework for aspect-oriented programming. We illustrate our approach with the implementation of a simpli#ed version of the cool aspect language for expressing synchronization of Java programs. Using this case as an example we illustrate the principle of aspect-orientedlogic meta programming and how it is useful for implementing weavers on the one hand and on the other hand also allows users of aop to #ne-tune, extend and adapt an aspect language to their speci#c needs.
Reasoning About Polymorphic Behavior
- Proceedings of TOOLS 26
, 1998
"... The standard approach to dealing with OO polymorphism is to require subclasses to be behavioral subtypes of the base class. This ensures that reasoning that has been done about any client code that operates on base class objects will continue to be valid if instances of the subclasses are used in pl ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
The standard approach to dealing with OO polymorphism is to require subclasses to be behavioral subtypes of the base class. This ensures that reasoning that has been done about any client code that operates on base class objects will continue to be valid if instances of the subclasses are used in place of the base class objects. But often we are interested in stronger properties of the client code, in particular that its behavior will be appropriate to the specific subclass objects that are used, rather than just generic behavior that ignores the differences between the different subclasses. We present some examples to illustrate the problem, and propose a method of reasoning that allows us to establish stronger properties of the client code on the basis of the richer behavior provided by the appropriate derived classes.
Evolution of Software via Adaptive Programming
"... We claim that our paradigm of adaptive programming is a good solution for the problem of software evolution. We outline the ideas behind our existing tools, and propose significant extensions of them in a few directions and on many levels. Contents I. Administrative 1 II. Summary of Proposal 2 A ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
We claim that our paradigm of adaptive programming is a good solution for the problem of software evolution. We outline the ideas behind our existing tools, and propose significant extensions of them in a few directions and on many levels. Contents I. Administrative 1 II. Summary of Proposal 2 A. Claims 2 B. Deliverables 3 C. Statement of work 4 C.1 Concept development and paper writing : : : : : : : : : : : : : : : : : : : : : : : 4 C.2 Tool development : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4 D. Results and technology transfer 5 D.1 Access to Baseline : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 E. Cost, schedule, and milestones 6 F. Technical Rationale 7 F.1 Background and Overview of Adaptive Programming : : : : : : : : : : : : : : : : 7 F.2 Key Research Activities : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 9 F.3 Tools for evolution of Adaptive Programs : : : : : : : : : : : : : : : : : : : : : : 1...
Efficient Implementation of Adaptive Software
, 1994
"... Adaptive programs compute with objects, just like object-oriented programs. Each task to be accomplished is specified by a so-called propagation pattern which traverses the receiver object. The object traversal is a recursive descent via the instance variables where information is collected or pr ..."
Abstract
- Add to MetaCart
Adaptive programs compute with objects, just like object-oriented programs. Each task to be accomplished is specified by a so-called propagation pattern which traverses the receiver object. The object traversal is a recursive descent via the instance variables where information is collected or propagated along the way. A propagation pattern consists of 1) a name for the task, 2) a succinct specification of the parts of the receiver object that should be traversed, and 3) code fragments to be executed when specific object types are encountered. The propagation patterns need to be complemented by a class graph which defines the detailed object structure. The separation of structure and behavior yields a degree of flexibility and understandability not present in traditional object-oriented languages. For example, the class graph can be changed without changing the adaptive program at all. In this paper, we present an efficient implementation of adaptive programs. Given an adaptive program and a class graph, we generate an efficient object-oriented program, for example in C ++ . Moreover, we prove the correctness of the core of this translation. A key assumption in the theorem is that the traversal specifications are consistent with the class graph. We prove the soundness of a proof system for conservatively checking consistency, and we show how to implement it efficiently. College of Computer Science, 161 Cullinane Hall, Boston, MA 02115-9959, USA. Internet: fpalsberg,cunxiao,lieberherrg@ccs.neu.edu. Phone: (617) 373 2077, fax: (617) 373 5121. Partially supported by the National Science Foundation under grant numbers CCR-9102578 (Software Engineering), CDA-9015692 (Research Instrumentation), and CCR-9402486 (Software Engineering). 1 1

