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].
Ne doit pas être confondu avec M (langage).
Pour les articles homonymes, voir M.
Description
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
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
- « Ouverture du code du calcul de l’impôt sur le revenu, années 2010 à 2015 », sur Le Blog d'Etalab, (consulté le )
- « #CodeImpot : un hackathon autour de l’ouverture du code source du calculateur des impôts », sur www.economie.gouv.fr, (consulté le )
- https://github.com/etalab/calculette-impots-m-language-parser
- https://hal.inria.fr/hal-03002266v2
- https://gitlab.inria.fr/verifisc/mlang
- https://github.com/etalab/calculette-impots-m-source-code/blob/master/sources-latin1/sourcesm2015m_4_6/chap-3.m
- Portail de la programmation informatique