Dr Raymond Hu

Raymond Hu

Lecturer in Computer Science

School of Electronic Engineering and Computer Science
Queen Mary University of London
ORCID Google Scholar

Research

Programming languages, Distributed programming, Type systems, Session types, Behavioural types

Interests

Recent and current topics.

Below are some selected topics and publications.
See my Google Scholar page for a more complete publication list:
https://scholar.google.com/citations?hl=en&user=b08Zz1kAAAAJ

Design and implementation of generics for the Go programming language. Go is a programming language developed by Google, and used by many companies and organisations globally. The impact of this work includes contributing to the final design of generics for Go released in Go 1.18.
https://doi.org/10.1145/3428217

Theory, implementation and applications of session types. This line of work has developed languages and practical tools for formal specification and safe programming of message passing protocols for concurrent and distributed systems. It stems from industry collaborations with Red Hat, Cognizant and the Ocean Observatories Initiative.

- Rate-safe session types for embedded systems and Internet-of-Things.
https://doi.org/10.1145/3622854

- Failure handling and fault tolerance.
https://doi.org/10.1145/3485501
https://doi.org/10.1007/978-3-319-89884-1_28

- Refinement types for communication protocols.
https://doi.org/10.1145/3428216
https://doi.org/10.1145/3178372.3179495

- Communication protocols parameterised on the number of participants.
https://doi.org/10.1145/3290342

Run-time deadlock verification for phasers, a generalisation of the concept of synchronisation barrier in concurrent programming that allows processes to asynchronously advance to later synchronisation phases ahead of their peers.
https://doi.org/10.1145/3229060



Recent news

- Our paper on timed session programming in Erlang is accepted at ERLANG '24.
- My student Dawid Lachowicz won the Kohei Honda Prize for his Final Year Project on extending Go with
generic arrays. Congratulations, Dawid!
- I participated and learned a lot at the Dagtushl Seminar “Next Generation Protocols for Heterogeneous
Systems”.
- My co-authors Grant Iraci and Cheng-En Chuang won a prize in the Russell L. Agrusa Student Innovation
Competition at the University at Buffalo for our work on rate-based session types.
- I am co-chair of the PLACES '24 workshop (part of ETAPS '24) with Diana Costa. Please consider submitting
and attending!
- Our software artifact for our paper at OOPSLA '23 won the OOPSLA Distinguished Artifact award.
- I was a discussion panel member at the ST30 "30 Years of Session Types" workshop at SPLASH '23.
- I received a "Best early-career educator" award (2023) from the School of EECS at QMUL.
- Our paper on event-driven multiparty session actors is accepted at HOPE '23.
- Our paper on rate-safe session types for embedded systems and IoT is accepted at OOPSLA '23.
- I gave an invited talk at the Stardust Project meeting (Sep '22).
- I was a member of the PhD Committee for Malte Viering, whose thesis has been accepted with the grade of
"excellent" (summa cum laude). Congratulations, Dr Viering!
- I gave an invited seminar at the University of Kent about our work on session types for fault-tolerant
event-driven programming (Dec '21).
- I participated in the Dagstuhl Seminar "Behavioural Types: Bridging Theory and Practice".
- Our paper on session types for fault-tolerant event-driven programming is accepted at OOPSLA '21.



General research interests

Programming languages
Distributed programming
Concurrency and communication
Message passing
Type systems
Session types
Behavioural types

Publications

solid heart iconPublications of specific relevance to the Centre for Fundamental Computer Science

2024

bullet iconPears J, Bocchi L and Hu R (2024). Erlang on TOAST: Generating Erlang Stubs with Inline TOAST Monitors. Proceedings of the 23rd ACM SIGPLAN International Workshop on Erlang
28-08-2024
bullet iconCosta D and Hu R (2024). Proceedings 15th Workshop on Programming Language Approaches to Concurrency and Communication-cEntric Software. Electronic Proceedings in Theoretical Computer Science, Open Publishing Association vol. 401 
06-04-2024

2023

Relevant PublicationIraci G, Chuang C-E, Hu R and Ziarek L (2023). Validating IoT Devices with Rate-Based Session Types. Proceedings of the ACM on Programming Languages, Association for Computing Machinery (ACM) vol. 7 (OOPSLA 2), 1589-1617.  
16-10-2023

2021

Relevant PublicationViering M, Hu R, Eugster P and Ziarek L (2021). A multiparty session typing discipline for fault-tolerant event-driven distributed programming. Proceedings of the ACM on Programming Languages vol. 5 (OOPSLA), 1-30.  
15-10-2021

2020

Relevant PublicationGriesemer R, Hu R, Kokke W, Lange J, Taylor IL, Toninho B, Wadler P and Yoshida N (2020). Featherweight go. Proceedings of the ACM on Programming Languages, Association for Computing Machinery (ACM) vol. 4 (OOPSLA), 1-29.  
13-11-2020
Relevant PublicationZhou F, Ferreira F, Hu R, Neykova R and Yoshida N (2020). Statically verified refinements for multiparty protocols. Proceedings of the ACM on Programming Languages, Association for Computing Machinery (ACM) vol. 4 (OOPSLA), 1-30.  
13-11-2020

2019

Relevant PublicationCastro D, Hu R, Jongmans S-S, Ng N and Yoshida N (2019). Distributed programming using role-parametric session types in go: statically-typed endpoint APIs for dynamically-instantiated communication structures. Proceedings of the ACM on Programming Languages, Association for Computing Machinery (ACM) vol. 3 (POPL), 1-30.  
02-01-2019

2018

Relevant PublicationCogumbreiro T, Hu R, Martins F and Yoshida N (2018). Dynamic Deadlock Verification for General Barrier Synchronisation. ACM Transactions on Programming Languages and Systems, Association for Computing Machinery (ACM) vol. 41 (1), 1-38.  
11-12-2018
Relevant PublicationNeykova R, Hu R, Yoshida N and Abdeljallal F (2018). A session type provider: compile-time API generation of distributed protocols with refinements in F#. Proceedings of the 27th International Conference on Compiler Construction
24-02-2018
Relevant PublicationViering M, Chen T-C, Eugster P, Hu R and Ziarek L (2018). A Typing Discipline for Statically Verified Crash Failure Handling in Distributed Systems. 
01-01-2018

2017

Relevant PublicationHu R (2017). Distributed programming using Java APIs generated from session types. Behavioural Types: from Theory to Tools English  287-308.  
31-07-2017
Relevant PublicationScalas A, Dardha O, Hu R and Yoshida N (2017). A linear decomposition of multiparty sessions for safe distributed programming. 
01-06-2017
Relevant PublicationHu R and Yoshida N (2017). Explicit Connection Actions in Multiparty Session Types. 
01-01-2017

2016

Relevant PublicationAncona D, Bono V, Bravetti M, Campos J, Castagna G, Deniélou P-M, Gay SJ, Gesbert N, Giachino E, Hu R, Johnsen EB, Martins F, Mascardi V, Montesi F, Neykova R, Ng N, Padovani L, Vasconcelos VT and Yoshida N (2016). Behavioral Types in Programming Languages. Foundations and Trends® in Programming Languages, Now Publishers vol. 3 (2-3), 95-230.  
01-01-2016
Relevant PublicationHu R and Yoshida N (2016). Hybrid Session Verification Through Endpoint API Generation. 
01-01-2016

2015

Relevant PublicationCogumbreiro T, Hu R, Martins F and Yoshida N (2015). Dynamic deadlock verification for general barrier synchronisation. Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
24-01-2015

2014

Relevant PublicationDemangeon R, Honda K, Hu R, Neykova R and Yoshida N (2014). Practical interruptible conversations: distributed dynamic verification with multiparty session types and Python. Formal Methods in System Design, Springer Nature vol. 46 (3), 197-225.  
19-11-2014
Relevant PublicationKOUZAPAS D, YOSHIDA N, HU R and HONDA K (2014). On asynchronous eventful session semantics. Mathematical Structures in Computer Science, Cambridge University Press (CUP) vol. 26 (2), 303-364.  
10-11-2014
Relevant PublicationHonda K, Hu R, Neykova R, Chen T-C, Demangeon R, Deniélou P-M and Yoshida N (2014). Structuring Communication with Session Types. 
01-01-2014
Relevant PublicationFossati L, Hu R and Yoshida N (2014). Multiparty Session Nets. Lecture Notes in Computer Science, Springer Nature vol. 8902, 112-127.  
01-01-2014
Relevant PublicationYoshida N, Hu R, Neykova R and Ng N (2014). The Scribble Protocol Language. 
01-01-2014

2013

Relevant PublicationHu R, Neykova R, Yoshida N, Demangeon R and Honda K (2013). Practical interruptible conversations: Distributed dynamic verification with session types and Python. 
18-11-2013
Relevant PublicationHu R, Neykova R, Yoshida N, Demangeon R and Honda K (2013). Practical Interruptible Conversations. Runtime Verification  130-148.  
01-01-2013
Relevant PublicationNeykova R, Yoshida N and Hu R (2013). SPY: Local Verification of Global Protocols. 
01-01-2013

2012

Relevant PublicationDenielou P-M, Yoshida N, Bejleri A and Hu R (2012). Parameterised Multiparty Session Types. Logical Methods in Computer Science, Centre pour la Communication Scientifique Directe (CCSD) vol. Volume 8, Issue 4 
11-10-2012

2011

Relevant PublicationNg N, Yoshida N, Pernet O, Hu R and Kryftis Y (2011). Safe Parallel Programming with Session Java. 
01-01-2011

2010

Relevant PublicationBejleri A, Hu R and Yoshida N (2010). Session-Based Programming for Parallel Algorithms: Expressiveness and Performance. 
06-02-2010
Relevant PublicationHu R, Kouzapas D, Pernet O, Yoshida N and Honda K (2010). Type-Safe Eventful Sessions in Java. ECOOP 2010 – Object-Oriented Programming  329-353.  
01-01-2010
Relevant PublicationYoshida N, Deniélou P-M, Bejleri A and Hu R (2010). Parameterised Multiparty Session Types. 
01-01-2010

2008

Relevant PublicationHONDA K, Hu R and Yoshida N (2008). Session-Based Distributed Programming in Java. 
01-01-2008