Catala é uma linguagem de domínio específico para derivar algoritmos fiéis por construção de textos legislativos. Para aprender rapidamente sobre a linguagem e seus recursos, você pode ir direto para o tutorial oficial do Catala. Você pode ingressar na comunidade Catala no Zulip!
Catala é uma linguagem de programação adaptada para programação alfabetizada legislativa sócio-fiscal. Ao anotar cada linha do texto legislativo com o seu significado em termos de código, pode-se derivar uma implementação de mecanismos sócio-fiscais complexos que gozam de um elevado nível de garantia quanto à fidelidade do código-lei.
Concretamente, é necessário primeiro reunir todas as leis, ordens executivas, casos anteriores, etc. que contenham informações sobre o mecanismo sociofiscal que se deseja implementar. Em seguida, você pode anotar o texto artigo por artigo, em seu editor de texto favorito:
Depois que seu código estiver completo e testado, você poderá usar o compilador Catala para produzir uma versão em PDF de sua implementação legível por advogados. A linguagem Catala foi especialmente desenvolvida em colaboração com profissionais do direito para garantir que o código possa ser revisado e certificado corretamente pelos especialistas do domínio, que neste caso são advogados e não programadores.
A língua catalã é especial porque a sua estrutura lógica imita a estrutura lógica da lei. Na verdade, o conceito central de “definição sob condições” que se baseia na lógica padrão foi formalizado pela Professora Sarah Lawsky no seu artigo A Logic for Statutes. A linguagem Catala é a única linguagem de programação que conhecemos que incorpora a lógica padrão como um recurso de primeira classe, e é por isso que é a única linguagem perfeitamente adaptada para uma programação legislativa alfabetizada.
Para começar, o melhor lugar é o tutorial do idioma. Uma versão em francês também está disponível, mas pode estar fora de sincronia com os recursos de idioma mais recentes.
Nota: versão mais recente
Se você estiver interessado na versão de desenvolvimento mais recente, artefatos pré-construídos, incluindo binários e documentação da API, podem ser encontrados em https://catalalang.github.io/catala
Catala está disponível como um pacote opam! Se o opam estiver instalado em sua máquina, basta executar:
opam install catala
Para obter a versão mais recente e de ponta do Catala, você também pode fazer
opam pin add catala --dev-repo
No entanto, se você deseja obter os desenvolvimentos mais recentes do compilador, provavelmente desejará compilá-lo a partir das fontes deste repositório ou usar nix. Para isso, consulte o leia-me dedicado.
Nota: o sinalizador --locked
pode ser adicionado aos comandos acima para imitar mais de perto as configurações de desenvolvimento de trabalho conhecidas. Por outro lado, opam lock
deve ser chamado para regenerar o arquivo catala.opam.locked
após modificações no arquivo opam principal.
Use catala --help
se você o instalou para obter mais informações sobre as opções de linha de comando disponíveis. A página de manual também está disponível online. Para obter a versão de desenvolvimento da ajuda, execute make help_catala
depois de make build
. O binário catala
corresponde ao compilador Catala.
O Makefile
de nível superior contém muitos alvos úteis para executar. Para exibi-los, use
make help
Embora o compilador tenha alguns back-ends integrados para Catala (Python, Ocaml, etc.), também é possível adicionar um back-end personalizado ao compilador Catala sem ter que modificar seu código-fonte. Esta solução de plugin depende de links dinâmicos: consulte o README dedicado.
Use clerk --help
se você o instalou para obter mais informações sobre as opções de linha de comando disponíveis. Para obter a versão de desenvolvimento da ajuda, execute make help_clerk
após make build
. O binário clerk
corresponde ao sistema de compilação Catala, responsável por testes, entre outras coisas.
Para obter mais informações sobre o Clerk, consulte o leia-me dedicado
Catleg é um utilitário de linha de comando que fornece integração útil com o LégiFrance, o repositório oficial da documentação legal francesa. Consulte o repositório decidido para obter mais informações.
O realce de sintaxe está disponível para vários editores de texto. Os scripts podem ser encontrados aqui.
Uma extensão VSCode para Catala está disponível no mercado. Ele inclui um marcador de sintaxe e um servidor LSP dedicado que oferece suporte para navegação de código, preenchimento automático junto com uma UX para suítes de teste. Veja o repositório dedicado para mais detalhes.
Uma ferramenta de formatação de código, catala-format
está disponível junto com o servidor LSP. Se instalado, a formatação do código estará disponível diretamente no VSCode. Esta ferramenta é baseada em uma gramática tree-sitter
para Catala. Veja o repositório dedicado para mais detalhes.
Uma referência completa e prática da sintaxe Catala pode ser encontrada na folha de dicas (para versões da sintaxe em francês e inglês).
Para auditar a prova formal da certificação parcial do compilador Catala, consulte o leia-me dedicado.
A documentação está acessível online, tanto para a versão mais recente quanto para a versão mais recente.
Caso contrário, é gerado a partir do código-fonte do compilador usando dune
e odoc
. Correr
make doc
para gerar a documentação e abra o arquivo doc/odoc.html
em qualquer navegador.
Para explorar os diferentes programas escritos em Catala, consulte o leia-me dedicado.
Para saber como usar o código gerado pelo compilador Catala em sua linguagem de programação favorita, acesse o leia-me da biblioteca jurídica francesa. Os exemplos pré-construídos correspondentes também estão disponíveis.
Para saber como você pode contribuir com o projeto, consulte o leia-me dedicado.
Para saber como executar ou melhorar o conjunto de testes de referência Catala, consulte o leia-me dedicado.
O compilador e todo o código contido neste repositório são lançados sob a licença Apache (versão 2), a menos que outra licença seja explícita para um subdiretório.
Catala é um projeto de pesquisa do Inria, o Instituto Nacional Francês de Pesquisa em Ciência da Computação. O compilador ainda é instável e carece de alguns de seus recursos.
A linguagem leva o nome de Pierre Catala, um professor de direito que foi pioneiro na tecnologia jurídica francesa ao criar um banco de dados de casos jurídicos, Juris-Data. O grupo de pesquisa que liderou no final da década de 1960, o Centre d'études et de traitement de l'information juridique (CETIJ), também influenciou a criação, pelo conselheiro estadual Lucien Mehl, do Centre de recherches et développement en informatique juridique (CENIJ). ), que acabou por se transformar na entidade gestora do site LegiFrance, funcionando como serviço público de documentação legislativa.