Status quo teori kategori dan monad dalam penelitian ilmu komputer teoretis?

17

Latar Belakang . Saya seorang mahasiswa sarjana yang tertarik dalam penelitian yang berkaitan dengan teori kategori, monad dan Haskell, dan saya ingin mencari topik untuk tesis sarjana saya di bidang itu.

Saya telah melihat kertas

dan saya belum mengerti banyak tentang itu. Saya mungkin perlu waktu untuk memahaminya. Tetapi sebelum menghabiskan lebih banyak waktu untuk mempelajarinya, saya ingin mendapatkan pemahaman yang lebih baik tentang lapangan dan potensi penelitiannya. Baru-baru ini saya berbicara dengan seorang profesor saya tentang hal itu dan dia mengatakan kepada saya bahwa monad sedang populer di komunitas riset di tahun 90-an, tetapi saat ini mereka sudah ketinggalan zaman.

Karena itu , saya sekarang mencari pekerjaan terbaru yang berhubungan dengan monad, dan saya bertanya-tanya:

  • Dalam bidang apa ilmu komputer teoretis saat ini dilakukan penelitian yang terkait dengan teori kategori dan monad?
  • Jenis penelitian apa yang telah dibangun atau diusulkan pada karya E. Moggi tentang monad dalam teori pemrograman? Apakah ada tindak lanjut atau penelitian yang sedang berlangsung terkait dengan makalahnya?
k.stm
sumber
Sebelum kita menjawab pertanyaan ini: ini bukan level penelitian kan? Mungkin lebih cocok untuk cs.stackexchange.com.
Andrej Bauer
3
@AndrejBauer Tesis sarjana saya tidak akan menjadi tingkat penelitian, tetapi pertanyaan saya membahas penelitian saat ini atau setidaknya penelitian yang dilakukan dalam dekade terakhir.
k.stm
9
@AndrejBauer saya tidak setuju. Situs saudara kebanyakan untuk pertanyaan pekerjaan rumah, sedangkan di sini pendapat ahli diperlukan.
Yuval Filmus
@ Kaveh Itu hasil edit drastis yang baru saja Anda buat. Anda meningkatkan beberapa poin, tapi sekarang bukan pertanyaan yang sebenarnya saya tanyakan lagi. Ketika saya punya waktu besok, saya akan mengembalikan beberapa perubahan Anda. Sebagai contoh, penting bagi saya untuk memiliki latar belakang di sana. Tolong beri tahu saya perubahan apa yang menurut Anda perlu dan mengapa saya tahu apa yang tidak boleh dibatalkan.
k.stm
1
@Yuval, saya pikir banyak orang di Ilmu Komputer akan sangat tidak setuju dengan komentar Anda bahwa itu terutama untuk pekerjaan rumah dan para ahli tidak hadir di Ilmu Komputer . Dalam hal ini Andrej telah menjawab lebih dari 100 pertanyaan tentang Ilmu Komputer .
Kaveh

Jawaban:

15

Ada sejumlah perkembangan berkaitan dengan penggunaan monad dalam teori komputasi sejak karya Eugenio Moggi. Saya tidak dapat memberikan akun yang komprehensif, tetapi di sini ada beberapa poin yang saya ketahui, yang lain bisa menjawab dengan jawaban mereka.

Contoh spesifik dari monad

Anda tidak harus mempelajari teori super-jenderal sepanjang waktu. Ada contoh monad yang sangat menarik dan cukup rumit untuk mengisi seluruh tesis sarjana.

Saya sangat menyukai blog Dan Piponi di mana ia memberikan contoh yang luar biasa tentang bagaimana monad dapat digunakan untuk mencampur pemrograman fungsional dan matematika. Cari karyanya tentang simpul dan jalinan melalui monad, misalnya.

Contoh spesifik lain dari mondas yang layak dipelajari adalah yang diberikan oleh Martin Escardo dan Paulo Oliva dalam konteks fungsi seleksi, lihat Fungsi Seleksi, Pengulangan Bar, dan Backward Induction , atau mungkin untuk tertarik terlebih dahulu membaca What Sequential Games, Teorema Tychonoff dan the Double-Negation Shift memiliki kesamaan (file Haskell dan Agda terkait di sini ).

Latar belakang matematika

