我听说在使用某些语言 (RoR) 的同时,生产力会成倍提高。我还听说有些 VM 比其他 VM 更优化(GHC?)。还有一些人试图通过改进底层架构来优化他们选择的语言(Unladen Swallow)
然而,在阅读一篇论文(“SSA 是函数式编程”)时,我有一个问题,即一种特定语言是否可以凭借其语法(有朝一日)成为性能最佳的语言。
我想我要问的是,特定的语法是否是理论上最适合生成最佳机器代码的语法。
对于任何意见,我都会对基础理论非常感兴趣 - 我正在与一些 friend 讨论这个问题,我们正在讨论有关特定语法的信息内容的想法。
请注意,我说的是至少具有一流功能的语言 - 请不要使用 ASM。
最佳答案
这是非常主观的
语言的语法只是表达所需语义的一种方法。驱动性能的是语义。考虑到 ,“语法的性能影响”等于语义的性能影响。过去的语法分析 语法往往是无关紧要的。
语义的性能影响归结为运行这些语义的环境。这就是我们拥有 CPU 和 GPU 的原因,因为它们每个都可以更快地执行给定低级语言的语义。
如果没有明确说明目标环境,就没有真正的答案。一组机器会更好地处理并发程序,并且有语法表达并发比如二郎。
您可能应该关注的是通用虚拟机或环境如何为广泛的语义提供最佳性能。例如,如果您将 Erlang 语法移植到 JVM,虚拟机 是否可以?认识 语言是单赋值和并发的,不需要锁?它可以为此优化吗? Stackless 虚拟机是一个很好的例子,它试图根据所需的语义建立高效的通用环境。
真正的问题是:当环境根据定义是通用的时,环境是否可以针对一个类或一组受约束的语义进行优化?
我会建议学习一些关于编译器的知识(以及语法在何处不再重要),然后查看诸如 LLVM 之类的东西,然后重新问自己这个问题。至于函数语言是否更适合性能取决于执行翻译的环境(多核、分布式、小型嵌入式设备)。
关于syntax - 一些函数式编程语言在语法上是否适合更好的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/906299/