0

シャット ヤード アルゴリズムを実装する際に、さまざまなオペレーターの優先順位を把握しようとしています。

私の抽象構文ツリーは中置式で、shuting yard アルゴリズムを使用して評価しています。これは、算術演算子に対してはうまく機能します。私が直面している問題は、他のすべての演算子の優先順位がわからないことです。

https://en.wikipedia.org/wiki/Shunting-yard_algorithmから、これらの演算子について次のことが当てはまることがわかります。番号は優先順位です。

^   4   
*   3 
/   3
+   2
−   2

しかし、関係演算子と論理演算子の優先順位を説明するものを見つけることができないようです? 私は答えをたくさん探しました。

誰かがこれらすべての演算子の優先順位の全体像を教えてくれますか?

a. Function call
b. (
c. ,
d. +, -
e. *, /
f. ^
g. =, <>, <, <=, >, >=
h. NOT
i. AND
j. OR

前もって感謝します。

/ブライアン

4

1 に答える 1

0

Mathematica Operator Input Formsを見てください。演算子の入力フォームが優先順位の高い順に示されています。優先順位が等しい演算子はグループ化されます。

Mathematica では、次のように「優先順位」を決定できます。

Precedence[Power] gives 590
Precedence[Times] gives 400
Precedence[Plus] gives 310
Precedence[Equal] gives 290
Precedence[Not] gives 230
Precedence[And] gives 215
Precedence[Or] gives 215
于 2016-11-25T15:47:02.103 に答える