‹Programming› 2024
Mon 11 - Fri 15 March 2024 Lund, Sweden
Wed 13 Mar 2024 11:15 - 11:45 at M:Teknodromen - Research Papers 1 Chair(s): Wolfgang De Meuter

Elixir is a dynamically-typed functional language running the Erlang virtual machine, designed for building scalable and maintainable applications. Its characteristics have earned it a surging adoption by hundreds of industrial actors and tens of thousands of developers. Static typing seems nowadays to be the most important request coming from the Elixir community. We present a gradual type system we plan to include in the Elixir compiler, outline its characteristics and design principles, and show by some short examples how to use it in practice.

Developing a static type system suitable for Erlang’s family of languages has been an open research problem for almost two decades. Our system transposes to this family of languages a polymorphic type system with set-theoretic types and semantic subtyping. To do that, we had to improve and extend both semantic subtyping and the typing techniques thereof, to account for several characteristics of these languages—and of Elixir in particular—such as the arity of functions, the use of guards, a uniform treatment of records and dictionaries, the need for a new sound gradual typing discipline that does not rely on the insertion at compile time of specific run-time type-tests but, rather, takes into account both the type tests performed by the virtual machine and those explicitly added by the programmer.

The system presented here is ``gradually'' being implemented and integrated in Elixir, but a prototype implementation is already available.

The aim of this work is to serve as a longstanding reference that will be used to introduce types to Elixir programmers, as well as to hint at some future directions and possible evolutions of the Elixir language.

Wed 13 Mar

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

10:45 - 12:15
Research Papers 1Research Papers at M:Teknodromen
Chair(s): Wolfgang De Meuter Vrije Universiteit Brussel
10:45
30m
Talk
Let a Thousand Flowers Bloom: An Algebraic Representation for Edge GraphsVol. 8
Research Papers
Jack Liell-Cock University of Oxford, Tom Schrijvers KU Leuven
Link to publication DOI
11:15
30m
Talk
The Design Principles of the Elixir Type SystemVol. 8
Research Papers
Giuseppe Castagna CNRS; Université Paris Cité, Guillaume Duboc , José Valim Dashbit
Link to publication DOI
11:45
30m
Talk
Little Tricky Logic: Misconceptions in the Understanding of LTLVol. 7
Research Papers
Ben Greenman University of Utah, Tim Nelson Brown University, Sam Saarinen Brown University, Shriram Krishnamurthi Brown University
Link to publication DOI