Type driven development of concurrent communicating systems
MetadataShow full item record
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.
Brady , E C 2017 , ' Type driven development of concurrent communicating systems ' Computer Science , vol. 18 , no. 3 , 1413 . DOI: 10.7494/csci.2017.18.3.1413
© 2017, the Author(s). The content of the journal is freely available according to the Creative Commons License Attribution 4.0 International (CC BY 4.0)
DescriptionThis work was kindly supported by SICSA (the Scottish Informatics and Computer Science Alliance) and EPSRC grant EP/N024222/1 (Type-driven Verification of Communicating Systems).
Items in the St Andrews Research Repository are protected by copyright, with all rights reserved, unless otherwise indicated.