Computing Reviews

Composing first-class transactions
Haines N., Kindred D., Morrisett J., Nettles S., Wing J. ACM Transactions on Programming Languages and Systems16(6):1719-1736,1994.Type:Article
Date Reviewed: 05/01/96

A computation is undoable if it can revert to its pre-execution state at any time before it ends; it is persistent if its results remain after it has successfully ended; and it is serializable if it produces the same results independent of other concurrently executing computations. A computation may require any subset of the properties undoability, persistence, and serializability, raising the problem of packaging each property so that it can be easily included in a computation needing it. This paper describes how the functional programming language Standard Metalanguage (SML) provides an elegant and effective solution to the packaging problem.

The paper’s coverage is broad but not deep; descriptions stop at the major module interfaces. While this is a sound software engineering principle, it tends to leave questions hanging. For example, composition, concurrency, and locking rules are not difficult to understand individually, but understanding their combination is harder. The paper includes references to more detailed, but less accessible, documents.

This paper is a good illustration of the power and utility of a language with features such as first-class functions and parameterized modules. Comparisons between the SML and object-oriented solutions to the packaging problem underscore the elegance and flexibility of a functional approach.

Reviewer:  R. Clayton Review #: CR119121 (9605-0359)

Reproduction in whole or in part without permission is prohibited.   Copyright 2024 ComputingReviews.com™
Terms of Use
| Privacy Policy