Catala es un lenguaje de dominio específico para derivar algoritmos fieles por construcción a partir de textos legislativos. Para aprender rápidamente sobre el idioma y sus características, puede ir directamente al tutorial oficial de Catala. ¡Puedes unirte a la comunidad de Catala en Zulip!
Catala es un lenguaje de programación adaptado para la programación legislativa socio-fiscal. Al anotar cada línea del texto legislativo con su significado en términos de código, se puede derivar una implementación de mecanismos sociofiscales complejos que goza de un alto nivel de seguridad con respecto a la fidelidad del código.
En concreto, primero hay que reunir todas las leyes, órdenes ejecutivas, casos anteriores, etc. que contengan información sobre el mecanismo sociofiscal que se quiere implementar. Luego, puedes proceder a anotar el texto artículo por artículo, en tu editor de texto favorito:
Una vez que su código esté completo y probado, puede usar el compilador Catala para producir una versión PDF legible por un abogado de su implementación. El lenguaje Catala ha sido especialmente diseñado en colaboración con profesionales del derecho para garantizar que los expertos en el dominio, que en este caso son abogados y no programadores, puedan revisar y certificar que el código es correcto.
La lengua catalá es especial porque su estructura lógica imita la estructura lógica de la ley. De hecho, el concepto central de "definición bajo condiciones" que se basa en la lógica predeterminada ha sido formalizado por la profesora Sarah Lawsky en su artículo A Logic for Statutes. El lenguaje Catala es el único lenguaje de programación que conocemos que incorpora la lógica predeterminada como una característica de primera clase, razón por la cual es el único lenguaje perfectamente adaptado a la programación legislativa alfabetizada.
Para empezar, el mejor lugar es el tutorial del idioma. También está disponible una versión en francés, pero es posible que no esté sincronizada con las últimas funciones del idioma.
Nota: versión de última generación
Si está interesado en la última versión de desarrollo, puede encontrar artefactos prediseñados que incluyen archivos binarios y documentación API en https://catalalang.github.io/catala
¡Catalá está disponible como paquete opam! Si opam está instalado en su máquina, simplemente ejecute:
opam install catala
Para obtener la última versión de Catala, también puedes hacerlo
opam pin add catala --dev-repo
Sin embargo, si desea obtener los últimos desarrollos del compilador, probablemente desee compilarlo desde las fuentes de este repositorio o utilizar nix. Para ello, consulte el archivo Léame dedicado.
Nota: el indicador --locked
se puede agregar a los comandos anteriores para imitar más fielmente las configuraciones de desarrollo conocidas. Por el contrario, se debe llamar a opam lock
para regenerar el archivo catala.opam.locked
tras modificaciones del archivo opam principal.
Utilice catala --help
si lo ha instalado para obtener más información sobre las opciones de línea de comando disponibles. La página de manual también está disponible en línea. Para obtener la versión de desarrollo de la ayuda, ejecute make help_catala
después de make build
. El binario catala
corresponde al compilador Catala.
El Makefile
de nivel superior contiene muchos objetivos útiles para ejecutar. Para mostrarlos, utilice
make help
Si bien el compilador tiene algunos backends integrados para Catala (Python, Ocaml, etc.), también es posible agregar un backend personalizado al compilador Catala sin tener que modificar su código fuente. Esta solución de complemento se basa en enlaces dinámicos: consulte el archivo README dedicado.
Utilice clerk --help
si lo ha instalado para obtener más información sobre las opciones de línea de comando disponibles. Para obtener la versión de desarrollo de la ayuda, ejecute make help_clerk
después de make build
. El binario clerk
corresponde al sistema de compilación Catala, responsable de las pruebas, entre otras cosas.
Para obtener más información sobre Clerk, consulte el archivo Léame dedicado
Catleg es una utilidad de línea de comandos que proporciona una integración útil con LégiFrance, el depósito oficial de documentación legal francesa. Consulte el repositorio decidido para obtener más información.
El resaltado de sintaxis está disponible para varios editores de texto. Los guiones se pueden encontrar aquí.
Una extensión VSCode para Catala está disponible en el mercado. Incluye un resaltador de sintaxis y un servidor LSP dedicado que ofrece soporte para navegación de código, autocompletado junto con una UX para conjuntos de pruebas. Consulte el repositorio dedicado para obtener más detalles.
Una herramienta de formato de código, catala-format
está disponible junto con el servidor LSP. Si está instalado, el formato del código está disponible directamente en VSCode. Esta herramienta se basa en una gramática tree-sitter
para Catala. Consulte el repositorio dedicado para obtener más detalles.
Puede encontrar una referencia completa y práctica de la sintaxis de Catala en la hoja de referencia (para las versiones de la sintaxis en francés e inglés).
Para auditar la prueba formal de la certificación parcial del compilador Catala, consulte el archivo Léame dedicado.
Se puede acceder a la documentación en línea, tanto para la última versión como para la versión más avanzada.
De lo contrario, se genera a partir del código fuente del compilador utilizando dune
y odoc
. Correr
make doc
para generar la documentación, luego abra el archivo doc/odoc.html
en cualquier navegador.
Para explorar los diferentes programas escritos en catalán, consulte el archivo Léame dedicado.
Para saber cómo utilizar el código generado por el compilador Catala en su lenguaje de programación favorito, diríjase al archivo Léame de la biblioteca jurídica francesa. Los ejemplos prediseñados correspondientes también están disponibles.
Para saber cómo puede contribuir al proyecto, consulte el archivo Léame dedicado.
Para saber cómo ejecutar o mejorar el conjunto de pruebas de referencia de Catala, consulte el archivo Léame dedicado.
El compilador y todo el código contenido en este repositorio se publica bajo la licencia Apache (versión 2), a menos que se especifique otra licencia para un subdirectorio.
Catala es un proyecto de investigación de Inria, el Instituto Nacional de Investigación en Ciencias de la Computación de Francia. El compilador aún es inestable y carece de algunas de sus funciones.
El idioma lleva el nombre de Pierre Catala, un profesor de derecho que fue pionero de la tecnología legal francesa al crear una base de datos informática de casos legales, Juris-Data. El grupo de investigación que dirigió a finales de los años 1960, el Centre d'études et detreatment de l'information juridique (CETIJ), también influyó en la creación por el consejero estatal Lucien Mehl del Centre de recherches et développement en informatique juridique (CENIJ). ), que acabó convirtiéndose en la entidad gestora del sitio web LegiFrance, actuando como servicio público de documentación legislativa.