POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Concurrent programming in ML
A Fully Abstract Translation between a Lambda-Calculus with Reference Types and Standard ML
TLCA '95 Proceedings of the Second International Conference on Typed Lambda Calculi and Applications
Correctness of data representations involving heap data structures
Science of Computer Programming - Special issue on 12th European symposium on programming (ESOP 2003)
A theory of bisimulation for a fragment of concurrent ML with local names
Theoretical Computer Science
On the representation of McCarthy's amb in the π-calculus
Theoretical Computer Science - Expressiveness in concurrency
Small bisimulations for reasoning about higher-order imperative programs
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Information and Computation
A concurrent lambda calculus with futures
Theoretical Computer Science - Applied semantics
Observational Semantics for a Concurrent Lambda Calculus with Reference Cells and Futures
Electronic Notes in Theoretical Computer Science (ENTCS)
Expressiveness of Process Algebras
Electronic Notes in Theoretical Computer Science (ENTCS)
Formal Verification of a C-like Memory Model and Its Uses for Verifying Program Transformations
Journal of Automated Reasoning
Mathematical Structures in Computer Science
Towards a Unified Approach to Encodability and Separation Results for Process Calculi
CONCUR '08 Proceedings of the 19th international conference on Concurrency Theory
State-dependent representation independence
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Relational reasoning for recursive types and references
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
A contextual semantics for concurrent Haskell with futures
Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming
Hi-index | 0.00 |
Motivated by the question of correctness of a specific implementation of concurrent buffers in the lambda calculus with futures underlying Alice ML, we prove that concurrent buffers and handled futures can correctly encode each other. Our translations map waiting on handled futures to queuing of concurrent buffers and vice versa. Correctness of translations means that they preserve and reflect the observations of may- and must-convergence. As a consequence of compositionality, they are also adequate with respect to a contextually defined notion of observational program semantics. We demonstrate that our approach to the correctness of implementations applies uniformly to the whole compilation process from high-level to low-level concurrent languages.