Linguagem M do DGFiP

A linguagem M é uma linguagem dedicada usada pela Direção-Geral de Finanças Públicas para calcular o imposto de renda na França.

Descrição

Um código-fonte escrito em M consiste em várias "regras" que são válidas em diferentes "aplicativos".

A linguagem inclui cerca de vinte operadores aritméticos ou lógicos, bem como mecanismos de loop.

A linguagem permite definir regras de controle.

A missão Etalab abriu uma gramática da língua M e um intérprete.

Em 2019 e 2020, uma iniciativa da Inria permitiu consolidar a atuação da Etalab e operacionalizar a linguagem M fora da DGFiP. Um artigo de pesquisa apresenta a semântica formal da linguagem, enquanto um compilador comprovado nos conjuntos de teste DGFiP está disponível em código aberto.


Exemplo

Definição da variável IRN (imposto de renda) para o ano de 2015:

regle 301000: application : bareme , iliad , batch  ; IRN = min( 0, IAN + AVFISCOPTER - IRE ) + max( 0, IAN + AVFISCOPTER - IRE ) * positif( IAMD1 + 1 - SEUIL_61) ;


Notas e referências

  1. "  Abertura do código de cálculo do imposto de renda, anos de 2010 a 2015  " , no Le Blog d'Etalab ,14 de setembro de 2017(acessado em 4 de fevereiro de 2018 )
  2. "  #CodeImpot: um hackathon em torno da abertura do código-fonte da calculadora de impostos  " , em www.economie.gouv.fr ,1 ° de abril de 2016(acessado em 4 de fevereiro de 2018 )
  3. https://github.com/etalab/calculette-impots-m-language-parser
  4. https://hal.inria.fr/hal-03002266v2
  5. https://gitlab.inria.fr/verifisc/mlang
  6. https://github.com/etalab/calculette-impots-m-source-code/blob/master/sources-latin1/sourcesm2015m_4_6/chap-3.m