Catala は、立法文書から忠実度の高いアルゴリズムを導き出すためのドメイン固有の言語です。この言語とその機能についてすばやく学習するには、公式 Catala チュートリアルに直接アクセスしてください。 Zulip の Catala コミュニティに参加できます。
Catala は、社会財政立法に適したプログラミング言語です。立法文の各行に法典上の意味を注釈することにより、法典の忠実性に関して高いレベルの保証を享受できる複雑な社会財政メカニズムの実装を導き出すことができます。
具体的には、まず、実装したい社会財政メカニズムに関する情報を含むすべての法律、大統領令、過去の判例などを収集する必要があります。その後、お気に入りのテキスト エディターで、記事ごとにテキストに注釈を付けることができます。
コードが完成してテストされたら、Catala コンパイラーを使用して、弁護士が読める PDF バージョンの実装を作成できます。 Catala 言語は、法律の専門家と協力して特別に設計されており、分野の専門家 (この場合はプログラマーではなく弁護士) によってコードがレビューされ、正しいことが証明されるようになりました。
カタラ語は、その論理構造が法律の論理構造を模倣しているため、特別です。実際、デフォルトのロジックに基づいて構築される「条件下の定義」という中心的な概念は、サラ・ロースキー教授によって論文「法令のためのロジック」で形式化されています。 Catala 言語は、デフォルトのロジックを第一級の機能として組み込む、私たちの知る限り唯一のプログラミング言語です。そのため、読み書きできる立法プログラミングに完全に適合した唯一の言語です。
始めるには、言語のチュートリアルが最適です。フランス語バージョンも利用できますが、最新の言語機能と同期していない可能性があります。
注:最新バージョン
最新の開発バージョンに興味がある場合は、バイナリや API ドキュメントを含む事前構築済みアーティファクトが https://catalalang.github.io/catala で見つかります。
Catala は opam パッケージとして利用可能です。 opam がマシンにインストールされている場合は、次のコマンドを実行するだけです。
opam install catala
Catala の最先端の最新バージョンを入手するには、次のこともできます。
opam pin add catala --dev-repo
ただし、コンパイラの最新の開発内容を入手したい場合は、このリポジトリのソースからコンパイルするか、nix を使用することになるでしょう。詳細については、専用の Readme を参照してください。
注: --locked
フラグを上記のコマンドに追加すると、既知の動作する開発セットアップをより厳密に模倣できます。逆に、メイン opam ファイルの変更時に、 opam lock
呼び出してcatala.opam.locked
ファイルを再生成する必要があります。
catala --help
インストールしている場合は、それを使用して、使用可能なコマンド ライン オプションに関する詳細情報を取得します。 man ページはオンラインでも入手できます。開発バージョンのヘルプを取得するには、 make build
の後にmake help_catala
を実行します。 catala
バイナリは Catala コンパイラに対応します。
最上位のMakefile
は、実行に役立つ多くのターゲットが含まれています。それらを表示するには、次を使用します
make help
コンパイラには Catala 用の組み込みバックエンド (Python、Ocaml など) がいくつかありますが、ソース コードを変更せずにカスタム バックエンドを Catala コンパイラに追加することもできます。このプラグイン ソリューションは動的リンクに依存しています。専用の README を参照してください。
使用可能なコマンド ライン オプションに関する詳細情報を取得するには、 clerk --help
をインストールしている場合はそれを使用します。開発バージョンのヘルプを取得するには、 make build
の後にmake help_clerk
を実行します。 clerk
バイナリは Catala ビルド システムに対応し、特にテストを担当します。
Clerk の詳細については、専用の Readme を参照してください。
Catleg は、フランスの法的文書の公式リポジトリである LégiFrance との便利な統合を提供するコマンド ライン ユーティリティです。詳細については、決定されたリポジトリを参照してください。
構文の強調表示は、いくつかのテキスト エディタで利用できます。スクリプトはここにあります。
Catala 用の VSCode 拡張機能はマーケットプレイスで入手できます。構文ハイライターと専用 LSP サーバーがバンドルされており、テスト スイートの UX とともにコード ナビゲーション、オートコンプリートのサポートを提供します。詳細については、専用リポジトリを参照してください。
コードフォーマットツールのcatala-format
、LSP サーバーとともに使用できます。インストールされている場合、コードの書式設定は VSCode で直接利用できます。このツールは Catala のtree-sitter
文法に基づいています。詳細については、専用リポジトリを参照してください。
Catala 構文の完全で便利なリファレンスは、チート シート (構文のフランス語版と英語版の場合) にあります。
Catala コンパイラの部分認定の正式な証明を監査するには、専用の Readme を参照してください。
最新リリースと最新バージョンの両方のドキュメントにオンラインでアクセスできます。
それ以外の場合は、 dune
およびodoc
使用してコンパイラのソース コードから生成されます。走る
make doc
ドキュメントを生成するには、任意のブラウザでdoc/odoc.html
ファイルを開きます。
Catala で作成されたさまざまなプログラムを調べるには、専用の Readme を参照してください。
Catala コンパイラーによって生成されたコードを好みのプログラミング言語で使用する方法を知るには、フランス法律ライブラリの Readme を参照してください。対応する事前構築済みのサンプルも利用可能です。
プロジェクトに貢献する方法については、専用の Readme を参照してください。
Catala リファレンス テスト スイートを実行または改善する方法については、専用の Readme を参照してください。
コンパイラとこのリポジトリに含まれるすべてのコードは、サブディレクトリに対して別のライセンスが明示されていない限り、Apache ライセンス (バージョン 2) に基づいてリリースされます。
Catala は、フランス国立コンピュータ サイエンス研究所 Inria の研究プロジェクトです。コンパイラはまだ不安定で、一部の機能が欠けています。
この言語は、法律訴訟のコンピュータ データベース Juris-Data を作成してフランスのリーガルテックの先駆者となった法学教授ピエール カタラにちなんで命名されました。 1960 年代後半に彼が率いていた研究グループである情報司法センター (CETIJ) も、国家長官ルシアン・メールによる情報司法開発センター (CENIJ) の設立に影響を与えました。 )、最終的には LegiFrance Web サイトを管理する組織に変わり、立法文書の公共サービスとして機能しました。