Dalam artikel CACM baru-baru ini [1], penulis menyajikan implementasi untuk fungsi bertahap . Mereka menggunakan istilah itu seolah-olah itu terkenal, dan tidak ada referensi yang terlihat seperti pengantar yang jelas.
Mereka memberikan penjelasan singkat (penekanan saya dan nomor referensi berubah; ini 22 di aslinya)
Dalam konteks pembuatan program, pemrograman multistage (MSP, staging for short) sebagaimana didirikan oleh Taha dan Sheard [2] memungkinkan programmer untuk secara eksplisit menunda evaluasi ekspresi program ke tahap selanjutnya (dengan demikian, staging ekspresi). Tahap ini secara efektif bertindak sebagai pembuat kode yang menyusun (dan mungkin mengeksekusi) program dari tahap berikutnya.
Namun, Taha dan Sheard menulis (penekanan milikku):
Program multi-tahap adalah program yang melibatkan pembuatan, kompilasi, dan eksekusi kode, semuanya di dalam proses yang sama. Bahasa multi-tahap mengekspresikan program multi-tahap. Pementasan, dan akibatnya pemrograman multi-tahap, menjawab kebutuhan akan solusi tujuan umum yang tidak membayar biaya interpretatif run-time.
Mereka kemudian melanjutkan ke beberapa referensi ke karya lama yang diduga menunjukkan bahwa pementasan itu efektif, yang menunjukkan bahwa konsepnya bahkan lebih tua. Mereka tidak memberikan referensi untuk istilah itu sendiri.
Pernyataan-pernyataan ini tampaknya ortogonal, jika tidak bertentangan; mungkin apa yang Rompf dan Odersky tulis adalah aplikasi dari apa yang Taha dan Sheard usulkan, tapi mungkin itu adalah perspektif lain tentang hal yang sama. Mereka tampaknya setuju bahwa poin penting adalah bahwa program (kembali) menulis bagian dari diri mereka sendiri pada saat runtime, tetapi saya tidak tahu apakah itu diperlukan dan / atau kemampuan yang cukup.
Jadi, apa pementasan masing-masing interpretasi pementasan dalam konteks ini? Dari mana asal istilah itu?
- Stadium Modular Ringan: Pendekatan Pragmatis untuk Pembuatan Kode Runtime dan DSL yang Dikompilasi oleh T. Rompf dan M. Odersky (2012)
- MetaML dan multi-stageprogramming dengan penjelasan eksplisit oleh W. Taha dan T. Sheard (2000)
@generated function
s: julia.readthedocs.org/en/latest/manual/metaprogramming/…