为什么流行的编程语言如 c、c++、java、python、PHP 不支持后缀(逆波兰表示法)或前缀表达式?

Why popular programming languages like c, c++, java, python, PHP doesn't support postfix (Reverse Polish Notation) or prefix expressions?

注意:- 我不是在谈论增量和减量运算符。我说的是前缀和后缀表达式。

python中的示例:-

def calculate(a, b, c, d):
    return a * ( b + c ) / d 

calculate(1,2,3,4)

我知道 python 不支持前缀或后缀表达式。但是想象一下如果python支持后缀表达式,我可以这样写函数

def calculate(a, b, c, d):
    return a b c + * d /

calculate(1,2,3,4)

我在这篇 link 中读到,评估后缀表达式比中缀表达式更快

  1. 评估中缀表达式所需的时间是 O(n^2) -> 原因 - 需要找到具有最高优先级的运算符。
  2. 后缀表达式求值所需时间为O(n) -> 原因- 无需查找运算符的优先级。我们只需要从左到右计算即可。

如果是这种情况,那么为什么 C、C++、Java、Python、Ruby 或 PHP 等流行的编程语言不支持后缀表达式原生?

I read in this link that evaluating the postfix expressions are faster than infix expressions. The time required for evaluating an infix expression is O(n^2) -> reason - Need to find the operators having the highest precedence.

这个答案是错误的。它声称对编译器如何解析表达式的描述是无稽之谈。但是见鬼,即使它是对的,这里的 n 也是微不足道的。典型的表达式有,什么,1-5 个运算符?即使对于二次算法,这也是小儿科。

此外,语言并非旨在从其解析器中获得微观性能提升。它们旨在帮助人们以最大的可读性、简洁性、表现力或每种语言的任何其他目标来表达他们的想法。我什至无法想象有人编写的解析器如此缓慢以至于加速实际上是显而易见的。

If this is the case then why don't popular programming languages like C, C++, Java, Python, Ruby, or PHP support postfix expressions natively?

人们熟悉中缀表示法。由于性能参数是错误的,因此没有令人信服的理由让流行语言使用前缀或后缀表示法。使用其中任何一种语言都几乎可以保证语言不会成为主流(抱歉,Lisp 粉丝!)。