EFFICIENT IMPLEMENTATION OF ADAPTIVE SOFTWARE

被引:16
作者
PALSBERG, J
XIAO, C
LIEBERHERR, K
机构
[1] Northeastern Univ, Boston, United States
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 1995年 / 17卷 / 02期
关键词
LANGUAGES; ADAPTIVE SOFTWARE; CORRECTNESS PROOF; OBJECT TRAVERSAL;
D O I
10.1145/201059.201066
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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. 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.
引用
收藏
页码:264 / 292
页数:29
相关论文
共 38 条
[1]  
BERGSTEIN P, 1991, P OOPSLA 91, P299
[2]  
BOOCH G, 1994, DR DOBBS J, V19, P24
[3]  
BOOCH G, 1990, OBJECT ORIENTED PROG, P1
[4]  
CERI S, 1993, LECTURE NOTES COMPUT, V760
[5]  
COBURN N, 1991, 2ND INT C DOOD 91, P313
[6]  
DAYAL U, 1989, 2ND INT WORKSH DAT P, P80
[7]  
DENBUSSCHE JV, 1993, LECTURE NOTES COMPUT, V760, P267
[8]  
ELLIS MA, 1990, ANNOTATED C PLUS PLU
[9]  
Gamma E., 1994, DESIGN PATTERNS ELEM
[10]   CLASS MANAGEMENT FOR SOFTWARE COMMUNITIES [J].
GIBBS, S ;
TSICHRITZIS, D ;
CASAIS, E ;
NIERSTRASZ, O ;
PINTADO, X .
COMMUNICATIONS OF THE ACM, 1990, 33 (09) :90-103