Mungkin aplikasi yang paling umum dari tipe linear dalam PL adalah menggunakannya untuk memberikan bahasa yang mengontrol aliasing (yaitu, nilai linier memiliki satu pointer ke sana, lebih atau kurang).
Tetapi ada sedikit ketidakcocokan antara penggunaan ini dan model denotasional khas dari logika linier. IIRC, Benton menunjukkan bahwa jika kategori tertutup Cartesian memiliki monad komutatif yang kuat , maka kategori aljabarnya akan tertutup simetris monoid (yaitu, model logika linier). Tetapi teorema ini tidak berlaku untuk penggunaan alias-control, karena state monad tidak komutatif. Dan memang, dalam beberapa tahun terakhir Simpson dan rekan-rekan kerjanya telah memberikan batu untuk monad kuat secara umum, yang bukan batu untuk istilah logika linier.
Jadi pertanyaan saya adalah, apakah semantik denotasional dari bahasa linear dengan negara? Apakah ada kategori simetris monoidal tertutup non-degenerasi (tensor bukan produk Cartesian) di mana alokasi, pembacaan, dan pembaruan linier dapat dimodelkan?
sumber
Jawaban:
Tampak bagi saya bahwa arah Anda harus mempertimbangkan mencari di sekitar permainan semantik untuk referensi umum dan semantik terkait untuk logika linier, seperti yang didasarkan pada permainan Conway . Akun aljabar referensi dalam semantik game oleh Paul-André Melliès dan Nicolas Tabareau mungkin adalah tempat terbaik untuk memulai. Dalam makalah ini, logika linier disesuaikan dengan apa yang disebut logika tensor untuk menyelesaikan pekerjaan, jadi ini bukan pengaturan yang Anda inginkan. Tetapi mereka memang mengandalkan permainan Conway, jadi tentu saja ada koneksi dengan model logika linier. Mereka juga tidak benar-benar mengeksploitasi linearitas seperti pada tipe linier, tetapi ada mesin untuk melakukannya jika Anda mau, saya percaya.
Karya Jim Laird (seperti A Game Semantics of Names and Pointers ) dan Guy McCusker juga dapat berkontribusi untuk pencarian Anda. Semantik Game tesis menarik baru-baru ini untuk bahasa berorientasi objek oleh Nicholas Wolverson mendorong ide-ide ini lebih jauh dalam pengaturan OO. Dia mempertimbangkan dalam linear threading , hanya satu operasi yang aktif pada suatu waktu, dan menjelaskan cara menambahkan kelas linear . Keduanya mengandalkan pengetikan linear. Namun, sekali lagi, model yang mendasarinya bukan semata-mata model logika linier, tetapi dekat.
sumber
(Astaga, Neel, itu pertanyaan yang sulit.)
"Model rakyat" dari logika linier jelas merupakan model ruang yang koheren, dibahas dalam makalah Linear Logic Girard (dan juga dalam "Bukti dan Jenis"). Ini tidak merosot dalam arti yang Anda gambarkan.
Apakah semantik ini menyoroti bagaimana bahasa fungsional linier dapat diimplementasikan, saya tidak yakin. Ketika Anda berbicara tentang alokasi, membaca, dan pembaruan linear, Anda memang berbicara tentang implementasi. Jadi, mungkin, pertanyaan Anda mungkin dirumuskan sebagai, "bagaimana saya membuktikan benar implementasi bahasa fungsional linier yang menggunakan pembaruan negara?" Saya tidak tahu jawaban untuk itu, tapi saya pikir itu harus ada di surat kabar yang mengusulkan implementasi pembaruan linier.
sumber