Software Open Access

A Modern Compiler for the French Tax Code - Artifact

Denis Merigoux; Raphaël Monat; Jonathan Protzenko


MARC21 XML Export

<?xml version='1.0' encoding='UTF-8'?>
<record xmlns="http://www.loc.gov/MARC21/slim">
  <leader>00000nmm##2200000uu#4500</leader>
  <datafield tag="653" ind1=" " ind2=" ">
    <subfield code="a">compiler</subfield>
  </datafield>
  <datafield tag="653" ind1=" " ind2=" ">
    <subfield code="a">tax code</subfield>
  </datafield>
  <datafield tag="653" ind1=" " ind2=" ">
    <subfield code="a">legal expert system</subfield>
  </datafield>
  <controlfield tag="005">20210122122721.0</controlfield>
  <controlfield tag="001">4456774</controlfield>
  <datafield tag="711" ind1=" " ind2=" ">
    <subfield code="d">2-3 March 2021</subfield>
    <subfield code="g">CC</subfield>
    <subfield code="a">Compiler Construction</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">LIP6, Sorbonne Université &amp; CNRS</subfield>
    <subfield code="0">(orcid)0000-0001-8487-0326</subfield>
    <subfield code="a">Raphaël Monat</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">Microsoft Research</subfield>
    <subfield code="a">Jonathan Protzenko</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2=" ">
    <subfield code="s">173751</subfield>
    <subfield code="z">md5:65bfd35c95a08dd182fdb5a324b61700</subfield>
    <subfield code="u">https://zenodo.org/record/4456774/files/artefact_description.pdf</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2=" ">
    <subfield code="s">5700557824</subfield>
    <subfield code="z">md5:5bd8b54e3861c2d6d4960b2c0ab8eba3</subfield>
    <subfield code="u">https://zenodo.org/record/4456774/files/Mlang CC2021 Artefact.ova</subfield>
  </datafield>
  <datafield tag="542" ind1=" " ind2=" ">
    <subfield code="l">open</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2=" ">
    <subfield code="y">Conference website</subfield>
    <subfield code="u">https://conf.researchr.org/home/CC-2021</subfield>
  </datafield>
  <datafield tag="260" ind1=" " ind2=" ">
    <subfield code="c">2021-01-22</subfield>
  </datafield>
  <datafield tag="909" ind1="C" ind2="O">
    <subfield code="p">software</subfield>
    <subfield code="o">oai:zenodo.org:4456774</subfield>
  </datafield>
  <datafield tag="100" ind1=" " ind2=" ">
    <subfield code="u">Inria</subfield>
    <subfield code="0">(orcid)0000-0003-2247-0938</subfield>
    <subfield code="a">Denis Merigoux</subfield>
  </datafield>
  <datafield tag="245" ind1=" " ind2=" ">
    <subfield code="a">A Modern Compiler for the French Tax Code - Artifact</subfield>
  </datafield>
  <datafield tag="536" ind1=" " ind2=" ">
    <subfield code="c">681393</subfield>
    <subfield code="a">Modular Open Platform for Static Analysis</subfield>
  </datafield>
  <datafield tag="540" ind1=" " ind2=" ">
    <subfield code="u">https://opensource.org/licenses/GPL-3.0</subfield>
    <subfield code="a">GNU General Public License v3.0 only</subfield>
  </datafield>
  <datafield tag="650" ind1="1" ind2="7">
    <subfield code="a">cc-by</subfield>
    <subfield code="2">opendefinition.org</subfield>
  </datafield>
  <datafield tag="520" ind1=" " ind2=" ">
    <subfield code="a">&lt;p&gt;In France, income tax is computed from taxpayers&amp;rsquo; individual returns, using an algorithm that is authored, designed&amp;nbsp;and maintained by the French Public Finances Directorate&amp;nbsp;(DGFiP). This algorithm relies on a legacy custom language&amp;nbsp;and compiler originally designed in 1990, which unlike French&amp;nbsp;wine, did not age well with time. Owing to the shortcomings of the input language and the technical limitations of&amp;nbsp;the compiler, the algorithm is proving harder and harder&amp;nbsp;to maintain, relying on ad-hoc behaviors and workarounds&amp;nbsp;to implement the most recent changes in tax law. Competence loss and aging code also mean that the system does not&lt;br&gt;
benefit from any modern compiler techniques that would&amp;nbsp;increase confidence in the implementation.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;We overhaul this infrastructure and present Mlang, an&amp;nbsp;open-source compiler toolchain whose goal is to replace&amp;nbsp;the existing infrastructure. Mlang is based on a reverse-engineered formalization of the DGFiP&amp;rsquo;s system, and has&amp;nbsp;been thoroughly validated against the private DGFiP test&lt;br&gt;
suite. As such, Mlang has a formal semantics; eliminates&amp;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&amp;nbsp;income tax computation. The DGFiP is now officially transitioning to Mlang for their production system.&lt;/p&gt;

&lt;p&gt;This is the artifact accompanying the published paper at Compiler Construction 2021.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</subfield>
  </datafield>
  <datafield tag="773" ind1=" " ind2=" ">
    <subfield code="n">doi</subfield>
    <subfield code="i">isCitedBy</subfield>
    <subfield code="a">10.1145/3446804.3446850</subfield>
  </datafield>
  <datafield tag="773" ind1=" " ind2=" ">
    <subfield code="n">doi</subfield>
    <subfield code="i">isVersionOf</subfield>
    <subfield code="a">10.5281/zenodo.4415607</subfield>
  </datafield>
  <datafield tag="024" ind1=" " ind2=" ">
    <subfield code="a">10.5281/zenodo.4456774</subfield>
    <subfield code="2">doi</subfield>
  </datafield>
  <datafield tag="980" ind1=" " ind2=" ">
    <subfield code="a">software</subfield>
  </datafield>
</record>
89
39
views
downloads
All versions This version
Views 8944
Downloads 3926
Data volume 79.8 GB5.7 GB
Unique views 6038
Unique downloads 3222

Share

Cite as