Elementary Affine Logic adalah sistem tipe yang menangkap kelas istilah-λ yang dapat dikurangi dalam waktu dasar. Selain itu, istilah EAL-typeable dapat dikurangi menggunakan fragmen abstrak dari algoritma Lamping, yang sangat menarik bagi saya karena saya sedang mengeksplorasi kombinator interaksi yang sesuai.
Pertanyaan saya adalah, bagaimana seseorang dapat membuat bahasa pemrograman praktis menggunakan EAL sebagai sistem tipe yang mendasarinya? Yaitu, ekstensi seperti apa (titik perbaikan, polimorfisme, tipe dependen, tipe data, dll.) Dapat dibuat ke sistem tipe inti tanpa mempengaruhi karakteristik itu, dan apakah bahasa seperti itu dapat digunakan dalam praktiknya, atau apakah itu akan menjadi terlalu restriktif karena alasan yang tidak saya sadari?
sumber
Jawaban:
Sesuatu yang sangat mirip, tetapi menggunakan logika cahaya affine (LAL) bukan EAL, dicoba beberapa tahun yang lalu oleh Baillot, Gaboardi dan Mogbil (Anda dapat menemukan kertas di sini ). Saya pikir pekerjaan mereka dapat dengan mudah digeneralisasikan ke EAL, yang merupakan sistem yang lebih liberal.
Adapun fitur dari bahasa tersebut, Anda memiliki polimorfisme secara native (EAL adalah pembatasan logika linier urutan kedua). Sejauh yang saya tahu, tidak ada yang melihat tipe dependen, tapi saya tidak melihat mengapa mereka tidak bekerja. Faktanya, EAL yang tidak diketik berfungsi seperti halnya EAL yang diketik, karena properti normalnya tidak bergantung pada tipe.
Bagaimanapun, jika Anda tertarik pada hubungan antara evaluasi optimal, EAL dan logika ringan secara umum, saya sarankan Anda melihat makalah Coppola dari awal hingga pertengahan 2000-an.
sumber