IRILL - Research and Innovation on Free Software
IRILL, Paris

Gestion d’erreur avancée pour Catala

Objectifs

Les messages d’erreurs du compilateur sont un élément clef de l’apprentissage et de l’interaction avec les langages de programmation. Un élément d’autant plus crucial lorsqu’il s’agit de DSL (Domain Specific Language, ou langage dédié) utilisant des abstractions spécifiques, et dont les utilisateurs n’ont pas toujours la programmation pour domaine premier.

Le langage dédié Catala [4] a pour objet la traduction de textes légaux, issus du droit fiscal ou de celui des prestations sociales par exemple, tout en respectant leur structure et en gardant une certaine clarté vis-à-vis d’un public de juristes. Il est étayé par une approche formelle inspirée par les travaux de Kowalski et al. [5] et plus récemment Lawsky [3, 2].

L’objectif de ce stage est de développer l’outillage autour du langage Catala.

Tâches à réaliser

Une première tâche sera de définir, en tant que paquet OCaml indépendant, une bibliothèque générique d’affichage d’erreurs claires et plaisantes à l’œil, en s’inspirant de ce qui est fait par la bibliothèque Rust Ariadne [1]. Le but est d’étudier les différentes solutions d’affichage avancé sur le terminal utf-8 en OCaml (Format, uutf, ANSITerminal, lambda-term, etc.) ainsi que de définir l’API la plus appropriée pour solliciter l’affichage.

Dans le même temps, il sera nécessaire d’étudier les cas d’erreur du compilateur Catala, les uniformiser quand c’est nécessaire et les adapter à sa nouvelle API. Cela ira des messages d’erreurs de parsing (utilisant Menhir) aux erreurs de type, sans oublier les erreurs de syntaxe et autres alertes sur le code

Prérequis

  • Connaissances de programmation en OCaml

Références

  1. Joshua Barretto. Ariadne. https://github.com/zesterer/ariadne, 2022.
  2. Sarah B. Lawsky. Formalizing the Code. Tax Law Review, 70(377), 2017.
  3. Sarah B. Lawsky. A Logic for Statutes. Florida Tax Review, 2018.
  4. Denis Merigoux, Nicolas Chataing, and Jonathan Protzenko. Catala : A programming language for the law. Proc. ACM Program. Lang., 5(ICFP), August 2021.
  5. M. J. Sergot, F. Sadri, R. A. Kowalski, F. Kriwaczek, P. Hammond, and H. T. Cory. The british nationality act as a logic program. Commun. ACM, 29(5) :370–386, May 1986.

Le stagiaire devra être d'accord pour que ses contributions soient distribuées sous licence libre.

Contacts : Emmanuel Chailloux, Louis Gesbert et Denis Merigoux