Catala ist eine domänenspezifische Sprache zur Ableitung von konstruktionstreuen Algorithmen aus Gesetzestexten. Um schnell etwas über die Sprache und ihre Funktionen zu lernen, können Sie direkt zum offiziellen Catala-Tutorial springen. Sie können der Catala-Community auf Zulip beitreten!
Catala ist eine Programmiersprache, die für die sozial-finanzielle Gesetzgebungskompetenz-Programmierung geeignet ist. Indem jede Zeile des Gesetzestextes mit ihrer Bedeutung im Sinne des Kodex versehen wird, kann man eine Umsetzung komplexer sozio-fiskalischer Mechanismen ableiten, die ein hohes Maß an Sicherheit hinsichtlich der Treue zum Kodex bietet.
Konkret müssen Sie zunächst alle Gesetze, Durchführungsverordnungen, früheren Fälle usw. zusammentragen, die Informationen über den sozio-fiskalischen Mechanismus enthalten, den Sie umsetzen möchten. Anschließend können Sie den Text Artikel für Artikel in Ihrem bevorzugten Texteditor mit Anmerkungen versehen:
Sobald Ihr Code vollständig und getestet ist, können Sie mit dem Catala-Compiler eine für Juristen lesbare PDF-Version Ihrer Implementierung erstellen. Die Catala-Sprache wurde speziell in Zusammenarbeit mit Rechtsexperten entwickelt, um sicherzustellen, dass der Code von den Domänenexperten, die in diesem Fall Anwälte und keine Programmierer sind, überprüft und als korrekt zertifiziert werden kann.
Die katalanische Sprache ist etwas Besonderes, weil ihre logische Struktur die logische Struktur des Gesetzes nachahmt. Tatsächlich wurde das Kernkonzept der „Definition unter Bedingungen“, das auf der Standardlogik aufbaut, von Professorin Sarah Lawsky in ihrem Artikel „A Logic for Statutes“ formalisiert. Die Catala-Sprache ist unseres Wissens nach die einzige Programmiersprache, die Standardlogik als erstklassiges Merkmal einbettet, weshalb sie die einzige Sprache ist, die perfekt für die kompetente Gesetzgebungsprogrammierung geeignet ist.
Um loszulegen, ist das Tutorial der Sprache der beste Ort. Eine französische Version ist ebenfalls verfügbar, ist jedoch möglicherweise nicht mit den neuesten Sprachfunktionen synchronisiert.
Hinweis: Aktuelle Version
Wenn Sie an der neuesten Entwicklungsversion interessiert sind, finden Sie vorgefertigte Artefakte einschließlich Binärdateien und API-Dokumentation unter https://catalalang.github.io/catala
Catala ist als Opam-Paket erhältlich! Wenn opam auf Ihrem Computer installiert ist, führen Sie einfach Folgendes aus:
opam install catala
Um die hochmoderne, neueste Version von Catala zu erhalten, können Sie dies auch tun
opam pin add catala --dev-repo
Wenn Sie jedoch die neuesten Entwicklungen des Compilers erhalten möchten, möchten Sie ihn wahrscheinlich aus den Quellen dieses Repositorys kompilieren oder nix verwenden. Weitere Informationen finden Sie in der entsprechenden Readme-Datei.
Hinweis: Das Flag --locked
kann zu den oben genannten Befehlen hinzugefügt werden, um bekannte funktionierende Entwickler-Setups besser nachzuahmen. Umgekehrt sollte opam lock
aufgerufen werden, um die Datei catala.opam.locked
bei Änderungen der Hauptdatei opam neu zu generieren.
Verwenden Sie catala --help
, wenn Sie es installiert haben, um weitere Informationen zu den verfügbaren Befehlszeilenoptionen zu erhalten. Die Manpage ist auch online verfügbar. Um die Entwicklungsversion der Hilfe zu erhalten, führen Sie make help_catala
nach make build
aus. Die catala
Binärdatei entspricht dem Catala-Compiler.
Das Makefile
der obersten Ebene enthält viele nützliche Ziele zur Ausführung. Um sie anzuzeigen, verwenden Sie
make help
Während der Compiler über einige integrierte Backends für Catala verfügt (Python, Ocaml usw.), ist es auch möglich, dem Catala-Compiler ein benutzerdefiniertes Backend hinzuzufügen, ohne seinen Quellcode ändern zu müssen. Diese Plugin-Lösung basiert auf dynamischer Verknüpfung: siehe die entsprechende README-Datei.
Verwenden Sie clerk --help
wenn Sie es installiert haben, um weitere Informationen zu den verfügbaren Befehlszeilenoptionen zu erhalten. Um die Entwicklungsversion der Hilfe zu erhalten, führen Sie make help_clerk
nach make build
aus. Die clerk
Binärdatei entspricht dem Catala-Build-System und ist unter anderem für das Testen verantwortlich.
Weitere Informationen zu Clerk finden Sie in der entsprechenden Readme-Datei
Catleg ist ein Befehlszeilendienstprogramm, das eine nützliche Integration mit LégiFrance, dem offiziellen Repository für französische Rechtsdokumentation, bietet. Weitere Informationen finden Sie im dezidierten Repository.
Die Syntaxhervorhebung ist für mehrere Texteditoren verfügbar. Skripte finden Sie hier.
Eine VSCode-Erweiterung für Catala ist auf dem Marktplatz verfügbar. Es bündelt einen Syntax-Highlighter und einen dedizierten LSP-Server, der Unterstützung für Codenavigation, automatische Vervollständigung sowie eine UX für Testsuiten bietet. Weitere Einzelheiten finden Sie im dedizierten Repository.
Neben dem LSP-Server ist ein Codeformatierungstool, catala-format
verfügbar. Bei Installation ist die Codeformatierung direkt in VSCode verfügbar. Dieses Tool basiert auf einer tree-sitter
-Grammatik für Catala. Weitere Einzelheiten finden Sie im dedizierten Repository.
Eine vollständige und praktische Referenz der Catala-Syntax finden Sie im Spickzettel (für französische und englische Versionen der Syntax).
Informationen zum formalen Nachweis der Teilzertifizierung des Catala-Compilers finden Sie in der entsprechenden Readme-Datei.
Die Dokumentation ist online verfügbar, sowohl für die neueste Version als auch für die neueste Version.
Ansonsten wird es mithilfe von dune
und odoc
aus dem Compiler-Quellcode generiert. Laufen
make doc
Um die Dokumentation zu generieren, öffnen Sie dann die Datei doc/odoc.html
in einem beliebigen Browser.
Informationen zu den verschiedenen in Catala geschriebenen Programmen finden Sie in der entsprechenden Readme-Datei.
Um zu erfahren, wie Sie den vom Catala-Compiler generierten Code in Ihrer bevorzugten Programmiersprache verwenden, lesen Sie die Readme-Datei der französischen Rechtsbibliothek. Die entsprechenden vorgefertigten Beispiele sind ebenfalls verfügbar.
Um zu erfahren, wie Sie zum Projekt beitragen können, lesen Sie die entsprechende Readme-Datei.
Informationen zum Ausführen oder Verbessern der Catala-Referenztestsuite finden Sie in der entsprechenden Readme-Datei.
Der Compiler und der gesamte in diesem Repository enthaltene Code werden unter der Apache-Lizenz (Version 2) veröffentlicht, sofern nicht eine andere Lizenz für ein Unterverzeichnis explizit angegeben ist.
Catala ist ein Forschungsprojekt von Inria, dem französischen Nationalen Forschungsinstitut für Informatik. Der Compiler ist noch instabil und es fehlen einige seiner Funktionen.
Die Sprache ist nach Pierre Catala benannt, einem Rechtsprofessor, der Pionierarbeit im französischen Legaltech leistete, indem er eine Computerdatenbank für Rechtsfälle, Juris-Data, erstellte. Die Forschungsgruppe, die er Ende der 1960er Jahre leitete, das Centre d'études et de traitement de l'information juridique (CETIJ), hat auch die Gründung des Centre de recherches et développement en informatique juridique (CENIJ) durch Staatsrat Lucien Mehl beeinflusst ), die sich schließlich in die Einrichtung verwandelte, die die LegiFrance-Website verwaltet und als öffentlicher Dienst für die Gesetzgebungsdokumentation fungiert.