Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Type-driven Development of Concurrent Communicating Systems (JCS '17) #48

Open
brianhempel opened this issue Nov 1, 2018 · 0 comments

Comments

@brianhempel
Copy link
Contributor

brianhempel commented Nov 1, 2018

Type-driven Development of Concurrent Communicating Systems (JCS '17)
Edwin Brady
https://journals.agh.edu.pl/csci/article/download/1413/1840
LambdaConf Video: https://www.youtube.com/watch?v=IQO9N0Y8tcM

Modern software systems rely on communication, for example mobile applications communicating with a central server, distributed systems coordinating a telecommunications network, or concurrent systems handling events and processes in a desktop application. However, reasoning about concurrent programs is hard, since we must reason about each process and the order in which communication might happen between processes. In this paper, I describe a type-driven approach to implementing communicating concurrent programs, using the dependently typed programming language Idris. I show how the type system can be used to describe resource access protocols (such as controlling access to a file handle) and verify that programs correctly follow those protocols. Finally, I show how to use the type system to reason about the order of communication between concurrent processes, ensuring that each end of a communication channel follows a defined protocol.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant