Please log in to watch this conference skillscast.
I will give a brief history of types, and will discuss some new, and not that new, type systems, such as session types (types for distributed programs), and refinement types (types with predicates). I will challenge you to think how (and why) we can stretch the notion of types and use them to prevent communication faults such as deadlocks and communication mismatches.
In particular, I will discuss two F# projects that have flirted with the idea of expressive types in F#. These are session type providers — a type provider which enables programming of safe communication protocols; and Fluid types — a toy compiler extension that infers predicates from F# programs. Finally, I will show some recent developments in OCaml, F* and other strange creatures, as to discuss how far we should (if at all) push the boundaries of the F# type system, and what are the trade-offs that we have to make.
YOU MAY ALSO LIKE:
- Type Me If You Can: Writing Safe Communication Protocols with F#: Bonus Q&A Session (SkillsCast recorded in October 2020)
- Functional Concurrency in .NET with C# and F# with Riccardo Terrell (Online Course on 28th June - 1st July 2021)
- F# eXchange 2021 (Online Conference on 20th - 21st October 2021)
- F# for a Real World E-commerce Project (SkillsCast recorded in October 2020)
- Rethinking Bioinformatic Algorithms Using F# (SkillsCast recorded in October 2020)
Type Me If You Can: Writing Safe Communication Protocols with F#
Rumyana Neykova is a Lecturer in Computer Science at Brunel University London. She has a PhD from Imperial College London, where she worked as a researcher and a fellow. She is a recipient of PhD sponsorship from VMWare on her work on Runtime Verification of Concurrent and Distributed Systems and EPSRC Fellowship on Hybrid Verification Techniques. Interesting projects she has worked on include her collaboration with the Ocean Observatory Initiative for ocean monitoring and the EPSRC-funded project “From Data Types to Session Types---A Basis for Concurrency and Distribution”. She has published numerous articles in the area of programming languages and distributed systems, with a primary focus on fault-tolerance, monitoring and verification. Some of the tools in her toolbox are model checkers, SMT solvers, type systems, and compilers. She loves to create, break and improve these tools and she sometimes uses them to solve existing and non-existing problems. No matter where her research takes her, she always eventually comes back to F#.