Saya mencari kalkulus sederhana yang mendukung pemikiran tentang refleksi , yaitu introspeksi dan manipulasi program yang sedang berjalan.
Apakah ada ekstensi -calculus yang tidak diketik yang memungkinkan seseorang untuk mengkonversi -terms ke dalam bentuk yang dapat dimanipulasi secara sintaksis dan kemudian dievaluasi?λ
Saya membayangkan bahwa kalkulus memiliki dua istilah tambahan utama:
- : mengambil dan menghasilkan representasi dari bisa dikembangkan untuk manipulasi sintaksis.v
- : mengambil representasi sintaksis dari suatu istilah dan mengevaluasinya.
Untuk mendukung refleksi, diperlukan representasi sintaksis dari istilah-istilah. Itu akan terlihat seperti:
- akan direpresentasikan sebagai sebuah istilah , di mana adalah versi yang direfleksikan dari ,R ( e ) e
- akan direpresentasikan sebagai term , dan
- akan direpresentasikan sebagai .
Dengan representasi ini, pencocokan pola dapat digunakan untuk memanipulasi istilah.
Tapi kami mengalami masalah. dan perlu dikodekan sebagai istilah, seperti halnya pencocokan pola. Berurusan dengan ini tampaknya mudah, menambahkan , dan , tetapi apakah saya perlu menambahkan istilah lain untuk mendukung manipulasi ini?e v a l R E F L E C T E V A L M A T C H
Ada pilihan desain yang perlu dibuat. Apa yang harus dilakukan fungsi disinggung di atas dengan tubuh dan ? Haruskah mengubah tubuh atau tidak?r e f l e c t e v a l R ( - )
Karena saya tidak begitu tertarik untuk mempelajari refleksi itu sendiri - kalkulus akan berfungsi sebagai wahana untuk penelitian lain - saya tidak ingin menemukan kembali roda.
Adakah kalkuli yang ada yang cocok dengan yang baru saja saya jelaskan?
Sejauh yang saya tahu, kalkulus seperti MetaML, disarankan dalam komentar, berjalan jauh, tetapi mereka tidak termasuk kemampuan untuk pola pertandingan dan mendekonstruksi fragmen kode yang telah dibangun.
Satu hal yang ingin saya lakukan adalah sebagai berikut:
Dan kemudian lakukan pencocokan pola pada hasil untuk membangun ekspresi yang sama sekali berbeda.
Ini tentu saja bukan perpanjangan konservatif ke -kalkulus dan meta-teori cenderung jelek, tetapi ini adalah semacam titik untuk aplikasi saya. Saya ingin memecah λ -straksi terpisah.