Catala — это предметно-ориентированный язык для получения точных алгоритмов на основе законодательных текстов. Чтобы быстро узнать о языке и его возможностях, вы можете сразу перейти к официальному руководству по Catala. Вы можете присоединиться к сообществу Catala на Zulip!
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 lock
для регенерации файла catala.opam.locked
после внесения изменений в основной файл opam.
Используйте catala --help
, если вы ее установили, чтобы получить дополнительную информацию о доступных параметрах командной строки. Страница руководства также доступна в Интернете. Чтобы получить версию справки для разработки, запустите make help_catala
после make build
. Бинарный файл catala
соответствует компилятору Catala.
Makefile
верхнего уровня содержит множество полезных для запуска целей. Чтобы отобразить их, используйте
make help
Хотя компилятор имеет несколько встроенных бэкендов для Catala (Python, Ocaml и т. д.), в компилятор Catala также можно добавить собственный бэкенд без необходимости изменения его исходного кода. Этот плагин основан на динамическом связывании: см. специальный README.
Используйте clerk --help
, если вы его установили, чтобы получить дополнительную информацию о доступных параметрах командной строки. Чтобы получить версию справки для разработчиков, запустите make help_clerk
после make build
. Бинарный файл clerk
соответствует системе сборки Catala, отвечающей, помимо прочего, за тестирование.
Дополнительную информацию о Clerk см. в специальном файле readme.
Catleg — это утилита командной строки, обеспечивающая полезную интеграцию с LégiFrance, официальным хранилищем французской юридической документации. Дополнительную информацию смотрите в выбранном репозитории.
Подсветка синтаксиса доступна для некоторых текстовых редакторов. Скрипты можно найти здесь.
Расширение VSCode для Catala доступно на рынке. Он включает в себя подсветку синтаксиса и выделенный сервер LSP, который предлагает поддержку навигации по коду, автозаполнение, а также UX для наборов тестов. Дополнительную информацию смотрите в специальном репозитории.
Инструмент форматирования кода catala-format
доступен вместе с сервером LSP. Если оно установлено, форматирование кода доступно непосредственно в VSCode. Этот инструмент основан на грамматике tree-sitter
для Catala. Дополнительную информацию смотрите в специальном репозитории.
Полный и удобный справочник по синтаксису 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, выступающую в качестве государственной службы законодательной документации.