Extensions to Standard ML to Support Transactions

A transaction is a control abstraction that lets programmers treat a sequence of operations as an atomic ("all-or-nothing") unit. This paper describes our progress on on-going work to extend SML with transactions. What is novel about our work on transactions is support for multi-threaded concurrent transactions. We use SML''s modules facility to reflect explicitly orthogonal concepts heretofore inseparable in other transaction-based programming languages.