Concurrent programming: principles and practice
Concurrent programming: principles and practice
Verifying properties of parallel programs: an axiomatic approach
Communications of the ACM
Concurrent control with “readers” and “writers”
Communications of the ACM
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
A Semantic Basis for Local Reasoning
FoSSaCS '02 Proceedings of the 5th International Conference on Foundations of Software Science and Computation Structures
Proving Pointer Programs in Hoare Logic
MPC '00 Proceedings of the 5th International Conference on Mathematics of Program Construction
Synchronization of communicating processes
SOSP '71 Proceedings of the third ACM symposium on Operating systems principles
Permission accounting in separation logic
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Checking interference with fractional permissions
SAS'03 Proceedings of the 10th international conference on Static analysis
Resources, concurrency, and local reasoning
Theoretical Computer Science
Automatic Parallelization and Optimization of Programs by Proof Rewriting
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
Proving Copyless Message Passing
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 for Shared-Memory Programs: Semantics and Soundness
Electronic Notes in Theoretical Computer Science (ENTCS)
Fairness, Resources, and Separation
Electronic Notes in Theoretical Computer Science (ENTCS)
Abstraction and refinement for local reasoning
VSTTE'10 Proceedings of the Third international conference on Verified software: theories, tools, experiments
Variable side conditions and greatest relations in algebraic separation logic
RAMICS'11 Proceedings of the 12th international conference on Relational and algebraic methods in computer science
Syntactic control of interference for separation logic
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
VeriSmall: verified smallfoot shape analysis
CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
Verification of scalable synchronous queue
CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
Practical permissions for race-free parallelism
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
A marriage of rely/guarantee and separation logic
CONCUR'07 Proceedings of the 18th international conference on Concurrency Theory
Variable permissions for concurrency verification
ICFEM'12 Proceedings of the 14th international conference on Formal Engineering Methods: formal methods and software engineering
The ramifications of sharing in data structures
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Subjective auxiliary state for coarse-grained concurrency
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Ribbon proofs for separation logic
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Hi-index | 0.00 |
Separation logic [Reynolds, J. C., Intuitionistic reasoning about shared mutable data structure, in: J. Davies, B. Roscoe and J. Woodcock, editors, Millennial Perspectives in Computer Science, Palgrave, 2000 pp. 303-321; Reynolds, J. C., Separation logic: A logic for shared mutable data structures, in: LICS '02: Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science (2002), pp. 55-74; O'Hearn, P., J. Reynolds and H. Yang, Local reasoning about programs that alter data structures, in: L. Fribourg, editor, CSL 2001 (2001), pp. 1-19, LNCS 2142] began life as an extended formalisation of Burstall's treatment of list-mutating programs [Burstall, R., Some techniques for proving correctness of programs which alter data structures, Machine Intelligence 7 (1972), pp. 23-50]. It rapidly became clear that there was more that it could say: O'Hearn's discovery [O'Hearn, P., Notes on separation logic for shared-variable concurrency (2002), unpublished] of ownership transfer of buffers between threads and Boyland's suggestion [Boyland, J., Checking interference with fractional permissions, in: R. Cousot, editor, Static Analysis: 10th International Symposium, Lecture Notes in Computer Science 2694 (2003), pp. 55-72] of permissions to deal with variable and heap sharing pointed the way to a treatment of safe resource management in concurrent programs. That treatment has so far been incomplete because it deals only with heap cells and not with with (stack) variables as resource. Adding variable contexts' - in the simplest case, lists of owned variables - to assertions in Hoare logic allows a resource treatment of variables. It seems that a formal treatment of aliasing is possible too. It gives a complete formal treatment of critical sections (for the first time, so far as I am aware).