Scopes of Bindings


  • Action ::= give current bindings | Action hence Action
  • Datum ::= Token | Bindable | Bindings
  • DataOp ::= binding | overriding | disjoint union

  The main diference between this part of Kernel AN­2 and the Declarative facet of Kernel AN­1 is that here, the bindings resulting from an action are simply given as transients, rather than 'produced' separately from the transients. However, bindings are still 'received' separately from transients, as in AN­1.

  The combinator A1 hence A2 is used just as before, only now A1 is supposed to give the bindings map that A2 is to receive, and the only data given by the whole action is that given by A2 .

  Various data operations are available for expressing bindings, and for com­ bining the bindings produced by sub­actions(See them above). For instance, binding(tk, bv) forms the map taking the token tk to the bindable value bv; and overriding(b1, b2) returns the bindings map where bindings in b2 take precedence over those in b1. Note that since bindings are no longer produced separately from transients, there is no need for any hybrid functional­binding combinators at all in AN­2. The built­in distinction of a special value unknown, and the AN­1 primitive action for 'unbinding', are omitted in AN­2.




   
Data| Flow of Data and Control| Actions as Data| Effects on Storage| Interactive Processes