Software Open Access

A Modern Compiler for the French Tax Code - Artifact

Denis Merigoux; Raphaël Monat; Jonathan Protzenko


Citation Style Language JSON Export

{
  "publisher": "Zenodo", 
  "DOI": "10.5281/zenodo.4456774", 
  "title": "A Modern Compiler for the French Tax Code - Artifact", 
  "issued": {
    "date-parts": [
      [
        2021, 
        1, 
        22
      ]
    ]
  }, 
  "abstract": "<p>In France, income tax is computed from taxpayers&rsquo; individual returns, using an algorithm that is authored, designed&nbsp;and maintained by the French Public Finances Directorate&nbsp;(DGFiP). This algorithm relies on a legacy custom language&nbsp;and compiler originally designed in 1990, which unlike French&nbsp;wine, did not age well with time. Owing to the shortcomings of the input language and the technical limitations of&nbsp;the compiler, the algorithm is proving harder and harder&nbsp;to maintain, relying on ad-hoc behaviors and workarounds&nbsp;to implement the most recent changes in tax law. Competence loss and aging code also mean that the system does not<br>\nbenefit from any modern compiler techniques that would&nbsp;increase confidence in the implementation.&nbsp;</p>\n\n<p>We overhaul this infrastructure and present Mlang, an&nbsp;open-source compiler toolchain whose goal is to replace&nbsp;the existing infrastructure. Mlang is based on a reverse-engineered formalization of the DGFiP&rsquo;s system, and has&nbsp;been thoroughly validated against the private DGFiP test<br>\nsuite. As such, Mlang has a formal semantics; eliminates&nbsp;previous hand-written workarounds in C; compiles to modern languages (Python); and enables a variety of instrumentations, providing deep insights about the essence of French&nbsp;income tax computation. The DGFiP is now officially transitioning to Mlang for their production system.</p>\n\n<p>This is the artifact accompanying the published paper at Compiler Construction 2021.&nbsp;</p>\n\n<p>&nbsp;</p>", 
  "author": [
    {
      "family": "Denis Merigoux"
    }, 
    {
      "family": "Rapha\u00ebl Monat"
    }, 
    {
      "family": "Jonathan Protzenko"
    }
  ], 
  "id": "4456774", 
  "version": "CC21-AEC-v1.1", 
  "type": "article", 
  "event": "Compiler Construction (CC)"
}
72
29
views
downloads
All versions This version
Views 7232
Downloads 2917
Data volume 68.4 GB3.0 MB
Unique views 4426
Unique downloads 2314

Share

Cite as