Langage M de la DGFiP

Langage M de la DGFiP

Le langage M est un langage dédié utilisé par la Direction générale des Finances publiques pour calculer l'impôt sur le revenu en France[1],[2].

Description modifier

Un code source écrit en M se compose de plusieurs "règles" valables dans différentes "applications".

Le langage comprend une vingtaine d'opérateurs arithmétiques ou logiques ainsi que des mécanismes de boucles.

Le langage permet de définir des règles de contrôle.

La mission Etalab a ouvert une grammaire du langage M et un interpréteur[3].

En 2019 et 2020, une initiative de l'Inria a permis de consolider le travail d'Etalab et rendre complètement opérationnel le langage M en dehors de la DGFiP. Un article de recherche[4] présente la sémantique formelle du langage, tandis qu'un compilateur éprouvé sur les jeux de tests de la DGFiP est disponible en open-source[5].

Exemple modifier

Définition de la variable IRN (impôt sur les revenus) pour l'année 2015[6] :

regle 301000:
application : bareme , iliad , batch  ;

IRN = min( 0, IAN + AVFISCOPTER - IRE ) + max( 0, IAN + AVFISCOPTER - IRE ) * positif( IAMD1 + 1 - SEUIL_61) ;


Notes et références modifier

  1. « Ouverture du code du calcul de l’impôt sur le revenu, années 2010 à 2015 », sur Le Blog d'Etalab, (consulté le )
  2. « #CodeImpot : un hackathon autour de l’ouverture du code source du calculateur des impôts », sur www.economie.gouv.fr, (consulté le )
  3. (en) « Etalab/calculette-impots-m-language-parser : Calculette de l'impôt sur le revenu parsée », sur GitHub (consulté le ).
  4. (en) Jonathan Protzenko, « A Modern Compiler for the French Tax Code », sur inria.fr, (consulté le ).
  5. (en) « Verifisc - Mlang · GitLab », sur GitLab (consulté le ).
  6. (en) « Calculette-impots-m-source-code/sources-latin1/sourcesm2015m_4_6/chap-3.m at master · etalab/calculette-impots-m-source-code », sur GitHub (consulté le ).