Giuseppe Castagna

CNRS - Université Paris Cité

Giuseppe Castagna received a PhD degree in theoretical computer science from the University Paris 7 on January 1994. The same year he was appointed research scientist of CNRS (Centre National de la Recherche Scientifique) and posted in the Computer Science Laboratory of the École Normale Supérieure de Paris. In 2001, he starts the “Programming Languages” group in École Normale Supérieure that he leads till fall 2006, when he is appointed senior research scientist of CNRS and posted the Institut de Recherche en Informatique Fondamentale (IRIF: Research Institute on the Foundations of Computer Science) of University Paris Cité. He was deputy director of IRIF from 2018 to 2022 and he has become director of the institute since January 2023.

His main research contributions are in the design and definition of typed programming languages.

Talk:
The Design Principles of the Elixir Type System

This talk will present the current state of Guillaume Duboc’s PhD thesis on introducing a type system to Elixir. We will present set-theoretic types, and how they are uniquely suited to represent Elixir programs. Then, we will showcase the potential benefits of a type system designed for Elixir, such as detecting common bugs and providing direct feedback on code quality.

In addition to exploring the use of types to describe and enforce function interfaces, we will provide examples of new syntax for types that could be added to the language. We will also delve into the concept of gradual typing and its ability to mix typed and untyped code, as well as ease the optional transition of existing codebases towards types.

We will share my perspective on the state of the project, the forthcoming work, and the challenges we have faced, as this is joint work with Giuseppe Castagna and José Valim.

Key Takeaways:

  • Showcase the potential benefits of a type system for the programmer
  • Understand what kind of types can describe Elixir programs.

Target Audience:

  • Any Elixir programmer