UNIVERSITY OF HERTFORDSHIRE COMPUTER SCIENCE RESEARCH COLLOQUIUM presents "Types and programming for safe interactions" Dr. Raymond Hu (School of Engineering and Computer Science, University of Hertfordshire) 12 November 2019 13:00 - 14:00 Hatfield, College Lane Campus Seminar Room C400 Everyone is welcome to attend Refreshments will be available Abstract: Many programmers enjoy and rely on -- take for granted, perhaps -- the benefits of types in programming languages. In practical terms, the essence of a type system is a lightweight formal method for safely ruling out certain classes of errors, such as attempting an invalid operation on the data at hand. Types further serve as compiler-verified documentation, and can be exploited for peformance optimisations. This talk looks beyond the traditional notion of data types to consider types for interactions -- behavioural types. Here, we refer to interaction in a general sense, wherever a set of programs collaborate via some form of message passing communication. This encompasses the Internet applications we use on a daily basis, agent systems, Web services, data-centric parallel algorithms, and so forth. The first part of this talk introduces the theory of session types, one of the well established methods in behavioural types. Whereas data types describe data structures, session types describe interaction structures, i.e., communication protocols. The second part demonstrates implementations and applications of session types to practical programming, in particular the Scribble framework based on multiparty session types. About the speaker: Raymond Hu joined the University of Hertfordshire as a Senior Lecturer in May 2019. He previously held Research Associate and Fellowship positions in the Dept. of Computing at Imperial College London, where he also received his Ph.D. and M.Sc. His research focuses on the theory and practice of type systems for concurrent and distributed computing. Recent work includes developments in session types to support protocols with dynamic and parameterised participants, fault-tolerance, and integrations with refinement types.