看到一些语言特性,我有时会想,到底有人会如何实现这样的功能。因此,我的问题是,在众多现有的语言特性中,有哪些是最难实现的?为什么它是最受欢迎的(甚至是必需的?)
为了维持秩序,请每个帖子只提供一个特色。
发布于 2010-08-16 14:49:31
这不是以前被问过的吗?
高效的关闭处理。由于闭包在Lisp和Smalltalk (称为“块”)中的使用频率比其他任何编程语言都高得多,所以实现必须非常快。所以堆栈分配是我们想要的速度。但是,由于“真正的”闭包可能比它们定义的方法堆栈框架更有效,因此如果需要的话,必须小心地将它们从堆栈中取出。闭包在任何地方都很有用:回调、枚举/集合协议、跳远、操作-工作者队列、观察者协议、延迟评估(未来和懒惰)等等。顺便说一句: JavaScript也支持闭包!
发布于 2010-08-16 15:02:21
即使是最奇怪和最复杂的语言特性,比如C++模板,实际上也相对容易实现。真正困难的是如何有效地实现这些特性。
对我来说,最难的特性是在类似ML的语言中运行。对于一个特殊的实现来说,如果你想让它在库存硬件上高效的话,这是相当棘手的。有关详细信息,请参阅任何体面的ML实现。
https://stackoverflow.com/questions/3492672
复制相似问题