Monad berasal dari teori kategori dan jauh lebih tua dari Eugenio Moggi. Anda bisa mempelajari teori latar belakang jika Anda cenderung secara matematis. Misalnya, Anda dapat menyerang teorema monadicity Beck . Seorang ilmuwan komputer teoretis tidak akan pernah tahu terlalu banyak matematika.

Variasi pada suatu tema

Anda bisa melihat sesuatu yang tidak sepenuhnya monad.

Sebagai contoh, Connor McBride dan Ross Paterson's Idioms: pemrograman aplikatif dengan efek menunjukkan bagaimana seseorang dapat menggeneralisasi monad menjadi sesuatu yang praktis relevan dan berwawasan luas.

Atau Anda bisa melihat bagaimana comonads digunakan untuk memodelkan efek komputasi. Seseorang harus menyarankan beberapa referensi untuk topik ini, tetapi awal yang baik mungkin adalah slide David Overtone .

Teori tipe modal

Dalam teori tipe homotopy, serta teori tipe secara umum, monad muncul dalam bentuk teori tipe modal . Baru-baru ini teori jenis modal telah dipertimbangkan dalam teori jenis homotopy karena operator pemotongan adalah contoh dari operator modal. Dan kemudian ada teori tipe homotop kohesif di mana operator modal (yang merupakan monad) memainkan peran penting.

Efek dan penangan aljabar

[Penafian: meniup tiup tandukku sendiri di sini.]

Beberapa waktu yang lalu Gordon Plotkin dan John Power mengamati bahwa banyak efek komputasi bukan sembarang monad, tetapi monad khusus yang muncul dari teori aljabar. Ini mengarah ke pengobatan yang sama sekali baru dari efek komputasi yang dikenal sebagai efek aljabar . Kemudian Gordon Plotkin dan Matija Pretnar memperkenalkan penangan dan bersama dengan efek aljabar mereka membentuk teori efek komputasi yang sangat bagus. Satu keuntungan dari pendekatan ini adalah bahwa teori-teori aljabar dapat dengan mudah digabungkan sedangkan monad tidak dapat.

Anda bisa mempelajari bagaimana sebenarnya efek aljabar berhubungan dengan monad. Anda bisa melihat bagaimana orang menerapkan efek dan penangan aljabar, katakan dalam bahasa Eff atau dalam Haskell sebagai perpustakaan . Ini adalah penelitian yang kurang lebih saat ini.

Andrej Bauer
sumber
Hai, terima kasih atas jawaban itu! Saya mengklik situs web Anda tentang Eff, dan sepertinya tautan ke Pengantar Efek Aljabar dan Penangan sudah usang, yaitu file eff-lang.org/handlers-tutorial.pdfhilang.
k.stm
1
Saya meminta Matija untuk memperbaiki tautan, sementara itu Anda bisa melihat arxiv.org/abs/1203.1539 .
Andrej Bauer
Saya sudah. Bisakah Anda, dengan cara, memberikan gambaran singkat tentang teori latar belakang yang perlu saya pelajari untuk memahami makalah Anda? Saya tahu beberapa teori kategori, kalkulus lambda yang tidak diketik dan beberapa teori dasar perhitungan dan teori pemrograman dasar (saya tahu apa itu semantik denotasional), tetapi tidak jauh lebih jauh. Misalnya saya sudah bisa mengatakan dari bagian 3 dari makalah Anda bahwa saya perlu melihat aturan mengetik (jadi mungkin ke dalam kalkulus lambda yang diketik). Maaf jika saya memaksa di sini.
k.stm
3
Anda harus tahu sedikit tentang aljabar universal dan / atau teori teori aljabar Lavwere. Jika Anda tidak terbiasa dengan aturan pengetikan maka Anda dapat mempelajari buku teks umum tentang bahasa pemrograman, seperti TAPL Benjamin Pierce atau yayasan Praktis Bob Harper untuk bahasa pemrograman .
Andrej Bauer
1

Makalah ini memberikan beberapa pekerjaan penting terbaru menggunakan monad.

NietzscheanAI
sumber
1
Hai, terima kasih atas jawaban Anda. Saya akan menghargai sedikit konteks, yaitu jika Anda dapat meluangkan waktu untuk memberikan beberapa detail. (Sebenarnya makalah ini memiliki pengantar yang bagus tentang isinya, tetapi saya masih ingin melihat beberapa konteks untuk lingkungannya, seperti jika ada pekerjaan terkait dan semacamnya.)
k.stm