--
したがって、多くのCスタイルの言語にはデクリメント( )およびインクリメント(++
)演算子があり、式全体が評価される前または後にミューテーションが発生することを許可していることを私は知っています。
ポストインクリメントがリターンで発生するとどうなりますか?私は振る舞いの観点からではなく、むしろ実装の観点から質問しています。
仮想マシン(JavaScript / JVMなど)または物理マシン(コンパイル済みC ++など)の場合、生成されるオペコードは次のようになりますか?(スタックベースの引数/戻り値を想定しています。)
int x = 4, y = 8;
return f(++a) + y++;
これに変わります:(多分?)
LOAD 4 A
LOAD 8 B
INC A
PUSH A
CALL F
POP INTO C
ADD C BY B
INC B
RET C
もしそうなら、これらの言語でのそのような操作は、式が複雑になったとき、おそらく少しでもLispishになったときに、インクリメントをどこに埋め込むかをどのように決定しますか?