可以扩展程序自身,这样的能力,为元编程。
比如Ruby,使用元编程可以扩展出领域专用语言DSL, 比如RSpec、puppet、chef等。相对于新创造的领域专用语言DSL来说, Ruby语言就成为其的元语言,所以叫做元编程 。
「我的电话是 +86 123 4567 8910」
——这是一条数据;
「+86 123 4567 8910 有十三个数字和一个字符,前两位是国家代码,后面是一个移动电话号码」 —— 这是关于前面那条数据的数据。
('A'..'Z').each do |char|
system("python -c 'print \"#{char}\"'")
end
如此说来,inline SQL 甚至动态生成 HTML 也是元编程了?抠定义的话是这样吧。元编程是用代码在编译期或运行期生成/改变代码。除非程序的运行期的输入数据会被直接或间接