FreeST: a functional programming language for safe concurrency powered by context-free session types

A functional programming language for safe concurrency
powered by context-free session types


Downloads Getting started Libraries Publications Team Try it online!

FreeST is a typed concurrent programming language where processes communicate via message-passing. Messages are exchanged on bidirectional channels. Communication on channels is governed by a powerful type system based on polymorphic context-free session types. Built on a core linear functional programming language, FreeST features primitives for forking new threads, for creating channels and for communicating on these. The compiler builds on a novel algorithm for deciding the equivalence of context-free types.

FreeST is funded by FCT, project SafeSessions, Safe Concurrent Programming with Session Types, DOI, from March 2021 to August 2024.