Actions as Data


  • Action ::= enact
  • Datum ::= Action

  This part of AN­2 corresponds to the 'Reflective' part of AN­1. Action, the sort of actions, is a subsort of Data in AN­2. Thus all action combinators (and the data operation provide) are automatically represented by elements of the sort DataOp, and can be used to compute actions, for instance, given actions A1 and A2 as data, performing the action give then computes A1 then A2. In AN­1, actions occurring in data had to be embedded as 'abstractions', and abstraction combinators corresponding to action combinators were needed.

  The action enact has essentially the same interpretation in AN­2 as in AN­1, except that the action to be enacted is given to it as data, rather than as an explicit argument.

  The abstraction­forming data operations provision d and production d of AN­1 were mainly used to define applications and closures of abstractions. The Kernel AN­2 action provide d corresponds to provision d in AN­1; the treatment of produced bindings as data in AN­2 has allowed produce d to be eliminated altogether.




    Data| Flow of Data and Control| Scopes of Bindings| Effects on Storage| Interactive Processes