IRILL - Research and Innovation on Free Software
IRILL, Paris

La prochaine séance du [GdT Programmation / séminaire IRILL ] est le jeudi 10 février 2022 à 14h sur le campus Jussieu (15-16 101)

Gabriel Scherer (Partout / Inria Saclay & LIX)

parlera de

Déboîter les constructeurs

abstract :

Dans le langage OCaml, les constructeurs de types algébriques sont représentés par des pointeurs vers des blocs mémoire. Cette représentation uniforme a de nombreux avantage, mais les utilisateurs aimeraient parfois des représentations plus compactes.

Dans ce travail, en collaboration avec Nicolas Chataing et Stephen Dolan, nous étudions la possibilité de "déboîter" certains constructeurs -- si l'utilisateur le demande au moment de leur définition -- c'est-à-dire de ne pas les représenter en mémoire du tout. Dans certains cas, effacer les constructeurs introduirait des confusions entre valeurs différentes, et il faut donc rejeter la demande. Nous avons donc conçu une analyse statique pour détecter ces confusions; la question de la terminaison de cette analyse est intéressante.

type exemple_accepté = | Short of int [@unboxed] | Long of Gmp.t

type exemple_rejeté = | I of int [@unboxed] | B of bool [@unboxed]