Typechecking Protocols with Mungo and StMungo

Kouzapas, D., Dardha, O. , Perera, R. and Gay, S. J. (2016) Typechecking Protocols with Mungo and StMungo. In: 18th International Symposium on Principles and Practice of Declarative Programming (PPDP 2016), Edinburgh, UK, 5-7 Sept 2016, pp. 146-159. ISBN 9781450341486 (doi: 10.1145/2967973.2968595)

120274.pdf - Accepted Version



We report on two tools which extend Java with support for static typechecking of communication protocols. Our Mungo tool extends Java with typestate definitions, which allow classes to be associated with state machines defining permitted sequences of method calls. A complementary tool, StMungo, takes a communication protocol specified in the Scribble protocol description language, and generates a typestate specification for each endpoint, capturing the permitted sequences of messages along that channel. Endpoint implementations can be validated by Mungo against their typestate definitions and then compiled as usual with javac. We formalise Mungo’s typestate inference system and demonstrate the Scribble, Mungo and StMungo toolchain via a typechecked SMTP client that can communicate with a real-world SMTP server.

Item Type:Conference Proceedings
Glasgow Author(s) Enlighten ID:Gay, Professor Simon and Dardha, Dr Ornela and Kouzapas, Mr Dimitrios and Perera, Dr Roland
Authors: Kouzapas, D., Dardha, O., Perera, R., and Gay, S. J.
College/School:College of Science and Engineering > School of Computing Science
Copyright Holders:Copyright © 2016 The Authors
First Published:First published in Proceedings of the 18th International Symposium on Principles and Practice of Declarative Programming: 146-159
Publisher Policy:Reproduced in accordance with the copyright policy of the publisher
Related URLs:

University Staff: Request a correction | Enlighten Editors: Update this record

Project CodeAward NoProject NamePrincipal InvestigatorFunder's NameFunder RefLead Dept
612411From Data Types to Session Types - A Basis for Concurrency and Distribution.Simon GayEngineering & Physical Sciences Research Council (EPSRC)EP/K034413/1COM - COMPUTING SCIENCE