Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Open access

Composing first-class transactions

Published: 01 November 1994 Publication History
First page of PDF

References

[1]
ATKINSON, M., BAILEY, P., CHISOLM, K., COCKSHOTT, W., AND MOARISON, R. 1983. An approach to persistent programming. Comput. J. ~6, 4,360-365.
[2]
COOPER, E. AND DRAVES, R. 1988. C Threads. Tech. Rep. CMU-CS-88-154 (June), Computer Science Dept., Carnegie Mellon Univ., Pittsburgh, Pa.
[3]
COOPE1R, E. AND I~,~ORRISETT, J. G. 1990. Adding threads to Standard ME. Tech. Rep. CMU- CS-90-186 (Dec.), School of Computer Science, Carnegie Mellon Univ., Pittsburgh, Pa.
[4]
DETLEFS, D. L., HERLIHY, M. P., AND V~TING, J. M. 1988. Inheritance of synchronization and recovery properties in AvMon/C++. IEEE Computer 21, 12 (Dec.), 57-69.
[5]
EPPINGER, J., MUIvlMERT, L., AND SPECTOR, A. 1991. Camelot and Avalon: A Distributed Transaction Facility. Morgan Kaufmann Publishers, Inc., San Mateo, Calif.
[6]
FRIEDIvlAN AND HAYNES 1985. Constraining control. In Proceedings o} A C~I Symposium on Programming Languages, ACM, New "t%rk.
[7]
GOLDMAN, R., GABRIEL, R., AND SEXTON, C. 1989. Qlisp: An interim report. In US/Japan Workshop on Parallel Lisp _Proceedings, Springer-Verlag, Berlin, West Germany, 161-181.
[8]
HARBmON, S. 1992. Moduta-3. Prentice-Hall, Englewood Cliffs, N.J.
[9]
HASKIN, 1:{., MALACHI, Y., SAWDON, W., hND CHAN, G. 1988. Recovery management in Quick- Silver. ACM Trans. on Comput. Syst. 6, 1 (Feb.), 82-108.
[10]
HELLAND, P. 1985. Transaction monitoring facility. Database Eng. 8, 1 (June), 9-18.
[11]
HUMM, B. G. 1993. An extended scheduling mechanism for nested transactions. In Proceedings of the International IEEE Workshop on Object-Omen~ation ~n Operating Systems, IEEE, New York.
[12]
LIEBERMAN, H. AND HEWITT, C. 1983. A real-time garbage collector based on the lifetimes of objects. Commun. A CM 26, 6 (June), 419-429.
[13]
LINDSAY, B., HAAS, L., MOHAN, C., WILMS, P., AND YOST, R. 1984. Computation and communication in R*: A distributed database manager. A CM Trans. on Comput. Syst. 2, 1 (Feb.), 24-38.
[14]
LISKOV, B. AND SCHEIFLER, R. 1983. Guardians and actions: Linguistic support for robust, distributed programs. ACM Trans. on Program. Lang. and Syst. 5, 3 (July), 382-404.
[15]
MILN~a, F/., TOFTE, M., AND HAaPER, R. 1990. The Definition of Standard JlIL. The MIT Press, Cambridge, Mass.
[16]
MORmSETT, J. G. 1993. Generalizing first-class stores. In Proceedings of the A CM SIGPLAN Workshop on State ~ ProgramT~ng Lang~age~, ACM, New York, 73-87.
[17]
MORRISETT, J. G. AND TOLMACH, A. 1993. Procs and locks: A portable multiprocessing platform for Standard ML of New Jersey. In Proceedzng~ of the ~th A CM SIGPLAN Symposigm on Principles and Practice of Parallel Programming, ACM, New York, 198-207.
[18]
Moss, J. 1985. Nested Transactzons: Aa Approach to Reliable Dzstribgted Comp~ting. The MIT Press, Cambridge, Mass.
[19]
NETTLES, S. M. 1994. Safe and efficient transaction support for heap-based languages. Computer Science Dept., Carnegie Mellon Univ., Pittsburgh, Pa., Ph.D thesis in progress.
[20]
NETTLES, S. M. AND WING, J. M. 1992. Persistence + Undoability = Transactions. In Proceedings of HICSS-25, Washington, D.C. IEEE Computer Society Press. Also CMU-CS-91-173, Carnegie Mellon Univ., Pittsburgh, Pa., August 1991.
[21]
O'TOOLE, J., NETTLES, S., AND D.K.GIFFORD 1993. Concurrent compacting garbage collection of a persistent heap. In Procccdzr~gs of the Igth ACM Sympos~un~ o1~ Operating System Priac~pIes, New 5%rk. ACM.
[22]
PAUSCH, R. 1988. Adding input and output to the transactional model. Tech. Rep. CMU-0S- 88-171, Computer Science Dept., Carnegie Mellon Univ., Pittsburgh, Pa.
[23]
REES, J. 1992. The Scheme of things: The June 1992 meeting. LISP Po~nfers 5, 4, 40-45.
[24]
ROVNER, P. 1986. Extending Modula-2 to build large, integrated systems. IEEE Soft. 3, 6, 46-57.
[25]
SATYANARAYANAN, 1~4., MASHBURN, H. H., KUMAR, P., STEERE, D. C., AND KISTLE1Z, J. J. 1993. Lightweight Recoverable Virtual Memory. In Proceedings of the l~{th .4 CM Sympo~zgm on Operating S~stems Pr~nczpIes, ACM, New York.
[26]
SHRIVASTAVA, S., DIXON, G., HEDaYATI, F., PA~mNCTON, G., AND WHEATER, S. 1988. A technical overview of Arjuna: A system for reliable distributed computing. Tech. Rep., Computing Laboratory, Univ. of Newcastle upon Tyne, U.K.
[27]
TOLMACH, A. P. AND APPEb, A. W. 1991. Debuggable concurrency extensions for Standard ML. In Proceedings A CM/ONR Workshop o~ Parallel a'nd Distributed Deb~99i,ng, ACM, New York, 120-131. Published as SIGPLAN Notices 26(12), December 1991. Also Princeton Univ. Dept. of Computer Science Tech. Rap. CS-TR-352-91.
[28]
UNGAR, D. 1984. Generational scavenging: A non-disruptive high performance storage management reclamation algorithm. In A C3I SIGPLAN Software Ent/tneertl~9 Symposzura on Practzcal Software Develol)me~t En,~ronv;e~ts, ACM, New York, 15-167.
[29]
WARlqEN, D. 1983. An abstract PROLOG instruction set. Tech. Rap. 309, AI Center, SP~I International, Menlo Park, Calif.
[30]
WING, J. M., FAEHNDRICH, M., HAINP.S, N., KIETZKE, K., KINDRED, D., MOf~RISETT, J. G., AND NETTbES, S. 1993. Venari/ML interfaces and examples. Tech. Rap. CMU-CS-93-123 (March), Carnegie Mellon Computer Science Dept., Pittsburgh, Pa.

Cited By

View all

Recommendations

Reviews

R. Clayton

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.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 November 1994
Published in TOPLAS Volume 16, Issue 6

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Standard ML
  2. modules
  3. persistence
  4. recovery
  5. serializability
  6. skeins
  7. threads
  8. transactions
  9. undoability

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)79
  • Downloads (Last 6 weeks)9
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Short Paper: An Efficient Framework for Supporting Nested Transaction in STMsNetworked Systems10.1007/978-3-031-67321-4_13(204-210)Online publication date: 29-May-2024
  • (2022)Delay-on-Squash: Stopping Microarchitectural Replay Attacks in Their TracksACM Transactions on Architecture and Code Optimization10.1145/356369520:1(1-24)Online publication date: 17-Nov-2022
  • (2021)ChocolaACM Transactions on Programming Languages and Systems10.1145/342720142:4(1-56)Online publication date: 27-Jan-2021
  • (2017)Transactions in relaxed memory architecturesProceedings of the ACM on Programming Languages10.1145/31581062:POPL(1-29)Online publication date: 27-Dec-2017
  • (2012)Visual modeling for scientific software architecture design. A practical approachComputer Physics Communications10.1016/j.cpc.2011.07.021183:2(213-230)Online publication date: Feb-2012
  • (2011)Atomic boxesProceedings of the 25th European conference on Object-oriented programming10.5555/2032497.2032538(634-657)Online publication date: 25-Jul-2011
  • (2011)A transactional model for automatic exception handlingComputer Languages, Systems and Structures10.1016/j.cl.2010.09.00237:1(43-61)Online publication date: 1-Apr-2011
  • (2011)Atomic Boxes: Coordinated Exception Handling with Transactional MemoryECOOP 2011 – Object-Oriented Programming10.1007/978-3-642-22655-7_29(634-657)Online publication date: 2011
  • (2010)Transactional Memory, 2nd editionSynthesis Lectures on Computer Architecture10.2200/S00272ED1V01Y201006CAC0115:1(1-263)Online publication date: 22-Dec-2010
  • (2010)Hybrid type checkingACM Transactions on Programming Languages and Systems10.1145/1667048.166705132:2(1-34)Online publication date: 8-Feb-2010
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media