Nothing Special   »   [go: up one dir, main page]

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 2009 Publication 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.
[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.
[3]
K. Bierhoff and J. Aldrich. Modular typestate checking of aliased objects. In Proc. ACM SIGPLAN conference on OOPSLA, pages 301--320, 2007.
[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.
[5]
H.-J. Boehm. Transactional Memory Should Be an Implementation Technique, Not a Programming Interface. Technical Report HPL-2009-45, HP Laboratories, 2009.
[6]
J. Boyland. Checking interference with fractional permissions. In SAS, pages 55--72. Springer, 2003.
[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.
[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.
[9]
Jones. Haskell 98 language and libraries: the revised report. Cambridge University Press, 2003.
[10]
J. Larus and R. Rajwar. Transactional Memory. Morgan&Claypool Publishers, 1 edition, 2007.
[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.
[12]
M. Martin, C. Blundell, and E. Lewis. Subtleties of Transactional Memory Atomicity Semantics. IEEE Computer Architecture Letters, 5(2), 2006.
[13]
Axum Programmer's Guide. Microsoft Corporation, 2009. http://msdn.microsoft.com/en--us/devlabs/dd795202.aspx.
[14]
JE Rumbaugh. A parallel asynchronous computer architecture for data flow programs. PhD thesis, Massachusetts Institute of Technology, 1975. MIT-LCS-TR-150.
[15]
D. J. Spoonhower. Scheduling Deterministic Parallel Programs. PhD thesis, Carnegie Mellon University, May 2009.
[16]
H. Sutter. The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software. Dr. Dobb's Journal, 30(3):16--20, 2005.

Cited By

View all
  • (2019)Parallel Roles for Practical Deterministic Parallel ProgrammingLanguages and Compilers for Parallel Computing10.1007/978-3-030-35225-7_12(163-181)Online publication date: 15-Nov-2019
  • (2018)Concurrency-aware object-oriented programming with rolesProceedings of the ACM on Programming Languages10.1145/32765002:OOPSLA(1-30)Online publication date: 24-Oct-2018
  • (2017)The Chemical Approach to Typestate-Oriented ProgrammingACM Transactions on Programming Languages and Systems10.1145/306484939:3(1-45)Online publication date: 26-May-2017
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

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
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 25 October 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. access permissions
  2. concurrency
  3. dataflow
  4. programming language

Qualifiers

  • Short-paper

Conference

OOPSLA09
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 24 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2019)Parallel Roles for Practical Deterministic Parallel ProgrammingLanguages and Compilers for Parallel Computing10.1007/978-3-030-35225-7_12(163-181)Online publication date: 15-Nov-2019
  • (2018)Concurrency-aware object-oriented programming with rolesProceedings of the ACM on Programming Languages10.1145/32765002:OOPSLA(1-30)Online publication date: 24-Oct-2018
  • (2017)The Chemical Approach to Typestate-Oriented ProgrammingACM Transactions on Programming Languages and Systems10.1145/306484939:3(1-45)Online publication date: 26-May-2017
  • (2015)The chemical approach to typestate-oriented programmingACM SIGPLAN Notices10.1145/2858965.281428750:10(917-934)Online publication date: 23-Oct-2015
  • (2015)The chemical approach to typestate-oriented programmingProceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications10.1145/2814270.2814287(917-934)Online publication date: 23-Oct-2015
  • (2014)ÆminiumACM Transactions on Programming Languages and Systems10.1145/254392036:1(1-42)Online publication date: 1-Mar-2014
  • (2014)A case study on the lightweight verification of a multi-threaded task serverScience of Computer Programming10.1016/j.scico.2013.01.00480(169-187)Online publication date: 1-Feb-2014
  • (2014)Eve: A Parallel Event-Driven Programming LanguageEuro-Par 2014: Parallel Processing Workshops10.1007/978-3-319-14313-2_15(170-181)Online publication date: 2014
  • (2013)The future of aliasing in parallel programmingAliasing in Object-Oriented Programming10.5555/2554511.2554536(501-502)Online publication date: 1-Jan-2013
  • (2013)Alias control for deterministic parallelismAliasing in Object-Oriented Programming10.5555/2554511.2554521(156-195)Online publication date: 1-Jan-2013
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media