You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/fr/explicabilite/catala.md
+40-24Lines changed: 40 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,63 +9,79 @@ showBreadcrumb: true
9
9
10
10
### Introduction
11
11
12
-
[Catala](catala-lang.org/) est un langage de programmation dédié à la transformation du droit en code, orienté vers la production de décisions (*liquidations*) et garantissant un haut niveau d'assurance. À partir d'un document unique mêlant texte de loi et code informatique produit en binôme juriste-programmeur, Catala génère des bibliothèques logicielles prêtes à l'emploi dans le langage de votre choix.
12
+
[Catala](catala-lang.org/) est un langage de programmation dédié à la transformation du droit en code, orienté vers la production de décisions (_liquidations_) et garantissant un haut niveau d'assurance. À partir d'un document unique mêlant texte de loi et code informatique produit en binôme juriste-programmeur, Catala génère des bibliothèques logicielles prêtes à l'emploi dans le langage de votre choix.
13
13
14
14
### Présentation
15
15
16
-
[Catala](catala-lang.org/) est un langage de programmation dédié à la transformation du droit en code, orienté vers la production de décisions (*liquidations*) et garantissant un haut niveau d'assurance. Conçu à partir de l'état de l'art de la recherche en droit et en informatique, le langage s'adosse à une méthodologie de transformation du droit en code basé sur le *pair programming* et le *literate programming*. Concrètement, un·e juriste et un·e informaticien·ne déchiffrent ensemble les sources du droit (lois, décrets, jurisprudences, circulaires, etc.) et les annotent avec du code Catala pour établir article après article le programme informatique qui sera par consstruction fidèle à sa spécification juridique. Par exemple, [pour le calcul des allocations familiales](https://catala-lang.org/fr/examples/family-benefits#Code%20de%20la%20securite%20sociale-Partie%20reglementaire%20-%20Decrets%20simples-Livre%205%20:%20Prestations%20familiales%20et%20prestations%20assimilees-Titre%202%20:%20Prestations%20generales%20d%20entretien-Chapitre%201er%20:%20Allocations%20familiales-Article%20D521-1) ou [celui des aides au logement](https://zenodo.org/record/7357625).
16
+
[Catala](catala-lang.org/) est un langage de programmation dédié à la transformation du droit en code, orienté vers la production de décisions (_liquidations_) et garantissant un haut niveau d'assurance. Conçu à partir de l'état de l'art de la recherche en droit et en informatique, le langage s'adosse à une méthodologie de transformation du droit en code basé sur le _pair programming_ et le _literate programming_. Concrètement, un·e juriste et un·e informaticien·ne déchiffrent ensemble les sources du droit (lois, décrets, jurisprudences, circulaires, etc.) et les annotent avec du code Catala pour établir article après article le programme informatique qui sera par consstruction fidèle à sa spécification juridique. Par exemple, [pour le calcul des allocations familiales](https://catala-lang.org/fr/examples/family-benefits#Code%20de%20la%20securite%20sociale-Partie%20reglementaire%20-%20Decrets%20simples-Livre%205%20:%20Prestations%20familiales%20et%20prestations%20assimilees-Titre%202%20:%20Prestations%20generales%20d%20entretien-Chapitre%201er%20:%20Allocations%20familiales-Article%20D521-1) ou [celui des aides au logement](https://zenodo.org/record/7357625).
17
17
18
18
{% imageContent "./imagecatala2.png", "Pair programming en Catala" %}
19
19
20
20
Le langage et la méthodologie Catala ont fait l'objet d'une investigation scientifique de plusieurs années. Cette investigation a fait ressortir plusieurs points de difficulté bloquants pour la transformation du droit en code. Voilà une liste non-exhaustive de ceux adressés par Catala :
21
21
22
-
* communication entre informaticien·ne·s et juristes (syntaxe adaptée) ;
23
-
* gestion de la logique cas de base/exceptions (logique par défaut) ;
24
-
* gestion de la logique des liquidations multiples (fonctions et variables contexte) ;
25
-
* gestion des arrondis (précision infinie du calcul).
22
+
- communication entre informaticien·ne·s et juristes (syntaxe adaptée) ;
23
+
- gestion de la logique cas de base/exceptions (logique par défaut) ;
24
+
- gestion de la logique des liquidations multiples (fonctions et variables contexte) ;
25
+
- gestion des arrondis (précision infinie du calcul).
26
26
27
-
Derrière le langage de surface, le compilateur de Catala assure la traduction vers un *lambda-calcul*, sorte de *lingua-franca* informatique. Aussi, il est possible de générer à partir d'un programme Catala une bibliothèque dans le langage de programmation de votre choix. Actuellement, le compilateur de Catala cible OCaml, Python et Javascript, mais il est possible de rajouter d'autres langages (bientôt C) ou de customiser le code générer pour l'adapter aux normes d'un SI particulier.
27
+
Derrière le langage de surface, le compilateur de Catala assure la traduction vers un _lambda-calcul_, sorte de _lingua-franca_ informatique. Aussi, il est possible de générer à partir d'un programme Catala une bibliothèque dans le langage de programmation de votre choix. Actuellement, le compilateur de Catala cible OCaml, Python, R et Javascript, mais il est possible de rajouter d'autres langages (bientôt C) ou de customiser le code générer pour l'adapter aux normes d'un SI particulier.
Cependant le langage a été pensé pour assurer la continuité et le renouvellement de l'algorithme de calcul de l'impôt sur le revenu, par les mêmes chercheurs qui [aident la DGFiP à en assurer la maintenance](https://www.inria.fr/fr/mlang-modernisation-calcul-impot-revenu). Catala a également été utilisé avec succès pour [découvrir des erreurs](https://hal.inria.fr/hal-03712130) et [suggérer des améliorations dans le droit spécifiant](https://hal.inria.fr/hal-03781578)[le calcul des aides au logement](https://hal.inria.fr/hal-03869335).
45
+
Catala a également été utilisé avec succès pour [découvrir des
46
+
erreurs](https://hal.inria.fr/hal-03712130) et [suggérer des améliorations dans
47
+
le droit spécifiant](https://hal.inria.fr/hal-03781578)[le calcul des aides au
48
+
logement](https://hal.inria.fr/hal-03869335).
41
49
42
-
### Comment l'outil peut contribuer à éclairer des calculs de l'administration (outil de calcul direct, mise en ligne de simulateurs, etc.)
50
+
### Comment l'outil peut contribuer à éclairer des calculs de l'administration (outil de calcul direct, mise en ligne de simulateurs, etc.)
43
51
44
-
Le langage de programmation Catala est pensé pour la liquidation ; il a donc vocation à être utilisé pour développer les futurs programmes qui remplaceront les algorithmes et calculettes *legacy* au cœur des SI d'administrations comme la DGFiP, la CNAF, Pôle Emploi, etc. Un programme Catala peut également être utilisé comme simulateur ; puisque Catala compile vers Javascript, il est facile de [créer une page web faisant office de simulateur avec](https://catala-lang.org/fr/examples/housing-benefits/visualization).
52
+
Le langage de programmation Catala est pensé pour la liquidation ; il a donc vocation à être utilisé pour développer les futurs programmes qui remplaceront les algorithmes et calculettes _legacy_ au cœur des SI d'administrations comme la DGFiP, la CNAF, Pôle Emploi, etc. Un programme Catala peut également être utilisé comme simulateur ; puisque Catala compile vers Javascript, il est facile de [créer une page web faisant office de simulateur avec](https://catala-lang.org/fr/examples/housing-benefits/visualization).
45
53
46
54
Les deux avantages comparatifs de Catala par rapport à d'autres langages de programmation dans ce contexte sont :
47
-
* le haut niveau d'assurance et de fidélité par rapport au droit atteints grâce à la méthodologie *pair-programming* et la conception du langage et de son compilateur ;
48
-
* la possibilité d'expliquer chaque étape du calcul en faisant le lien vers la source juridique qui justifie cette étape.
55
+
56
+
- le haut niveau d'assurance et de fidélité par rapport au droit atteints grâce à la méthodologie _pair-programming_ et la conception du langage et de son compilateur ;
57
+
- la possibilité d'expliquer chaque étape du calcul en faisant le lien vers la source juridique qui justifie cette étape.
49
58
50
59
### Quelle documentation pertinente pour un agent public qui souhaite explorer l'outil dans le cadre de la mise en oeuvre d'explications autour d'un calcul de son administration?
51
60
52
61
L'approche scientifique de Catala et les détails conceptuels de sa conception et de son implémentation sont décrits dans les papiers de recherche cités plus haut. Néamoins Catala dispose également d'une documentation plus opérationnelle :
53
62
54
-
* Tutoriel de Catala: [en anglais (complet)](https://catala-lang.org/en/examples/tutorial), [en français (moins souvent mis à jour)](https://catala-lang.org/fr/examples/tutoriel)
- Tutoriel de Catala: [en anglais (complet)](https://catala-lang.org/en/examples/tutorial), [en français (moins souvent mis à jour)](https://catala-lang.org/fr/examples/tutoriel)
Un petit mail à contact@catala-lang.org est aussi efficace pour un conseil personnalisé et un diagnostic rapide pour savoir si Catala est adapté à votre problème.
61
70
62
-
### Où est le code source et sous quelle licence
71
+
### Où est le code source et sous quelle licence
63
72
64
-
* Dépôt sur GitHub: https://github.com/CatalaLang/catala
65
-
* Licence: Apache-2.0
73
+
- Dépôt sur GitHub: https://github.com/CatalaLang/catala
74
+
- Licence: Apache-2.0
66
75
67
76
### Qui développe l'outil (= qui a le contrôle sur les choix techniques)
68
77
69
78
L'outil est développé par l'[équipe-projet PROSECCO](https://team.inria.fr/prosecco/) au sein du [centre de Paris de l'Inria](https://www.inria.fr/fr/centre-inria-de-paris), institut de recherche en informatique.
70
79
71
-
[Denis Merigoux](merigoux.ovh/), chercheur post-doctoral en est le co-créateur et chef de projet, et [Louis Gesbert](https://github.com/AltGr) est l'ingénieur de recherche chargé à temps plein de sa maintenance. Les modifications au langage sont décidées conjointement avec deux juristes : [Liane Huttner](https://www.eui.eu/people?id=liane-huttner), chercheuse post-doctorale en droit du numérique et [Sarah Lawsky](https://www.law.northwestern.edu/faculty/profiles/sarahlawsky), professeure de droit fiscal.
80
+
[Denis Merigoux](merigoux.ovh/), chercheur post-doctoral en est le co-créateur
81
+
et chef de projet, et [Louis Gesbert](https://github.com/AltGr) est l'ingénieur
82
+
de recherche chargé à temps plein de sa maintenance. Les modifications au
83
+
langage sont décidées conjointement avec deux juristes : [Liane
84
+
Huttner](https://univ-droit.fr/universitaires/48558-liane-huttner), maîtresse de
0 commit comments