Catala는 입법 텍스트에서 충실한 구성 알고리즘을 파생하기 위한 도메인별 언어입니다. 언어와 해당 기능에 대해 빠르게 알아보려면 공식 Catala 튜토리얼로 바로 이동할 수 있습니다. Zulip에서 Catala 커뮤니티에 가입할 수 있습니다!
Catala는 사회-재정적 입법 기반 프로그래밍에 적합한 프로그래밍 언어입니다. 입법문의 각 줄에 규정의 의미를 추가함으로써 규정의 충실성에 관해 높은 수준의 보증을 받는 복잡한 사회 재정 메커니즘의 구현을 도출할 수 있습니다.
구체적으로, 구현하려는 사회 재정 메커니즘에 대한 정보가 포함된 모든 법률, 행정 명령, 이전 사례 등을 먼저 수집해야 합니다. 그런 다음 즐겨 사용하는 텍스트 편집기에서 기사별로 텍스트 기사에 주석을 달 수 있습니다.
코드가 완성되고 테스트되면 Catala 컴파일러를 사용하여 변호사가 읽을 수 있는 PDF 버전의 구현을 생성할 수 있습니다. Catala 언어는 법률 전문가와 협력하여 도메인 전문가(이 경우 프로그래머가 아닌 변호사)가 코드를 검토하고 올바른지 인증할 수 있도록 특별히 설계되었습니다.
카탈라어는 논리적 구조가 법률의 논리적 구조를 모방한다는 점에서 특별합니다. 실제로, 기본 논리를 기반으로 하는 "조건 하의 정의"라는 핵심 개념은 Sarah Lawsky 교수가 자신의 기사 A Logic for Statutes에서 공식화했습니다. Catala 언어는 기본 논리를 일류 기능으로 포함하는 유일한 프로그래밍 언어입니다. 이것이 바로 입법 프로그래밍을 읽고 쓰는 데 완벽하게 적합한 유일한 언어인 이유입니다.
시작하려면 가장 좋은 곳은 언어 튜토리얼입니다. 프랑스어 버전도 사용 가능하지만 최신 언어 기능과 동기화되지 않을 수 있습니다.
참고: 최첨단 버전
최신 개발 버전에 관심이 있다면 바이너리 및 API 문서를 포함한 사전 구축된 아티팩트를 https://catalalang.github.io/catala에서 찾을 수 있습니다.
Catala는 opam 패키지로 제공됩니다! opam이 컴퓨터에 설치되어 있으면 다음을 실행하면 됩니다.
opam install catala
최첨단 최신 버전의 Catala를 얻으려면 다음을 수행할 수도 있습니다.
opam pin add catala --dev-repo
그러나 최신 컴파일러 개발을 얻으려면 이 저장소의 소스에서 컴파일하거나 nix를 사용하는 것이 좋습니다. 이에 대해서는 전용 Readme를 참조하세요.
참고: --locked
플래그를 위 명령에 추가하여 알려진 작업 개발 설정을 더 유사하게 모방할 수 있습니다. 반대로, 기본 opam 파일 수정 시 catala.opam.locked
파일을 재생성하려면 opam lock
호출해야 합니다.
사용 가능한 명령줄 옵션에 대한 자세한 정보를 얻으려면 catala --help
설치한 경우 사용하십시오. 매뉴얼 페이지는 온라인으로도 제공됩니다. 도움말의 개발 버전을 얻으려면 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에 대한 자세한 내용을 보려면 전용 추가 정보를 참조하세요.
Catleg는 프랑스 법률 문서의 공식 저장소인 LégiFrance와의 유용한 통합을 제공하는 명령줄 유틸리티입니다. 자세한 내용은 결정된 저장소를 참조하세요.
구문 강조는 여러 텍스트 편집기에서 사용할 수 있습니다. 스크립트는 여기에서 찾을 수 있습니다.
Catala용 VSCode 확장은 마켓플레이스에서 사용할 수 있습니다. 테스트 스위트용 UX와 함께 코드 탐색, 자동 완성을 지원하는 구문 강조 표시기와 전용 LSP 서버가 번들로 제공됩니다. 자세한 내용은 전용 저장소를 참조하세요.
코드 형식 지정 도구인 catala-format
LSP 서버와 함께 사용할 수 있습니다. 설치된 경우 VSCode에서 코드 형식을 직접 사용할 수 있습니다. 이 도구는 Catala의 tree-sitter
문법을 기반으로 합니다. 자세한 내용은 전용 저장소를 참조하세요.
Catala 구문에 대한 완전하고 편리한 참조는 치트 시트(프랑스어 및 영어 버전 구문)에서 찾을 수 있습니다.
Catala 컴파일러의 부분 인증에 대한 공식 증명을 감사하려면 전용 Readme를 참조하세요.
최신 릴리스와 최첨단 버전 모두에 대한 설명서는 온라인에서 액세스할 수 있습니다.
그렇지 않으면 dune
및 odoc
사용하여 컴파일러 소스 코드에서 생성됩니다. 달리다
make doc
문서를 생성하려면 브라우저에서 doc/odoc.html
파일을 엽니다.
Catala로 작성된 다양한 프로그램을 탐색하려면 전용 Readme를 참조하세요.
Catala 컴파일러가 생성한 코드를 선호하는 프로그래밍 언어로 사용하는 방법을 알아보려면 프랑스 법률 라이브러리의 추가 정보를 읽어보세요. 해당하는 사전 구축된 예제도 사용할 수 있습니다.
프로젝트에 어떻게 기여할 수 있는지 알아보려면 전용 Readme를 참조하세요.
Catala 참조 테스트 모음을 실행하거나 개선하는 방법을 알아보려면 전용 Readme를 참조하세요.
이 저장소에 포함된 컴파일러와 모든 코드는 하위 디렉토리에 대해 다른 라이센스가 명시되지 않는 한 Apache 라이센스(버전 2)에 따라 릴리스됩니다.
Catala는 프랑스 국립 컴퓨터 과학 연구소인 Inria의 연구 프로젝트입니다. 컴파일러는 아직 불안정하며 일부 기능이 부족합니다.
이 언어는 법률 사건에 대한 컴퓨터 데이터베이스인 Juris-Data를 만들어 프랑스 법률 기술을 개척한 법학 교수 Pierre Catala의 이름을 따서 명명되었습니다. 1960년대 후반 그가 이끌었던 연구 그룹인 CETIJ(Center d'études et de l'information juridique)는 국가 영사 Lucien Mehl이 Center de recherches et developpement en informatique juridique(CENIJ) 창설에도 영향을 미쳤습니다. )는 결국 입법 문서의 공공 서비스 역할을 하는 LegiFrance 웹사이트를 관리하는 주체로 변모했습니다.