Concurrent Programming Concepts
ACM Computing Surveys (CSUR)
Monitors: an operating system structuring concept
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Correctness in operating systems
Correctness in operating systems
Axiomatic proof techniques for parallel programs.
Axiomatic proof techniques for parallel programs.
Axiomatic semantics of communicating sequential processes
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
ACM Computing Surveys (CSUR)
Describing and analyzing distributed software system designs
ACM Transactions on Programming Languages and Systems (TOPLAS)
The geometry of semaphore programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Extending Ina Jo with Temporal Logic
IEEE Transactions on Software Engineering
Tentative steps toward a development method for interfering programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Language Constructs for Specifying Concurrency in CDL
IEEE Transactions on Software Engineering
Self-assessment procedure XXI: a self-assessment procedure on concurrency
Communications of the ACM
Verifying General Safety Properties of Ada Tasking Programs
IEEE Transactions on Software Engineering
Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Relational Notation for State Transition Systems
IEEE Transactions on Software Engineering
Using symbolic execution for verification of Ada tasking programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Specification and Verified Decomposition of System Requirements Using CSP
IEEE Transactions on Software Engineering
ACM Transactions on Programming Languages and Systems (TOPLAS)
PODC '94 Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing
Applying formal methods to semantic-based decomposition of transactions
ACM Transactions on Database Systems (TODS)
How to Make a Correct Multiprocess Program Execute Correctly on a Multiprocessor
IEEE Transactions on Computers
Reasoning about implicit invocation
SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
Composition and refinement of discrete real-time systems
ACM Transactions on Software Engineering and Methodology (TOSEM)
Formal Justification of a Proof System for Communicating Sequential Processes
Journal of the ACM (JACM)
Path analysis of distributed programs
CSC '88 Proceedings of the 1988 ACM sixteenth annual conference on Computer science
Concepts and Notations for Concurrent Programming
ACM Computing Surveys (CSUR)
A New Approach to Proving the Correctness of Multiprocess Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Synthesis of Resource Invariants for Concurrent Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Proof System for Communicating Sequential Processes
ACM Transactions on Programming Languages and Systems (TOPLAS)
Parallel programs: proofs, principles, and practice
Communications of the ACM
Synchronization with eventcounts and sequencers
Communications of the ACM
High level programming for distributed computing
Communications of the ACM
Applications of high level control flow
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Parallel program correctness through refinement
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Synthesis of resource invariants for concurrent programs
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Modular verification of concurrent programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Mechanization of Unity in PC-NQTHM-92
Journal of Automated Reasoning
IEEE Transactions on Software Engineering
Archetype: A Unified Method for the Design and Implementation of Protocol Architectures
IEEE Transactions on Software Engineering
Multilevel Data Structures: Models and Performance
IEEE Transactions on Software Engineering
Using Formal Methods to Reason about Semantics-Based Decompositions of Transactions
VLDB '95 Proceedings of the 21th International Conference on Very Large Data Bases
Model Checking TLA+ Specifications
CHARME '99 Proceedings of the 10th IFIP WG 10.5 Advanced Research Working Conference on Correct Hardware Design and Verification Methods
FME '02 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods - Getting IT Right
Survey of recent operating systems research, designs and implementations
ACM SIGOPS Operating Systems Review
Temporal verification of carrier-sense local area network protocols
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Denotational semantics of concurrency
STOC '82 Proceedings of the fourteenth annual ACM symposium on Theory of computing
Specifying and proving properties of sentinel processes
ICSE '81 Proceedings of the 5th international conference on Software engineering
Formal specification and verification of a connection establishment protocol
SIGCOMM '81 Proceedings of the seventh symposium on Data communications
A synthesis rule for concurrent systems
DAC '78 Proceedings of the 15th Design Automation Conference
GEM: A tool for concurrency specification and verification
PODC '83 Proceedings of the second annual ACM symposium on Principles of distributed computing
Verification of a monitor specification
ICSE '76 Proceedings of the 2nd international conference on Software engineering
Design and verification of real-time systems
ICSE '76 Proceedings of the 2nd international conference on Software engineering
A software quality assurance experiment
Proceedings of the software quality assurance workshop on Functional and performance issues
On formal and informal proofs for program correctness
ACM SIGPLAN Notices
Use of data abstraction in process specification
ACM SIGSOFT Software Engineering Notes
Efficient data race and deadlock prevention in concurrent object-oriented programs
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Verifying mutual exclusion and liveness properties with split preconditions
Journal of Computer Science and Technology
Concurrent program design in the extended theory of Owicki and Gries
CATS '05 Proceedings of the 2005 Australasian symposium on Theory of computing - Volume 41
A brief history of process algebra
Theoretical Computer Science - Process algebra
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Towards the Formal Verification of a C0 Compiler: Code Generation and Implementation Correctnes
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
Towards A Truly Concurrent Model for Processes Sharing Resources
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
Proving correctness of highly-concurrent linearisable objects
Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
Specifying memory consistency of write buffer multiprocessors
ACM Transactions on Computer Systems (TOCS)
A semantics for concurrent separation logic
Theoretical Computer Science
Resources, concurrency, and local reasoning
Theoretical Computer Science
Machine and collection abstractions for user-implemented data-parallel programming
Scientific Programming
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Modeling And Verification Of Real-Time Systems
Journal of Integrated Design & Process Science
Proving consistency of database transactions
VLDB '79 Proceedings of the fifth international conference on Very Large Data Bases - Volume 5
Assertional reasoning about data races in relaxed memory models
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
A Mechanical Analysis of Program Verification Strategies
Journal of Automated Reasoning
Fundamenta Informaticae - Behavior of Composed Concurrent Systems: Logic and Reasoning
25 Years of Model Checking
Local Proofs for Linear-Time Properties of Concurrent Programs
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Thread Quantification for Concurrent Shape Analysis
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Verifying correct usage of atomic blocks and typestate
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Verifying distributed systems: the operational approach
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Towards type-theoretic semantics for transactional concurrency
Proceedings of the 4th international workshop on Types in language design and implementation
Towards Automatic Stability Analysis for Rely-Guarantee Proofs
VMCAI '09 Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation
Local proofs for global safety properties
Formal Methods in System Design
Developing parallel programs: A design-oriented perspective
IWMSE '09 Proceedings of the 2009 ICSE Workshop on Multicore Software Engineering
Asserting and checking determinism for multithreaded programs
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
VCC: A Practical System for Verifying Concurrent C
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
A prover for parallel processes
IJCAI'79 Proceedings of the 6th international joint conference on Artificial intelligence - Volume 1
Multicore parallel min-cost flow algorithm for CAD applications
Proceedings of the 46th Annual Design Automation Conference
Formal Verification of a Reader-Writer Lock Implementation in C
Electronic Notes in Theoretical Computer Science (ENTCS)
Enforcing Concurrent Temporal Behaviors
Electronic Notes in Theoretical Computer Science (ENTCS)
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)
Electronic Notes in Theoretical Computer Science (ENTCS)
Combined network complexity measures
IBM Journal of Research and Development
On the completeness of compositional reasoning methods
ACM Transactions on Computational Logic (TOCL)
On the relationship between concurrent separation logic and assume-guarantee reasoning
ESOP'07 Proceedings of the 16th European conference on Programming
Composing specifications of event based applications
FASE'03 Proceedings of the 6th international conference on Fundamental approaches to software engineering
Symmetry and completeness in the analysis of parameterized systems
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
Local proofs for global safety properties
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Multicore parallelization of min-cost flow for CAD applications
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems - Special section on the ACM IEEE international conference on formal methods and models for codesign (MEMOCODE) 2009
Staged concurrent program analysis
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
VSTTE'10 Proceedings of the Third international conference on Verified software: theories, tools, experiments
Expressive modular fine-grained concurrency specification
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parallelizing a symbolic compositional model-checking algorithm
HVC'10 Proceedings of the 6th international conference on Hardware and software: verification and testing
A semantic model for many-core parallel computing
COCOA'11 Proceedings of the 5th international conference on Combinatorial optimization and applications
HAWKEYE: effective discovery of dataflow impediments to parallelization
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
A Revisionist History of Concurrent Separation Logic
Electronic Notes in Theoretical Computer Science (ENTCS)
Syntactic control of interference for separation logic
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A hoare calculus for the verification of synchronous languages
PLPV '12 Proceedings of the sixth workshop on Programming languages meets program verification
Formalising progress properties of non-blocking programs
ICFEM'06 Proceedings of the 8th international conference on Formal Methods and Software Engineering
A JMM-Faithful non-interference calculus for java
FIDJI'04 Proceedings of the 4th international conference on Scientific Engineering of Distributed Java Applications
A dash of fairness for compositional reasoning
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
SPLIT: a compositional LTL verifier
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Verification of object-oriented programs: A transformational approach
Journal of Computer and System Sciences
ACM Transactions on Programming Languages and Systems (TOPLAS)
Logical concurrency control from sequential proofs
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Simplifying linearizability proofs with reduction and abstraction
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Verification of scalable synchronous queue
CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
On the strength of owicki-gries for resources
APLAS'11 Proceedings of the 9th Asian conference on Programming Languages and Systems
Automatic inference of access permissions
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Local symmetry and compositional verification
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Verifying two lines of c with why3: an exercise in program verification
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
Multiprogram design in the theory of Owicki and Gries
IW-FM'01 Proceedings of the 5th Irish conference on Formal Methods
Derivation of distributed programs in the theory of owicki and gries: an example
IWFM'03 Proceedings of the 6th international conference on Formal Methods
Structured flowcharts for multiprocessing
Computer Languages
Thread-Modular model checking with iterative refinement
NFM'12 Proceedings of the 4th international conference on NASA Formal Methods
Fundamenta Informaticae - Behavior of Composed Concurrent Systems: Logic and Reasoning
Modular safety checking for fine-grained concurrency
SAS'07 Proceedings of the 14th international conference on Static Analysis
Variable permissions for concurrency verification
ICFEM'12 Proceedings of the 14th international conference on Formal Engineering Methods: formal methods and software engineering
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
Formal analysis of event-driven cyber physical systems
Proceedings of the First International Conference on Security of Internet of Things
A cylinder computation model for many-core parallel computing
Theoretical Computer Science
Analysis of Recursively Parallel Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Aliasing in Object-Oriented Programming
Quantitative Reasoning for Proving Lock-Freedom
LICS '13 Proceedings of the 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science
Hi-index | 48.29 |
An axiomatic method for proving a number of properties of parallel programs is presented. Hoare has given a set of axioms for partial correctness, but they are not strong enough in most cases. This paper defines a more powerful deductive system which is in some sense complete for partial correctness. A crucial axiom provides for the use of auxiliary variables, which are added to a parallel program as an aid to proving it correct. The information in a partial correctness proof can be used to prove such properties as mutual exclusion, freedom from deadlock, and program termination. Techniques for verifying these properties are presented and illustrated by application to the dining philosophers problem.