Por Bernardo Almeida (orientadores: Vasco Vasconcelos e Andreia Mordido).
Communication plays a significant role in software systems. Therefore, it is essential to define protocols that account for the order and form of the messages exchanged between different system agents. Session types offer mechanisms to model these interactions. FreeST is a functional concurrent programming language where messages are exchanged on bidirectional channels governed by context-free session types. The first FreeST version (1.0) features a predicative polymorphic type system (also known as a prenex polymorphic system), which does not allow type variables to be instantiated with polymorphic types. In this seminar, we introduce FreeST 2.0, in which we lift the previous restriction and thus have an impredicative polymorphic type system. Furthermore, we highlight the major changes regarding FreeST's first version.