Proceedings of the ACM on Programming Languages · 2021 · 13 citations · 32 references
ComputingComputer ScienceFormal MethodsProgramming LanguagesSystems ProgrammingConcurrency ControlConcurrent ProgrammingFirst-order LogicSpecification LanguagesType CheckingType SystemsConcurrency LogicConcurrency SemanticsConcurrent SemanticsConsistency SemanticsLiveness PropertiesLocksSession PersistenceSynchronization Semantics
We develop a principled integration of shared mutable state into a proposition-as-types linear logic interpretation of a session-based concurrent programming language. While the foundation of type systems for the functional core of programming languages often builds on the proposition-as-types correspondence, automatically ensuring strong safety and liveness properties, imperative features have mostly been handled by extra-logical constructions. Our system crucially builds on the integration of nondeterminism and sharing, inspired by logical rules of differential linear logic, and ensures session fidelity, progress, confluence and normalisation, while being able to handle first-class shareable reference cells storing any persistent object. We also show how preservation and, perhaps surprisingly, progress, resiliently survive in a natural extension of our language with first-class locks. We illustrate the expressiveness of our language with examples highlighting detailed features, up to simple shareable concurrent ADTs.
32
Algebraic laws for nondeterminism and concurrency
Matthew Hennessy, Robin Milner · Journal of the ACM · 1985 · 1.4K citations
Imperative functional programming
Simon Jones, Philip Wadler · 1993 · 1.2K citations · Full text
Gordon Plotkin · SIAM Journal on Computing · 1976 · 639 citations
Ownership types for flexible alias protection
David G. Clarke, John Potter, James Noble · 1998 · 578 citations · Full text