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

skip to main content
10.1145/1985793.1985915acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Permission-based programming languages (NIER track)

Published: 21 May 2011 Publication History

Abstract

Linear permissions have been proposed as a lightweight way to specify how an object may be aliased, and whether those aliases allow mutation. Prior work has demonstrated the value of permissions for addressing many software engineering concerns, including information hiding, protocol checking, concurrency, security, and memory management.
We propose the concept of a permission-based programming language - a language whose object model, type system, and runtime are all co-designed with permissions in mind. This approach supports an object model in which the structure of an object can change over time, a type system that tracks changing structure in addition to addressing the other concerns above, and a runtime system that can dynamically check permission assertions and leverage permissions to parallelize code. We sketch the design of the permission-based programming language Plaid, and argue that the approach may provide significant software engineering benefits.

References

[1]
J. Aldrich, J. Sunshine, D. Saini, and Z. Sparks. Typestate-Oriented Programming. In Proc. Onward!, 2009.
[2]
H. G. Baker. 'Use-once' variables and linear objects - storage management, reflection, and multi-threading. ACM SIGPLAN Notices, 30(1):45--52, 1995.
[3]
N. Beckman. Types for Correct Concurrent API Usage. PhD thesis, Carnegie Mellon University, 2010.
[4]
K. Bierhoff and J. Aldrich. Modular typestate verification of aliased objects. In Object-Oriented Programming, Systems, Languages, and Applications, 2007.
[5]
B. Bokowski and J. Vitek. Confined Types. In Object-Oriented Programming, Systems, Languages, and Applications, November 1999.
[6]
C. Boyapati, R. Lee, and M. Rinard. Ownership Types for Safe Programming: Preventing Data Races and Deadlocks. In Object-Oriented Programming, Systems, Languages, and Applications, November 2002.
[7]
J. Boyland, J. Noble, and W. Retert. Capabilities for sharing: A generalization of uniqueness and read-only. In European Conference on Object-Oriented Programming, 2001.
[8]
R. DeLine and M. Fähndrich. Enforcing high-level protocols in low-level software. In Programming Language Design and Implementation, 2001.
[9]
A. Greenhouse and W. L. Scherlis. Assuring and evolving concurrent programs: annotations and policy. In International Conference on Software Engineering, 2002.
[10]
D. Grossman, G. Morrisett, T. Jim, M. Hicks, Y. Wang, and J. Cheney. Region-based memory management in cyclone. In Programming Language Design and Implementation, 2002.
[11]
J. Hogg. Islands: Aliasing Protection in Object-Oriented Languages. In Object-Oriented Programming, Systems, Languages, and Applications, October 1991.
[12]
J. Noble, J. Vitek, and J. Potter. Flexible Alias Protection. In European Conference on Object-Oriented Programming, 1998.
[13]
R. Plasmeijer and M. van Eekelen. Keep it Clean: A unique approach to functional programming. In ACM Sigplan Notices, 1999.
[14]
S. Stork, P. Marques, and J. Aldrich. Concurrency by Default: Using Permissions to Express Dataflow in Stateful Programs. In Proc. Onward!, 2009.
[15]
J. A. Tov and R. Pucella. Practical affine types. In Principles of Programming Languages, 2011.
[16]
P. Wadler. Linear types can change the world! In Working Conference on Programming Concepts and Methods, 1990.
[17]
D. Walker, K. Crary, and G. Morrisett. Typed memory management via static capabilities. ACM Trans. Program. Lang. Syst., 22(4):701--771, 2000.

Cited By

View all
  • (2024)Coconut: Typestates for Embedded SystemsCoordination Models and Languages10.1007/978-3-031-62697-5_12(219-238)Online publication date: 17-Jun-2024
  • (2019)White-box program tuningProceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization10.5555/3314872.3314889(122-135)Online publication date: 16-Feb-2019
  • (2019)White-Box Program Tuning2019 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)10.1109/CGO.2019.8661177(122-135)Online publication date: Feb-2019
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '11: Proceedings of the 33rd International Conference on Software Engineering
May 2011
1258 pages
ISBN:9781450304450
DOI:10.1145/1985793
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: 21 May 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. permissions
  2. programming languages
  3. types

Qualifiers

  • Research-article

Conference

ICSE11
Sponsor:
ICSE11: International Conference on Software Engineering
May 21 - 28, 2011
HI, Waikiki, Honolulu, USA

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2024)Coconut: Typestates for Embedded SystemsCoordination Models and Languages10.1007/978-3-031-62697-5_12(219-238)Online publication date: 17-Jun-2024
  • (2019)White-box program tuningProceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization10.5555/3314872.3314889(122-135)Online publication date: 16-Feb-2019
  • (2019)White-Box Program Tuning2019 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)10.1109/CGO.2019.8661177(122-135)Online publication date: Feb-2019
  • (2014)Tourism Venue Exhibition System Design Based on Flash Scripting LanguageProceedings of the 2014 7th International Conference on Intelligent Computation Technology and Automation10.1109/ICICTA.2014.213(890-893)Online publication date: 25-Oct-2014
  • (2012)SACM SIGPLAN Notices10.1145/2370036.214582947:8(97-106)Online publication date: 25-Feb-2012
  • (2012)SProceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming10.1145/2145816.2145829(97-106)Online publication date: 25-Feb-2012
  • (2011)PlaidProceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion10.1145/2048147.2048197(183-184)Online publication date: 22-Oct-2011

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