怎么理解元编程?

发布网友

我来回答

1个回答

热心网友

Meta-这个前缀源于希腊语,意为"在...之后,越过...",西方哲学界赋予它新的意义,指关于某事自身的某事。由此,我们得知将meta-前缀翻译为"元"并不准确。使用"后设"相对较好,但仍然难以直接理解。或许"自相关"是一个不错的选择,"自相关数据"、"自相关语言"、"自相关编程",但似乎又过于冗长。

让我们先探讨meta-data的概念。"我的电话是+86 123 4567 10"是数据,而"+86 123 4567 10有十三个数字和一个字符,前两位是国家代码,后面是一个移动电话号码"是关于这条数据的数据。那么,元编程如何定义呢?简而言之,元编程是关于编程的编程。比如,如果程序甲可以输出A-Z,那么编写程序甲就是编程;而编写程序乙,这个程序可以生成程序甲(也许还会运行它输出A-Z),就是元编程。

那么,inline SQL或动态生成HTML是不是元编程呢?从广义上讲,它们符合元编程的定义。然而,更狭义的元编程是指编写可以修改语言语法特性和运行时特性的程序。换言之,通过编程修改语言使其能够实现原本无法做到的功能,这就是元编程。正如文中提到的method_missing,它展示了运行时元编程的典范。

多数流行的语言,如C、C++、Python、JavaScript等,以及Lisp方言,都具备元编程能力,而Ruby因其易用且强大的元编程特性,常被用于编写DSL。因为元编程可以创造出"不存在的语法特性",使编写DSL变得简单。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com