From lieber@ccs.neu.edu Wed Oct 29 21:35:36 1997 Received: from stockberg.ccs.neu.edu (lieber@stockberg.ccs.neu.edu [129.10.112.123]) by amber.ccs.neu.edu (8.8.6/8.7.3) with ESMTP id VAA23116; Wed, 29 Oct 1997 21:35:34 -0500 (EST) From: Karl Lieberherr Received: (lieber@localhost) by stockberg.ccs.neu.edu (8.8.6/8.6.4) id VAA00457; Wed, 29 Oct 1997 21:35:33 -0500 (EST) Date: Wed, 29 Oct 1997 21:35:33 -0500 (EST) Message-Id: <199710300235.VAA00457@stockberg.ccs.neu.edu> To: mira@ccs.neu.edu Subject: same model Cc: lieber@ccs.neu.edu Status: R Hi Mira: After a second thought, your proposal today matches the one below? Except that you don't view a context class as a class. -- Karl
Context classes should have the following structure:

Context Class V {
	instance variables
	methods
	// several redefinitions:
	redefines C { // vertex based redefinition
	  // additional instance variables
	  D d; // not needed for attachment to objects
	       // only for attachment to calls
	  // overwrite or add new methods for C-objects
	  f(A) {};
	  // incremental methods for C-objects 
	  before {};
	  after {};
	  around {};
	  // incremental methods for edges from C-objects 
	  before l {}
	  after l {}
	  around l {}
	    // includes also "derived" edges (methods)
	  before x(A) {}
	  after x(A) {}
	  around x(A) {}
        }
        redefines -> X,y,Y { // edge based redefinition 
	  // additional instance variables for source of edges
	  // overwrite or add new methods for source of edges
	  f(A) {};
	  // incremental methods for y-edge
	  before {};
	  after {};
	  around {};
	}
}


New parts and functions may only be used in redefinition.
Either all incremental or all overrwriting.

What is new here?

DYNAMIC EXTENSION OF CLASS STRUCTURE for duration of a task.
This removes the pollution of the class graph with information
which is only needed for a specific task.

Incremental modification of methods with before/after/around methods
is useful for dynamically changing objects incrementally
(feature composition).

Back to Adaptive Programming home page