Examples of adaptiveness

Below is
a list of 10 applications, subdivided into three categories:

    succinct subgraph specifications
    event filter
    parsing-based

Those three categories correspond to three different techniques
to achieve adaptiveness.

The applications in the first category are the most effective since
the partial evaluation leads to a lot of code spreading and
duplication.


==============================================================

  AP is linked to regularity of one aspect with respect to
  other aspects:

    1. succinct subgraph specifications
      Regularity: subgraphs have regular structure wrt graphs
      Partial evaluation at compile time: freeze graph, 
	determine explicit subgraph, generate code
      Spreading, systemicity: yes

      APPLICATIONS:
      traversals [several papers]
      context-object scope [idea from transportation patterns]
      adaptive parameter passing [ISOTAS paper] 
	aspects: Class structure, Parameter Passing, Behavior
      object linking [equations of traversal specifications, unpublished]
      persistence [traversal specs define persistent parts]
      structure-shy parametric polymorphism [paper with Natasha] 
      modular attribute grammars [U. Kastens and W. M. Waite]

    2. event filter
      Regularity: event subsequences have regular 
	structure wrt event sequence specs
      Partial evaluation at compile time: freeze specific 
	sequence specs (programs)
      Spreading: yes, systemicity: no, is local

      APPLICATIONS:
      context objects [SIGSOFT paper]
	aspects: Behavior, Behavior Modification
      synchronization patterns [ECOOP paper]
      contracts [Ian Holland's thesis]

    3. parsing-based
      Regularity: decoration of abstract syntax trees with
	concrete syntax is uniform
      Partial evaluation at run-time: freeze grammar, turn sentences
	into objects
      Spreading: yes, systemicity: yes

      APPLICATIONS:
      object construction from sentences [paper with Cun]