【发布时间】:2018-11-02 14:11:51
【问题描述】:
ML(及其变体,例如 SML)如何成为元语言。 ML 描述的对象语言是什么?是不是因为函数被认为是值,所以代码和数据一样被对待?
【问题讨论】:
标签: metaprogramming sml smlnj ml metalanguage
ML(及其变体,例如 SML)如何成为元语言。 ML 描述的对象语言是什么?是不是因为函数被认为是值,所以代码和数据一样被对待?
【问题讨论】:
标签: metaprogramming sml smlnj ml metalanguage
它实际上来自其原始用例。
ML 被设计成一种用于编写定理证明的语言。在这种情况下,ML 是您用来描述理论的编程语言。它是理论之上的语言:元语言。或者,正如米尔纳所说的那样,original paper:
我们还讨论将这些结果扩展到更丰富的语言;基于 W 的类型检查算法实际上已经实现并正在运行, 用于爱丁堡 LCF 系统中的元语言 ML。
名字卡住了,所以现在这样称呼它,尽管它没有描述一般意义上的对象语言。
【讨论】:
ML 最初是 Milner 在 70 年代开发的 LCF 定理证明器的元语言。您可以使用它在该系统中定义和执行证明,例如,通过在 ML 中编写证明策略。另见Wikipedia article
【讨论】: