Catala adalah bahasa khusus domain untuk memperoleh algoritme yang setia pada konstruksi dari teks legislatif. Untuk mempelajari bahasa dan fitur-fiturnya dengan cepat, Anda dapat langsung membuka tutorial resmi Catala. Anda dapat bergabung dengan komunitas Catala di Zulip!
Catala adalah bahasa pemrograman yang diadaptasi untuk pemrograman melek legislatif sosio-fiskal. Dengan membubuhi keterangan pada setiap baris teks perundang-undangan beserta maknanya dalam kaitannya dengan kode etik, kita dapat menyimpulkan implementasi mekanisme sosio-fiskal yang kompleks dan memiliki tingkat jaminan yang tinggi mengenai kesetiaan kode etik.
Konkritnya, Anda harus terlebih dahulu mengumpulkan semua undang-undang, perintah eksekutif, kasus-kasus sebelumnya, dan lain-lain yang memuat informasi tentang mekanisme sosial-fiskal yang ingin Anda terapkan. Kemudian, Anda dapat melanjutkan untuk memberi anotasi pada teks artikel demi artikel, di editor teks favorit Anda :
Setelah kode Anda selesai dan diuji, Anda dapat menggunakan kompiler Catala untuk menghasilkan versi PDF implementasi Anda yang dapat dibaca oleh pengacara. Bahasa Catala telah dirancang khusus bekerja sama dengan profesional hukum untuk memastikan bahwa kode tersebut dapat ditinjau dan disertifikasi dengan benar oleh pakar domain, yang dalam hal ini adalah pengacara dan bukan pemrogram.
Bahasa Catala istimewa karena struktur logikanya meniru struktur logika hukum. Memang benar, konsep inti "definisi-dalam-kondisi" yang dibangun berdasarkan logika default telah diformalkan oleh Profesor Sarah Lawsky dalam artikelnya A Logic for Statutes. Bahasa Catala adalah satu-satunya bahasa pemrograman sepengetahuan kami yang menyertakan logika default sebagai fitur kelas satu, itulah sebabnya bahasa ini merupakan satu-satunya bahasa yang secara sempurna disesuaikan dengan pemrograman legislatif yang melek huruf.
Untuk memulai, tempat terbaik adalah tutorial bahasanya. Versi Perancis juga tersedia tetapi mungkin tidak sinkron dengan fitur bahasa terbaru.
Catatan: versi paling mutakhir
Jika Anda tertarik dengan versi pengembangan terbaru, artefak bawaan termasuk binari dan dokumentasi API dapat ditemukan di https://catalalang.github.io/catala
Catala tersedia sebagai paket opam! Jika opam diinstal pada mesin Anda, cukup jalankan:
opam install catala
Untuk mendapatkan Catala versi terbaru dan mutakhir, Anda juga bisa melakukannya
opam pin add catala --dev-repo
Namun, jika Anda ingin mendapatkan perkembangan terkini dari kompiler, Anda mungkin ingin mengkompilasinya dari sumber repositori ini atau menggunakan nix. Untuk itu, lihat readme khusus.
Catatan: tanda --locked
dapat ditambahkan ke perintah di atas untuk lebih meniru pengaturan dev yang berfungsi. Sebaliknya, opam lock
harus dipanggil untuk membuat ulang file catala.opam.locked
setelah modifikasi file opam utama.
Gunakan catala --help
jika Anda telah menginstalnya untuk mendapatkan informasi lebih lanjut tentang opsi baris perintah yang tersedia. Halaman manual juga tersedia online. Untuk mendapatkan bantuan versi pengembangan, jalankan make help_catala
setelah make build
. Biner catala
sesuai dengan kompiler Catala.
Makefile
tingkat atas berisi banyak target berguna untuk dijalankan. Untuk menampilkannya, gunakan
make help
Meskipun kompiler memiliki beberapa backend bawaan untuk Catala (Python, Ocaml, dll.), Anda juga dapat menambahkan backend khusus ke kompiler Catala tanpa harus mengubah kode sumbernya. Solusi plugin ini bergantung pada tautan dinamis: lihat README khusus.
Gunakan clerk --help
jika Anda telah menginstalnya untuk mendapatkan informasi lebih lanjut tentang opsi baris perintah yang tersedia. Untuk mendapatkan bantuan versi pengembangan, jalankan make help_clerk
setelah make build
. Biner clerk
berhubungan dengan sistem build Catala, yang antara lain bertanggung jawab untuk pengujian.
Untuk mendapatkan informasi lebih lanjut tentang Clerk, lihat readme khusus
Catleg adalah utilitas baris perintah yang menyediakan integrasi berguna dengan LégiFrance, gudang resmi dokumentasi hukum Prancis. Lihat repositori yang ditentukan untuk informasi lebih lanjut.
Penyorotan sintaks tersedia untuk beberapa editor teks. Script dapat ditemukan di sini.
Ekstensi VSCode untuk Catala tersedia di pasar. Ini menggabungkan penyorot sintaksis dan server LSP khusus yang menawarkan dukungan untuk navigasi kode, pelengkapan otomatis bersama dengan UX untuk rangkaian pengujian. Lihat repositori khusus untuk lebih jelasnya.
Alat pemformatan kode, catala-format
tersedia di samping server LSP. Jika diinstal, pemformatan kode langsung tersedia di VSCode. Alat ini didasarkan pada tata bahasa tree-sitter
untuk Catala. Lihat repositori khusus untuk lebih jelasnya.
Referensi sintaks Catala yang lengkap dan praktis dapat ditemukan di lembar contekan (untuk sintaks versi Perancis dan Inggris).
Untuk mengaudit bukti formal sertifikasi parsial kompiler Catala, lihat readme khusus.
Dokumentasinya dapat diakses secara online, baik untuk rilis terbaru maupun versi terkini.
Jika tidak, ini dihasilkan dari kode sumber kompiler menggunakan dune
dan odoc
. Berlari
make doc
untuk menghasilkan dokumentasi, lalu buka file doc/odoc.html
di browser apa pun.
Untuk menjelajahi berbagai program yang ditulis dalam Catala, lihat readme khusus.
Untuk mengetahui cara menggunakan kode yang dihasilkan oleh kompiler Catala dalam bahasa pemrograman favorit Anda, kunjungi readme perpustakaan hukum Prancis. Contoh siap pakai yang sesuai juga tersedia.
Untuk mengetahui bagaimana Anda dapat berkontribusi pada proyek ini, lihat readme khusus.
Untuk mengetahui cara menjalankan atau meningkatkan rangkaian pengujian referensi Catala, lihat readme khusus.
Kompiler dan semua kode yang terdapat dalam repositori ini dirilis di bawah lisensi Apache (versi 2) kecuali lisensi lain ditentukan secara eksplisit untuk subdirektori.
Catala adalah proyek penelitian dari Inria, Institut Penelitian Nasional Ilmu Komputer Perancis. Kompilernya belum stabil dan tidak memiliki beberapa fiturnya.
Nama bahasa ini diambil dari nama Pierre Catala, seorang profesor hukum yang memelopori teknologi hukum Prancis dengan membuat database komputer untuk kasus-kasus hukum, Juris-Data. Kelompok penelitian yang dipimpinnya pada akhir tahun 1960-an, Center d'études et de traitement de l'information juridique (CETIJ), juga mempengaruhi pembentukan Center de recherches et développement en informatique juridique (CENIJ) yang dilakukan oleh konselor negara bagian Lucien Mehl. ), yang akhirnya bertransformasi menjadi entitas yang mengelola situs LegiFrance, bertindak sebagai layanan publik dokumentasi legislatif.