Bana göre, meta programlama "programları yazan bir programdır". o genelleme destekler çünkü
Meta programlama, yeniden kullanım için özellikle iyidir: Belirli bir desen ait kavramların ailesini tanımlayabilirsiniz. Ardından, değişkenliği ile bu konsepti benzer ancak farklı senaryolarda uygulayabilirsiniz. @Sjoerd tarafından belirtildiği gibi
basit örnek Java'nın Alıcılar ve ayarlayıcılar geçerli:
alıcı ve ayarlayıcı iyi tanımlanmış desen izleyin ikisi: Bir alıcı, bir sınıf üyesi döndürür ve bir ayarlayıcı bir sınıf üyenin değerini ayarlar . Genellikle, belirli bir desenin uygulanmasına ve yeniden kullanılmasına izin vermek için şablonu adlı ürünü oluşturursunuz. Bir şablon nasıl çalışır, kullanılan meta programlama/kod oluşturma yaklaşımına bağlıdır.
Alıcının veya ayarlayıcının biraz farklı bir şekilde davranmasını istiyorsanız, şablonunuza bazı parametreler ekleyebilirsiniz. Bu değişkenlik. Örneğin, alma/ayarlama sırasında ek işlem kodu eklemek isterseniz, değişkenlik parametresi olarak bir kod bloğu ekleyebilirsiniz. Özel kod ve üretilen kodu karıştırmak zor olabilir. ABSE şu anda, özel bir kodu doğrudan şablon parametresi olarak doğal olarak desteklediğini bildiğim tek MDSD yaklaşımıdır.
Bu ne işe yarar? Kesinlikle hiçbir şey. – Radu
http://en.wikipedia.org/wiki/War_(Edwin_Starr_song) 'nin olası kopyası – Tom
Birkaç yanıtın işaret ettiği gibi, açıklamanız doğru değil. Açıklamanız yansıma ve yön odaklı programlama (AOP) anlamına gelir. Bu ikisi, çalışma zamanında dilin yeteneğini genişletir. Meta programlama, dilin yeteneğini derleme zamanında genişletir ve özellikle de türler üzerinde çalışma yeteneği (bir tip sistemde).Diğer taraftan yansıma, çalışma zamanında türler üzerinde çalışma yeteneğini ekler. – rwong