编程语言除了一些用于编写命令的语法和规则之外什么都不是,编译器可以将它们转换为机器代码,这是真的吗?
如果是,那么编程语言的速度就没有意义了,因为编译器的工作是创建优化的机器代码。这意味着,如果我们为所有编程语言创建最好的编译器,它们将具有相同的性能,这是真的吗?另一方面,当我们说c++20发布时,这意味着发布了一个新的编译器,它可以理解添加到c++中的一些新的语法规则,对吗?
附言:在这篇文章中,我不想提及解释型语言。
发布于 2020-10-22 20:47:27
,这意味着如果我们为所有编程语言创建最好的编译器,它们将具有相同的性能,这是真的吗?
不是的。一个伟大的优化编译器不会使一个糟糕的算法比一个未经优化的好算法更快。
,另一方面,当我们说c++20发布时,这意味着发布了一个新的编译器,它可以理解添加到c++中的一些新的语法规则,对吗?
不一定。虽然几乎每个新版本的编程语言都可能有一些新的语法,但并没有通用的规则要求更新必须有新的语法规则。
我目前主要用Prolog编程,它基本上有一些基本的语法规则。所有的新版本通常都会添加库、补丁、修复、更改,但使用Prolog,unification的基本语法从一开始就非常可靠。
虽然许多人不认为无类型lambda calculus是一种编程语言,但它只有抽象和应用程序;语法没有变化。
https://stackoverflow.com/questions/64481238
复制相似问题