POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
Global/Local Subtyping and Capability Inference for a Distributed pi-calculus
ICALP '98 Proceedings of the 25th International Colloquium on Automata, Languages and Programming
Typing correspondence assertions for communication protocols
Theoretical Computer Science
A unified theory of shared memory consistency
Journal of the ACM (JACM)
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Java Concurrency in Practice
Journal of Functional Programming
Types for safe locking: Static race detection for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs
IEEE Transactions on Computers
ACM Transactions on Programming Languages and Systems (TOPLAS)
Foundations of the C++ concurrency memory model
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
On Validity of Program Transformations in the Java Memory Model
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Relaxed memory models: an operational approach
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
FastTrack: efficient and precise dynamic race detection
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
A randomized scheduler with probabilistic guarantees of finding bugs
Proceedings of the fifteenth edition of ASPLOS on Architectural support for programming languages and operating systems
The java memory model: operationally, denotationally, axiomatically
ESOP'07 Proceedings of the 16th European conference on Programming
Static analysis via abstract interpretation of the happens-before memory model
TAP'08 Proceedings of the 2nd international conference on Tests and proofs
Relaxed-memory concurrency and verified compilation
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Static analysis of run-time errors in embedded critical parallel C programs
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
Concurrent constraint-based memory machines: a framework for java memory models (summary)
ASIAN'04 Proceedings of the 9th Asian Computing Science conference on Advances in Computer Science: dedicated to Jean-Louis Lassez on the Occasion of His 5th Cycle Birthday
Generative operational semantics for relaxed memory models
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Soundness of data flow analyses for weak memory models
APLAS'11 Proceedings of the 9th Asian conference on Programming Languages and Systems
Making the java memory model safe
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
Multicore computers implementing weak memory models are mainstream, yet type-based analyses of these models remain rare. We help fill this gap. We not only prove the soundness of a type system for a weak execution model, but we also show that interesting properties of that model can be embedded in the types themselves. We argue that correspondence assertions can be used in a programming discipline that captures happens-before relationships, which are the basis for reasoning about weak memory in Java. This programming discipline is flexible and can be statically enforced. We present several examples from java.util.concurrent and prove the static semantics sound with respect to an execution model based on Java's memory model.