Yakın tarihli bir CACM makalesinde [1], yazarlar aşamalı işlevler için bir uygulama sunmuştur . Terimi iyi bilinen bir terim olarak kullanıyorlar ve referansların hiçbiri açık bir giriş gibi görünmüyor.
Kısa bir açıklama yaparlar (vurgunun madeni ve referans numarası değiştirildi; aslında 22 oldu)
Program oluşturma bağlamında, Taha ve Sheard [2] tarafından oluşturulan çok aşamalı programlama (MSP, kısa süreli evreleme) [2] , programcıların bir program ifadesinin değerlendirmesini daha sonraki bir aşamaya açıkça geciktirmelerine izin verir (bu nedenle bir ifadeyi düzenler). Mevcut aşama, bir sonraki aşamadaki programı oluşturan (ve muhtemelen yürüten) bir kod üreticisi olarak etkilidir.
Ancak, Taha ve Sheard şöyle yazıyor:
Çok aşamalı bir program, hepsi aynı süreç içinde kodun oluşturulmasını, derlenmesini ve yürütülmesini içeren programdır. Çok aşamalı diller, çok aşamalı programları ifade eder. Aşama ve dolayısıyla çok aşamalı programlama, çalışma zamanı tercüman genel giderler ödemeyen genel amaçlı çözümlere duyulan ihtiyacı giderir.
Evrelemenin etkili olduğunu gösteren iddia edilen eski eserlere birkaç atıfta bulunduklarından, bu kavramın daha da eski olduğunu gösteriyor. Terimin kendisine referans vermezler.
Bu ifadeler çelişkili değilse, ortogonal görünüyor; belki Rompf ve Odersky'nin yazdığı şey Taha ve Sheard'ın önerdiklerinin bir uygulamasıdır, ama belki de aynı şeye başka bir bakış açısı olabilir. Önemli bir noktaya göre programların çalışma zamanında kendi parçalarını yazdıkları (ancak) bunun gerekli ve / veya yeterli bir yetenek olup olmadığını bilmiyorum.
Peki, ne olduğunu evreleme bu bağlamda evreleme yorumların sırasıyla var? Terim nereden geliyor?
- Hafif Modüler Evreleme: T. Rompf ve M. Odersky'nin (2012) Çalışma Zamanı Kodları Oluşturma ve Derlenmiş DSL'lere Pragmatik Bir Yaklaşım
- W. Taha ve T. Sheard (2000) tarafından açık ek açıklamalar ile MetaML ve çoklu programlama;
@generated function
s: julia.readthedocs.org/en/latest/manual/metaprogramming/…