Skip to content
Silica edited this page Mar 21, 2012 · 6 revisions

#Optimize ##in compile ###計算しない式文 1;とかa;とか"string";
a + b;は今のところ考慮外

###定数計算 定数計算をコンパイル時に予め行う
但しa + 1 + 1の様な式の場合
(a + 1) + 1と解釈される為、最適化されない

###suffix increment/decrement i++;++i;と解釈する

###論理AND/ORの短絡評価 if (left && right)の様な場合に左項が偽であれば右項を評価しない

###()演算子 計算順序を変える為だけの()を演算子化しない

###最適化時に意味の変わるコード func() return 1++;

print(func());
print(func());
print(func());

この結果は最適化時は111
非最適化時は123である

##run time ###末尾呼び出し スコープを深くしない
但し、新しいスコープが作られないわけではない

Clone this wiki locally