Assuring Structural Parallel Programs based on Scoped Permissions

This paper proposes a “scoped permission” system for a simple object-oriented language with sharedmemory and structural parallelism. The permission is abstracted as a linear value associated with some piece of state in a program and it is normally adopted in program analysis and verification. In this paper, the permission nesting is utilized to model the protection mechanism associated with field instances, while the partial order among different locks is specified when parallel executions start. By generating and eliminating shared facts, the order in our system is designed to be scoped and mutable. We show the operational semantics as well as some permission rules, and demonstrate how to interpret program annotations into permission representations.

[1]  Naoki Kobayashi,et al.  Type Systems for Concurrent Programs , 2002, 10th Anniversary Colloquium of UNU/IIST.

[2]  John Tang Boyland,et al.  A Fundamental Permission Interpretation for Ownership Types , 2008, 2008 2nd IFIP/IEEE International Symposium on Theoretical Aspects of Software Engineering.

[3]  N. Meyers,et al.  H = W. , 1964, Proceedings of the National Academy of Sciences of the United States of America.

[4]  Dawson R. Engler,et al.  RacerX: effective, static detection of race conditions and deadlocks , 2003, SOSP '03.

[5]  Thomas Gross,et al.  A programmer-oriented approach to safe concurrency , 2003 .

[6]  Stephen N. Freund,et al.  Type-based race detection for Java , 2000, PLDI '00.

[7]  John Tang Boyland,et al.  Connecting effects and uniqueness with adoption , 2005, POPL '05.

[8]  Stephen D. Brookes,et al.  A Semantics for Concurrent Separation Logic , 2004, CONCUR.

[9]  John Tang Boyland,et al.  Checking Interference with Fractional Permissions , 2003, SAS.

[10]  李幼升,et al.  Ph , 1989 .

[11]  Aaron Greenhouse,et al.  Assuring and evolving concurrent programs: annotations and policy , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[12]  Martin C. Rinard,et al.  A parameterized type system for race-free Java programs , 2001, OOPSLA '01.

[13]  Martín Abadi,et al.  Types for Safe Locking , 1999, ESOP.

[14]  Martin C. Rinard,et al.  ACM Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), November 2002 Ownership Types for Safe Programming: Preventing Data Races and Deadlocks , 2022 .