skip to main content
10.1145/3464971.3468424acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

Behavioural separation with parallel usages

Published: 11 July 2021 Publication History

Abstract

Mungo is an object-oriented language that uses typestates with a behavioural type system to ensure the absence of null-dereferencing. Typestates are usages that specify the admissible sequences of method calls on objects. Previous type systems for Mungo have all had a linearity constraint on objects. We present an extension of these systems, where usage specifications can now include a parallel construct that lets us describe separate local behaviour. A parallel usage describes a separation of the heap, and this allows us to reason about aliasing and to express arbitrary interleaving of local protocols. This also solves the state-space explosion problem for usages. Our extension retains the safety properties of previous type systems for Mungo.

References

[1]
Mario Bravetti, Adrian Francalanza, Iaroslav Golovanov, Hans Hüttel, Mathias Steen Jakobsen, Mikkel Klinke Kettunen, and António Ravara. 2020. Behavioural Types for Memory and Method Safety in a Core Object-Oriented Language. In APLAS 2020.
[2]
Luís Caires and João C. Seco. 2013. The Type Discipline of Behavioral Separation. SIGPLAN Not., 48, 1 (2013), Jan., 275–286. issn:0362-1340 https://doi.org/10.1145/2480359.2429103
[3]
Rob DeLine and Manuel Fahndrich. 2004. The Fugue Protocol Checker: Is Your Software Baroque? Microsoft Research. https://www.microsoft.com/en-us/research/publication/the-fugue-protocol-checker-is-your-software-baroque/
[4]
Brett D. Estrade, A. Louise Perkins, and John M. Harris. 2006. Explicitly Parallel Regular Expressions. In Proceedings of the First International Multi-Symposiums on Computer and Computational Sciences - Volume 1 (IMSCCS’06) - Volume 01 (IMSCCS ’06). IEEE Computer Society, USA. 402–409. isbn:076952581401 https://doi.org/10.1109/IMSCCS.2006.60
[5]
Iaroslav Golovanov, Mathias Steen Jakobsen, and Mikkel Klinke Kettunen. [n.d.]. Mungo with Behavioural Separation. https://mungotypesystem.github.io/MungoBehaviouralSeparation. Accessed: 2021-06-02.
[6]
Mathias Steen Jakobsen, Mikkel Klinke Kettunen, and Iaroslav Golovanov. 2020. Behavioural Separation with Parallel Usages for a Core Object-Oriented Language (MSc Thesis). Aalborg University.
[7]
Dimitrios Kouzapas, Ornela Dardha, Roly Perera, and Simon J. Gay. 2016. Typechecking Protocols with Mungo and StMungo. In Proceedings of the 18th International Symposium on Principles and Practice of Declarative Programming (PPDP ’16). ACM, New York, NY, USA. 146–159. isbn:978-1-4503-4148-6 https://doi.org/10.1145/2967973.2968595
[8]
Filipe Militão, Jonathan Aldrich, and Luís Caires. 2010. Aliasing Control with View-Based Typestate. In Proceedings of the 12th Workshop on Formal Techniques for Java-Like Programs (FTFJP ’10). Association for Computing Machinery, New York, NY, USA. Article 7, 7 pages. isbn:9781450305402 https://doi.org/10.1145/1924520.1924527
[9]
P. David Stotts and William Pugh. 1994. Parallel Finite Automata for Modeling Concurrent Software Systems. J. Syst. Softw., 27, 1 (1994), Oct., 27–43. issn:0164-1212 https://doi.org/10.1016/0164-1212(94)90112-0
[10]
Joshua Sunshine, Karl Naden, Sven Stork, Jonathan Aldrich, and Éric Tanter. 2011. First-Class State Change in Plaid. SIGPLAN Not., 46, 10 (2011), Oct., 713–732. issn:0362-1340 https://doi.org/10.1145/2076021.2048122
[11]
Maurice H. ter Beek and Jetty Kleijn. 2007. Infinite unfair shuffles and associativity. Theoretical Computer Science, 380, 3 (2007), 401–410. issn:0304-3975 https://doi.org/10.1016/j.tcs.2007.03.030 Combinatorics on Words.

Cited By

View all
  • (2021)Papaya: Global Typestate Analysis of Aliased ObjectsProceedings of the 23rd International Symposium on Principles and Practice of Declarative Programming10.1145/3479394.3479414(1-13)Online publication date: 6-Sep-2021

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
FTfJP '21: Proceedings of the 23rd ACM International Workshop on Formal Techniques for Java-like Programs
July 2021
67 pages
ISBN:9781450385435
DOI:10.1145/3464971
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 the author(s) 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: 11 July 2021

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Behavioural types
  2. separation logic

Qualifiers

  • Research-article

Conference

ISSTA '21
Sponsor:

Acceptance Rates

Overall Acceptance Rate 51 of 75 submissions, 68%

Upcoming Conference

ISSTA '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 10 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2021)Papaya: Global Typestate Analysis of Aliased ObjectsProceedings of the 23rd International Symposium on Principles and Practice of Declarative Programming10.1145/3479394.3479414(1-13)Online publication date: 6-Sep-2021

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media