FC2ブログ

ぱぱっちの私事で恐縮ですが

ぱぱっちの日常の出来事で、何か皆さんのお役に立てそうなことがあったら、日記に書こうと思っています。

「CALL文はなるべく使わない」という方針に従い、プログラムのCALL文を「CALL文で呼ばれたラベルからRETURN文までのプログラム」に置き換えるExcelマクロを作ってみました。
置き換えによりプログラムは長くなって読みにくくなりますが、JUMP文に置き換えるわけではないので、少しは速度の改善が期待できるのではないかと。

私のロボゼロは、右向き用と左向き用のプログラムが別々のファイルに保存されているので、右向き用だけプログラムの命令(MOVE文を除く)の数が可能な限り少なくなるよう見なおしてから、このマクロを使ってCALL文を1つも使わないプログラムファイルに変換してみました。

で、右向きと今までどおりの左向きで操作して比較してみると・・・劇的に速くなるわけではありませんが、少しキビキビとした感じが出てきました。あるモーションと次のモーションの間でロボゼロが少し考えこんでいる時間が短くなったような気がします。

MK84さんの推察通りインタプリタ方式だとするならば、他にインタプリタ向けに最適化できるテクニックがないか調べてみたいと思います。

スポンサーサイト