算術演算の順序

昨日布団に入ってからなんとなく気になったこと。

Pythonの場合(ActivePython 2.6.1)

>>> 3 + 4 * 5
23

演算子(でいいんだっけ?)なんだろうから、算数で常識的と思われる順序。

Smalltalkの場合

3 + 4 * 5
"35"

ただのメッセージ式なので左結合。

Rubyの場合(ruby-1.8.7-p72-i386-mswin32)

irb(main):001:0> 3 + 4 * 5
=> 23
irb(main):002:0> 3.+(4).*(5)
=> 35

まあ、言いたいことはわかるんだけど、ただのシンタックスシュガー以外の何かが介在してるのが気持ち悪い。