A transaction defines a locus of computation that satisfies important concurrency and failure properties; these so-called ACID properties provide strong serialization guarantees that allow us to reason about concurrent and distributed programs in terms of higher-level units of computation (e.g., transactions) rather than lower-level data structures (e.g., mutual-exclusion locks). This paper presents a framework for specifying the semantics of a transactional facility integrated within a host programming language. The TFJ calculus supports nested and multi-threaded transactions. We give a semantics to TFJ that is parameterized by the definition of the transactional mechanism that permits the study of different transaction models.
@inproceedings{Vitek+2004ESOP, author = {Vitek, Jan and Jagannathan, Suresh and Welc, Adam and Hosking, Antony L.}, title = {A Semantic Framework for Designer Transactions}, booktitle = {European Symposium on Programming}, series = {ESOP}, year = {2004}, pages = {249--263}, month = {March}, address = {Barcelona, Spain}, doi = {10.1007/b96702}, gscholar = {40} }