Catala 是一種特定於領域的語言,用於從立法文本中推導出忠實的構造演算法。若要快速了解語言及其功能,您可以直接跳至官方 Catala 教學。您可以加入 Zulip 上的 Catala 社群!
Catala 是一種適用於社會財政立法文學程式設計的程式語言。透過以法典的意義來註釋立法文本的每一行,人們可以推導出複雜的社會財政機制的實施,該機制在法典的忠實性方面享有高度的保證。
具體來說,你必須先收集所有包含你想要實施的社會財政機制資訊的法律、行政命令、以往的案例等。然後,您可以在您最喜歡的文本編輯器中逐篇註釋文字:
一旦您的程式碼完成並經過測試,您就可以使用 Catala 編譯器產生律師可讀的 PDF 版本的實作。 Catala 語言是與法律專業人士合作專門設計的,以確保程式碼可以由領域專家(在本例中是律師而不是程式設計師)審查並證明其正確性。
卡塔拉語言的特殊之處在於它的邏輯結構模仿了法律的邏輯結構。事實上,薩拉·勞斯基教授在她的文章《法規的邏輯》中正式闡述了建立在預設邏輯基礎上的「條件下的定義」的核心概念。據我們所知,Catala 語言是唯一將預設邏輯嵌入為一流功能的程式語言,這就是為什麼它是唯一完全適合文字立法程式設計的語言。
要開始,最好的地方是該語言的教程。也提供法語版本,但可能與最新的語言功能不同步。
註:前沿版本
如果您對最新的開發版本感興趣,可以在 https://catalalang.github.io/catala 找到包括二進位檔案和 API 文件在內的預先建置工件
Catala 可作為 opam 包!如果您的機器上安裝了 opam,只需執行:
opam install catala
要獲得最先進的最新版本的 Catala,您還可以執行以下操作
opam pin add catala --dev-repo
但是,如果您希望獲得編譯器的最新進展,您可能想要從該儲存庫的原始程式碼編譯它或使用 nix。為此,請參閱專用自述文件。
注意:可以將--locked
標誌添加到上述命令中,以更接近地模仿已知的工作開發設定。相反,在主 opam 檔案修改後,應呼叫opam lock
來重新產生catala.opam.locked
檔案。
如果您已安裝catala --help
,請使用它來取得有關可用命令列選項的更多資訊。該手冊頁也可在線上取得。若要取得開發版本的協助,請在make build
之後執行make help_catala
。 catala
二進位檔對應於 Catala 編譯器。
頂層Makefile
包含許多要執行的有用目標。要顯示它們,請使用
make help
雖然編譯器有一些內建的 Catala 後端(Python、Ocaml 等),但也可以為 Catala 編譯器添加自訂後端,而無需修改其原始程式碼。此插件解決方案依賴動態連結:請參閱專用的自述文件。
如果您已安裝clerk --help
,請使用它來取得有關可用命令列選項的更多資訊。若要取得開發版本的協助,請在make build
之後執行make help_clerk
。 clerk
二進位檔案對應於 Catala 建置系統,負責測試等工作。
要獲取有關 Clerk 的更多信息,請參閱專用自述文件
Catleg 是一個命令列實用程序,可與法國法律文件的官方儲存庫 LégiFrance 進行有用的整合。有關更多信息,請參閱指定的存儲庫。
語法突出顯示可用於多種文字編輯器。腳本可以在這裡找到。
Catala 的 VSCode 擴展已在市場上提供。它捆綁了一個語法螢光筆和一個專用的 LSP 伺服器,該伺服器提供對程式碼導航、自動完成以及測試套件的 UX 的支援。有關更多詳細信息,請參閱專用存儲庫。
程式碼格式化工具catala-format
可與 LSP 伺服器一起使用。如果安裝,程式碼格式化可直接在 VSCode 中使用。該工具基於 Catala 的tree-sitter
語法。有關更多詳細信息,請參閱專用存儲庫。
可以在備忘單(法語和英語版本的語法)中找到 Catala 語法的完整且方便的參考。
若要審核 Catala 編譯器部分認證的正式證明,請參閱專用自述文件。
該文件可在線訪問,包括最新版本和前沿版本。
它是使用dune
和odoc
從編譯器原始碼產生的。跑步
make doc
產生文檔,然後在任何瀏覽器中開啟doc/odoc.html
文件。
若要探索用 Catala 編寫的不同程序,請參閱專門的自述文件。
若要了解如何使用 Catala 編譯器以您最喜歡的程式語言產生的程式碼,請參閱法國法律庫的自述文件。也提供了相應的預建置範例。
若要了解如何為該專案做出貢獻,請參閱專用自述文件。
若要了解如何運作或改進 Catala 參考測試套件,請參閱專用自述文件。
編譯器和此儲存庫中包含的所有程式碼均根據 Apache 許可證(版本 2)發布,除非為子目錄明確了另一個許可證。
Catala 是法國國家電腦科學研究所 Inria 的研究計畫。該編譯器也不穩定且缺乏一些功能。
該語言以法學教授皮埃爾·卡塔拉 (Pierre Catala) 的名字命名,他透過創建法律案例電腦資料庫 Juris-Data 開創了法國法律科技。他在 1960 年代末期領導的研究小組,即法律資訊研究與發展中心 (CETIJ),也影響了國家顧問 Lucien Mehl 創立的法律資訊研究與發展中心 (CENIJ) ),最終轉變為管理LegiFrance 網站的實體,充當立法文件的公共服務機構。