Composing first-class transactions

Nicholas Haines, Darrell Kindred, J. Gregory Morrisett, Scott M. Nettles, Jeannette M. Wing
1994 ACM Transactions on Programming Languages and Systems  
We describe the design of a transactionfacility for a language that supports higher-orderfunctions. We factor transactions into four separable features: persistence, undoability, l o c king, and threads. Then, relying on function composition, w e s h o w h o w w e can put them together again. Our modular approach t o wards building transactions enables us to construct a model of concurrent, nested, multi-threaded transactions, as well as other non-traditional models where not all features of
more » ... all features of traditional transactions are present. Key to our approach is the use of higher-order functions to make transactions rst-class. Not only do we get clean composability of transactional features, but also we a void the need to introduce special control and block-structured constructs as done in more traditional transactional systems. We implemented our design in Standard ML of New Jersey.
doi:10.1145/197320.197346 fatcat:gouvwybjpfgbbg6pvabf2a2lva