Imperative functional programming
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Information and Computation
Science of Computer Programming - Special issue on mathematics of program construction
CONCUR '93 Proceedings of the 4th International Conference on Concurrency Theory
A Mixed Linear and Non-Linear Logic: Proofs, Terms and Models (Extended Abstract)
CSL '94 Selected Papers from the 8th International Workshop on Computer Science Logic
ACM Transactions on Computational Logic (TOCL)
Substructural Operational Semantics as Ordered Logic Programming
LICS '09 Proceedings of the 2009 24th Annual IEEE Symposium on Logic In Computer Science
Relating state-based and process-based concurrency through linear logic (full-version)
Information and Computation
Linear type theory for asynchronous session types
Journal of Functional Programming
Two session typing systems for higher-order mobile processes
TLCA'07 Proceedings of the 8th international conference on Typed lambda calculi and applications
Lolliproc: to concurrency from classical linear logic via curry-howard and control
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Session types as intuitionistic linear propositions
CONCUR'10 Proceedings of the 21st international conference on Concurrency theory
Dependent session types via intuitionistic linear type theory
Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming
Secure distributed programming with value-dependent types
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Towards concurrent type theory
TLDI '12 Proceedings of the 8th ACM SIGPLAN workshop on Types in language design and implementation
Monads need not be endofunctors
FOSSACS'10 Proceedings of the 13th international conference on Foundations of Software Science and Computational Structures
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
In prior research we have developed a Curry-Howard interpretation of linear sequent calculus as session-typed processes. In this paper we uniformly integrate this computational interpretation in a functional language via a linear contextual monad that isolates session-based concurrency. Monadic values are open process expressions and are first class objects in the language, thus providing a logical foundation for higher-order session typed processes. We illustrate how the combined use of the monad and recursive types allows us to cleanly write a rich variety of concurrent programs, including higher-order programs that communicate processes. We show the standard metatheoretic result of type preservation, as well as a global progress theorem, which to the best of our knowledge, is new in the higher-order session typed setting.