skip to main content
10.1145/1352678.1352692acmotherconferencesArticle/Chapter ViewAbstractPublication PagesicdlConference Proceedingsconference-collections
research-article

Transactional memory for smalltalk

Published:25 August 2007Publication History

ABSTRACT

Concurrency control in Smalltalk is based on locks and is therefore notoriously difficult to use. Even though some implementations provide high-level constructs, these add complexity and potentially hard-to-detect bugs to the application. Transactional memory is an attractive mechanism that does not have the drawbacks of locks, however the underlying implementation is often difficult to integrate into an existing language. In this paper we show how we have introduced transactional semantics in Smalltalk by using the reflective facilities of the language. Our approach is based on method annotations, incremental parse tree transformations and an optimistic commit protocol. We report on a practical case study, benchmarks and further and on-going work.

References

  1. Goldberg, A., Robson, D.: Smalltalk 80: the Language and its Implementation. Addison Wesley, Reading, Mass. (May 1983) Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. American National Standards Institute, Inc.: Draft American National Standard for Information Systems --- Programming Languages --- Smalltalk. American National Standards Institute (1997)Google ScholarGoogle Scholar
  3. Harris, T., Fraser, K.: Language support for lightweight transactions. In: Object-Oriented Programming, Systems, Languages, and Applications. ACM Press, New York, NY, USA (October 2003) 388--402 Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Ingalls, D., Kaehler, T., Maloney, J., Wallace, S., Kay, A.: Back to the future: The story of Squeak, A practical Smalltalk written in itself. In: Proceedings OOPSLA '97, ACM SIGPLAN Notices, ACM Press (November 1997) 318--326 Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Hansen, P. B.: Monitors and Concurrent Pascal: a personal history. ACM Press, New York, NY, USA (1996)Google ScholarGoogle Scholar
  6. Herlihy, M. P.: Wait-free synchronization. ACM Transactions on Programming Languages and Systems 13(1) (January 1991) 124--149 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Herlihy, M. P., Moss, J. E. B.: Transactional memory: Architectural support for lock-free data structures. In: Proceedings of the 20. Annual International Symposium on Computer Architecture. (1993) Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Butterworth, P., Otis, A., Stein, J.: The GemStone object database management system. Commun. ACM 34(10) (1991) 64--77 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Guerraoui, R., Garbinato, B., Mazouni, K. R.: The garf library of dsm consistency models. In: EW 6: Proceedings of the 6th workshop on ACM SIGOPS European workshop, New York, NY, USA, ACM Press (1994) 51--56 Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Guerraoui, R., Felber, P., Garbinato, B., Mazouni, K.: System support for object groups. In: OOPSLA '98: Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, New York, NY, USA, ACM Press (1998) 244--258 Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Briot, J. P.: Actalk: A testbed for classifying and designing actor languages in the Smalltalk-80 environment. In Cook, S., ed.: Proceedings ECOOP '89, Nottingham, Cambridge University Press (July 1989) 109--129Google ScholarGoogle Scholar
  12. Hindman, B., Grossman, D.: Atomicity via source-to-source translation. In: MSPC '06: Proceedings of the 2006 workshop on Memory system performance and correctness, New York, NY, USA, ACM Press (2006) 82--91 Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Adl-Tabatabai, A. R., Lewis, B. T., Menon, V., Murphy, B. R., Saha, B., Shpeisman, T.: Compiler and runtime support for efficient software transactional memory. In: PLDI '06: Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation, New York, NY, USA, ACM Press (2006) 26--37 Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Röthlisberger, D., Denker, M., Tanter, É.: Unanticipated partial behavioral reflection: Adapting applications at runtime. Journal of Computer Languages, Systems and Structures (2007) To appear. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Denker, M., Ducasse, S., Lienhard, A., Marschall, P.: Sub-method reflection. Journal of Object Technology 6(9) (September 2007) To appear.Google ScholarGoogle ScholarCross RefCross Ref
  16. Lie, S.: Hardware support for unbounded transactional memory. Master's thesis, Massachusetts Institute of Technology (May 2004)Google ScholarGoogle Scholar
  17. Moore, K. E., Bobba, J., Moravan, M. J., Hill, M. D., Wood, D. A.: LogTM: Log-based transactional memory. In: Proceedings of the 12th International Symposium on High-Performance Computer Architecture. IEEE Computer Society (February 2006) 254--265Google ScholarGoogle Scholar
  18. Lea, D.: Concurrent Programming in Java, Second Edition: Design principles and Patterns. 2nd edn. The Java Series. Addison Wesley (1999) Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Bobba, J., Moore, K. E., Yen, L., Volos, H., Hill, M. D., Swift, M. M., Wood, D. A.: Performance pathologies in hardware transactional memory. In: Proceedings of the 34rd Annual International Symposium on Computer Architecture. International Symposium on Computer Architecture (June 2007) Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Kung, H. T., Robinson, J. T.: On optimistic methods for concurrency control. ACM TODS 6(2) (June 1981) Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Renggli, L.: Magritte -- meta-described web application development. Master's thesis, University of Bern (June 2006)Google ScholarGoogle Scholar
  22. Costanza, P., Hirschfeld, R.: Language constructs for context-oriented programming: An overview of ContextL. In: Proceedings of the Dynamic Languages Symposium (DLS) '05, co-organized with OOPSLA'05, New York, NY, USA, ACM Press (October 2005) Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Nierstrasz, O., Denker, M., Gîrba, T., Lienhard, A.: Analyzing, capturing and taming software change. In: Proceedings of the Workshop on Revival of Dynamic Languages (co-located with ECOOP'06). (July 2006)Google ScholarGoogle Scholar

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Other conferences
    ICDL '07: Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
    August 2007
    254 pages
    ISBN:9781605580845
    DOI:10.1145/1352678

    Copyright © 2007 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 25 August 2007

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article

    Acceptance Rates

    ICDL '07 Paper Acceptance Rate11of16submissions,69%Overall Acceptance Rate11of16submissions,69%

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader