Upgrade to Pro — share decks privately, control downloads, hide ads and more …

BrainF*ckの高速化

 BrainF*ckの高速化

Akira Moroo

March 04, 2018
Tweet

More Decks by Akira Moroo

Other Decks in Programming

Transcript

  1. ホットスポットを探す • 命令の実行には局所性がある • 一部の命令は大量に実行されるが,他の命令はあまり 実行されない • 例: データポインタを7デクリメント •

    BF: <<<<<<< • C: dataptr -= 7; • ⇒ホットスポットに対応するBFより高水準な命令を 追加,初期化時にBFをこれらの命令に変換,実行 3
  2. ループの最適化 • [と]のループには使われるパターンが存在 • 例: 現在のメモリを0にセット • C: data[data_ptr] =

    0; • BF: [-] • 一見短いが,0になるまでループされる • ⇒ループパターンを表現する高水準な命令を追加 4