skip to main content
10.1145/1639950.1640060acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
short-paper

Concurrency by default: using permissions to express dataflow in stateful programs

Published:25 October 2009Publication History

ABSTRACT

The rise of the multicore era is catapulting concurrency into mainstream programming. Current programming paradigms build in sequentiality, and as a result, concurrency support in those languages forces programmers into low-level reasoning about execution order. In this paper, we introduce a new programming paradigm in which concurrency is the default. Our Aeminium language uses access permissions to express logical dependencies in the code at a higher level of abstraction than sequential order. Therefore compiler/runtime-system can leverage that dependency information to allow concurrent execution. Because in Aeminium programmers specify dependencies rather than control flow, there is no need to engage in difficult, error-prone, and low-level reasoning about execution order or thread interleavings. Developers can instead focus on the design of the program, and benefit as the runtime automatically extracts the concurrency inherent in

References

  1. E. Allen, D. Chase, J. Hallett, V. Luchangco, J.W. Maessen, S. Ryu, G.L. Steele Jr, and S. Tobin-Hochstadt. The Fortress language specification version 1.0. Technical report, Sun Microsystems, Inc, 2008.Google ScholarGoogle Scholar
  2. N. E. Beckman, K. Bierhoff, and J. Aldrich. Verifying correct usage of atomic blocks and typestate. Proc. ACM SIGPLAN conference on OOPSLA, 43(10):227--244, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. K. Bierhoff and J. Aldrich. Modular typestate checking of aliased objects. In Proc. ACM SIGPLAN conference on OOPSLA, pages 301--320, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. R. D. Blumofe, C. F. Joerg, B. C. Kuszmaul, C. E. Leiserson, K. H. Randall, and Y. Zhou. Cilk: an efficient multithreaded runtime system. Proc. ACM SIGPLAN symposium on PPoPP, 30(8): 207--216, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. H.-J. Boehm. Transactional Memory Should Be an Implementation Technique, Not a Programming Interface. Technical Report HPL-2009-45, HP Laboratories, 2009.Google ScholarGoogle Scholar
  6. J. Boyland. Checking interference with fractional permissions. In SAS, pages 55--72. Springer, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. G. Clarke, J. M. Potter, and J. Noble. Ownership types for flexible alias protection. Proc. ACM SIGPLAN conference on OOPSLA, 33(10):48--64, 1998. J.-Y. Girard. Linear logic. Theor. Comput. Sci., 50(1):1--102, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. A. Greenhouse and W. L. Scherlis. Assuring and evolving concurrent programs: annotations and policy. In Proc. ICSE, pages 453--463, New York, NY, USA, 2002. ACM. S.L.P. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Jones. Haskell 98 language and libraries: the revised report. Cambridge University Press, 2003.Google ScholarGoogle Scholar
  10. J. Larus and R. Rajwar. Transactional Memory. Morgan&Claypool Publishers, 1 edition, 2007.Google ScholarGoogle Scholar
  11. K. Rustan M. Leino. Data groups: specifying the modification of extended state. In Proc. ACM SIGPLAN conference on OOPSLA, pages 144--153, New York, NY, USA, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. Martin, C. Blundell, and E. Lewis. Subtleties of Transactional Memory Atomicity Semantics. IEEE Computer Architecture Letters, 5(2), 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Axum Programmer's Guide. Microsoft Corporation, 2009. http://msdn.microsoft.com/en--us/devlabs/dd795202.aspx.Google ScholarGoogle Scholar
  14. JE Rumbaugh. A parallel asynchronous computer architecture for data flow programs. PhD thesis, Massachusetts Institute of Technology, 1975. MIT-LCS-TR-150.Google ScholarGoogle Scholar
  15. D. J. Spoonhower. Scheduling Deterministic Parallel Programs. PhD thesis, Carnegie Mellon University, May 2009.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. H. Sutter. The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software. Dr. Dobb's Journal, 30(3):16--20, 2005.Google ScholarGoogle Scholar

Index Terms

  1. Concurrency by default: using permissions to express dataflow in stateful programs

        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 Conferences
          OOPSLA '09: Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
          October 2009
          502 pages
          ISBN:9781605587684
          DOI:10.1145/1639950

          Copyright © 2009 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 October 2009

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • short-paper

          Upcoming Conference

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader