Algebraic reconstruction of types and effects
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Abstract models of memory management
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Points-to analysis in almost linear time
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parametric shape analysis via 3-valued logic
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Typed memory management via static capabilities
ACM Transactions on Programming Languages and Systems (TOPLAS)
BI as an assertion language for mutable data structures
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Enforcing high-level protocols in low-level software
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
A parameterized type system for race-free Java programs
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Adoption and focus: practical linear types for imperative programming
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Syntactic control of interference
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Ownership types for safe programming: preventing data races and deadlocks
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Ownership, encapsulation and the disjointness of type and effect
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Pointer analysis for structured parallel programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Building a Bridge between Pointer Aliases and Program Dependences
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
Capabilities for Sharing: A Generalisation of Uniqueness and Read-Only
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Alias Types for Recursive Data Structures
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
MayEqual: A New Alias Question
Proceedings of the Workshop on Object-Oriented Technology
Permission accounting in separation logic
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Connecting effects and uniqueness with adoption
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Javari: adding reference immutability to Java
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Modelling deterministic concurrent I/O
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Generic ownership for generic Java
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Iterator specification with typestates
Proceedings of the 2006 conference on Specification and verification of component-based systems
A semantics for concurrent separation logic
Theoretical Computer Science
Resources, concurrency, and local reasoning
Theoretical Computer Science
Modular typestate checking of aliased objects
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Quasi-static scheduling for safe futures
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
A type system with usage aspects
Journal of Functional Programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
PLURAL: checking protocol compliance under aliasing
Companion of the 30th international conference on Software engineering
Checking race freedom via linear programming
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
A capability calculus for concurrency and determinism
ACM Transactions on Programming Languages and Systems (TOPLAS)
Flexible Immutability with Frozen Objects
VSTTE '08 Proceedings of the 2nd international conference on Verified Software: Theories, Tools, Experiments
Verifying correct usage of atomic blocks and typestate
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Checking API protocol compliance in java
Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
Reasoning about Java's Reentrant Locks
APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
Local reasoning for abstraction and sharing
Proceedings of the 2009 ACM symposium on Applied Computing
Type-Based Automated Verification of Authenticity in Cryptographic Protocols
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
A Basis for Verifying Multi-threaded Programs
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Synchronization as a Special Case of Access Control
Electronic Notes in Theoretical Computer Science (ENTCS)
Aliasing, Confinement, and Ownership in Object-Oriented Programming
Object-Oriented Technology. ECOOP 2008 Workshop Reader
Reducing STM overhead with access permissions
International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming
Comprehending annotations on object-oriented programs using fractional permissions
International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming
International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming
Implicit Dynamic Frames: Combining Dynamic Frames and Separation Logic
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Practical API Protocol Checking with Access Permissions
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Type-Based Object Immutability with Flexible Initialization
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Polymorphic Fractional Capabilities
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
Automatic Parallelization and Optimization of Programs by Proof Rewriting
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
Concurrency by default: using permissions to express dataflow in stateful programs
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
A type and effect system for deterministic parallel Java
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
Fractional Ownerships for Safe Memory Deallocation
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
A Fresh Look at Separation Algebras and Share Accounting
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
A Grainless Semantics for Parallel Programs with Shared Mutable Data
Electronic Notes in Theoretical Computer Science (ENTCS)
Variables as Resource in Separation Logic
Electronic Notes in Theoretical Computer Science (ENTCS)
Variables as Resource for Shared-Memory Programs: Semantics and Soundness
Electronic Notes in Theoretical Computer Science (ENTCS)
Race-free and memory-safe multithreading: design and implementation in cyclone
Proceedings of the 5th ACM SIGPLAN workshop on Types in language design and implementation
Semantics of fractional permissions with nesting
ACM Transactions on Programming Languages and Systems (TOPLAS)
Type-based verification of correspondence assertions for communication protocols
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
ECOOP'07 Proceedings of the 2007 conference on Object-oriented technology
Inferring channel buffer bounds via linear programming
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
A time-aware type system for data-race protection and guaranteed initialization
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Mechanized verification with sharing
ICTAC'10 Proceedings of the 7th International colloquium conference on Theoretical aspects of computing
Concurrent abstract predicates
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
The next 700 separation logics
VSTTE'10 Proceedings of the Third international conference on Verified software: theories, tools, experiments
Aliasing control with view-based typestate
Proceedings of the 12th Workshop on Formal Techniques for Java-Like Programs
A theory of typestate-oriented programming
Proceedings of the 12th Workshop on Formal Techniques for Java-Like Programs
Modular reasoning for deterministic parallelism
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Safe nondeterminism in a deterministic-by-default parallel language
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Verifying stateful programs with substructural state and hoare types
Proceedings of the 5th ACM workshop on Programming languages meets program verification
Dafny: an automatic program verifier for functional correctness
LPAR'10 Proceedings of the 16th international conference on Logic for programming, artificial intelligence, and reasoning
The relationship between separation logic and implicit dynamic frames
ESOP'11/ETAPS'11 Proceedings of the 20th European conference on Programming languages and systems: part of the joint European conferences on theory and practice of software
Probabilistic, modular and scalable inference of typestate specifications
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Proceedings of the 25th European conference on Object-oriented programming
Lightweight verification of a multi-task threaded server: a case study with the plural tool
FMICS'11 Proceedings of the 16th international conference on Formal methods for industrial critical systems
A simple abstraction for complex concurrent indexes
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Proceedings of the 10th SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software
A Revisionist History of Concurrent Separation Logic
Electronic Notes in Theoretical Computer Science (ENTCS)
A Resource Analysis of the π-calculus
Electronic Notes in Theoretical Computer Science (ENTCS)
Concurrent Separation Logic and Operational Semantics
Electronic Notes in Theoretical Computer Science (ENTCS)
Fractional permissions without the fractions
Proceedings of the 13th Workshop on Formal Techniques for Java-Like Programs
Proceedings of the 13th Workshop on Formal Techniques for Java-Like Programs
Smallfoot: modular automatic assertion checking with separation logic
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
Syntactic control of interference for separation logic
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A type system for borrowing permissions
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The VerCors project: setting up basecamp
PLPV '12 Proceedings of the sixth workshop on Programming languages meets program verification
Static lock capabilities for deadlock freedom
TLDI '12 Proceedings of the 8th ACM SIGPLAN workshop on Types in language design and implementation
ACM Transactions on Programming Languages and Systems (TOPLAS)
A capability calculus for concurrency and determinism
CONCUR'06 Proceedings of the 17th international conference on Concurrency Theory
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Deadlock-Free channels and locks
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Behavioral interface specification languages
ACM Computing Surveys (CSUR)
Automatic inference of access permissions
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Comparing verification condition generation with symbolic execution: an experience report
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
A type and effect system for determinism in multithreaded programs
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Permission regions for race-free parallelism
RV'11 Proceedings of the Second international conference on Runtime verification
Parallel closures: a new twist on an old idea
HotPar'12 Proceedings of the 4th USENIX conference on Hot Topics in Parallelism
Isolation types and multi-core architectures
FoVeOOS'11 Proceedings of the 2011 international conference on Formal Verification of Object-Oriented Software
Superficially substructural types
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Verification of snapshotable trees using access permissions and typestate
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
Practical permissions for race-free parallelism
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
A linear concurrent constraint approach for the automatic verification of access permissions
Proceedings of the 14th symposium on Principles and practice of declarative programming
Syntactic Control of Interference and Concurrent Separation Logic
Electronic Notes in Theoretical Computer Science (ENTCS)
Type-based safe resource deallocation for shared-memory concurrency
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Uniqueness and reference immutability for safe parallelism
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Tracking linear and affine resources with JAVA(X)
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Variable permissions for concurrency verification
ICFEM'12 Proceedings of the 14th international conference on Formal Engineering Methods: formal methods and software engineering
The type discipline of behavioral separation
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Verifying concurrent memory reclamation algorithms with grace
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Relaxed separation logic: a program logic for C11 concurrency
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
A formal semantics for isorecursive and equirecursive state abstractions
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Joins: a case study in modular specification of a concurrent reentrant higher-order library
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
An operational and axiomatic semantics for non-determinism and sequence points in C
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Proceedings of the ACM SIGPLAN 2014 Workshop on Programming Languages meets Program Verification
HIPimm: verifying granular immutability guarantees
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Æminium: A Permission-Based Concurrent-by-Default Programming Language Approach
ACM Transactions on Programming Languages and Systems (TOPLAS)
Aliasing in Object-Oriented Programming
Notions of aliasing and ownership
Aliasing in Object-Oriented Programming
Alias control for deterministic parallelism
Aliasing in Object-Oriented Programming
Aliasing in Object-Oriented Programming
Aliasing in Object-Oriented Programming
Object ownership in program verification
Aliasing in Object-Oriented Programming
Aliasing in Object-Oriented Programming
A retrospective on aliasing type systems: 2012-2022
Aliasing in Object-Oriented Programming
Automata-Theoretic Semantics of Idealized Algol with Passive Expressions
Electronic Notes in Theoretical Computer Science (ENTCS)
A case study on the lightweight verification of a multi-threaded task server
Science of Computer Programming
Hi-index | 0.00 |
We describe a type system for checking interference using the concept of linear capabilities (which we call "permissions"). Our innovations include the concept of "fractional" permissions: reads can be permitted with fractional permissions whereas writes require complete permissions. This distinction expresses the fact that reads on the same state do not conflict with each other. One may give shared read access at one point while still retaining write permission afterwards. We give an operational semantics of a simple imperative language with structured parallelism and prove that the permission system enables parallelism to proceed with deterministic results.