哪些现有语言功能最难实现?为什么?

时间:2010-08-16 11:29:06

标签: language-agnostic language-features implementation

考虑一些语言特性,我有时会想知道有人会如何实现这样的功能。所以我的问题是,现有的语言功能中哪一个最难实现?解释为什么如此受欢迎(甚至可能需要?)。

为了维持订单,每个帖子只能使用一个功能。

2 个答案:

答案 0 :(得分:4)

MHMH - 以前没有问过这个问题吗?

高效的封闭处理。 由于闭包在Lisp和Smalltalk(在那里称为“Block”)中使用 MUCH 比在几乎任何其他编程语言中使用更多,因此实现必须非常快。因此堆栈分配是我们想要的速度。但是,由于“真正的”闭包可以比定义的方法堆栈帧更长,因此必须注意在需要时将它们从堆栈中移除。 闭包在任何地方都很有用:回调,枚举/收集协议,longjump,action-worker队列,观察者协议,延迟评估(期货和懒惰)等等。 顺便说一句:JavaScript也支持闭包!

答案 1 :(得分:2)

即使是最奇怪和最复杂的语言功能,例如C ++模板,实际上也相对容易实现。真正困难的是有效地实现这些功能。

对我而言,最难的功能就是使用类似ML的语言。对于临时实现而言,如果您希望它在库存硬件上高效,则非常棘手。有关详细信息,请参阅任何体面的ML实现。