Dr Raymond Hu
Lecturer in Computer Science
School of Electronic Engineering and Computer Science
Queen Mary University of London
Queen Mary University of London
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
Publications of specific relevance to the Centre for Fundamental Computer Science
2024
Pears 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
28-08-2024
Costa 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
06-04-2024
2023
Iraci 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
16-10-2023
2021
Viering 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
15-10-2021
2020
Griesemer 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
13-11-2020
Zhou 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
13-11-2020
2019
Castro 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
02-01-2019
2018
Cogumbreiro 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
11-12-2018
Neykova 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
24-02-2018
Viering 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
01-01-2018
2017
Hu R (2017). Distributed programming using Java APIs generated from session types. Behavioural Types: from Theory to Tools English 287-308.
31-07-2017
31-07-2017
Scalas A, Dardha O, Hu R and Yoshida N (2017). A linear decomposition of multiparty sessions for safe distributed programming.
01-06-2017
01-06-2017
2016
Ancona 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
01-01-2016
2015
Cogumbreiro 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
24-01-2015
2014
Demangeon 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
19-11-2014
KOUZAPAS 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
10-11-2014
Honda 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
01-01-2014
Fossati L, Hu R and Yoshida N (2014). Multiparty Session Nets. Lecture Notes in Computer Science, Springer Nature vol. 8902, 112-127.
01-01-2014
01-01-2014
2013
Hu 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
18-11-2013
Hu R, Neykova R, Yoshida N, Demangeon R and Honda K (2013). Practical Interruptible Conversations. Runtime Verification 130-148.
01-01-2013
01-01-2013
2012
Denielou 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
11-10-2012
2011
Ng N, Yoshida N, Pernet O, Hu R and Kryftis Y (2011). Safe Parallel Programming with Session Java.
01-01-2011
01-01-2011
2010
Bejleri A, Hu R and Yoshida N (2010). Session-Based Programming for Parallel Algorithms: Expressiveness and Performance.
06-02-2010
06-02-2010
Hu 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
01-01-2010
Yoshida N, Deniélou P-M, Bejleri A and Hu R (2010). Parameterised Multiparty Session Types.
01-01-2010
01-01-2010