タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

bfに関するtodeskingのブックマーク (1)

  • BrainScan - BrainF*ckプログラムを超高信頼化する - 数学猫の生活と意見

    BrainScanというものを作ってみました。BrainFuck*1のソースコードモデル検査器です。プログラムがとり得る全状態を探索し、異常が起きないか検査します。検査できるのは、ポインタがアンダーフローしないことバッファの値が0-255を越えないかどうか(-Rまたは--rangeオプションを付けたときのみ)コード中で!でマークされた位置に到達しないかどうか(したらエラーとみなす)です。エラーを検出すると、そこまでのトレースを出力します。アルゴリズムは単純で、深さ優先探索をするだけです。バッファの状態は区間の集合として保持されています。OCamlで書かれて、コンパイルするにはfindlibとextlibが必要です。例を見てみましょう。 $ ./brainscan '[]!' ! reached. 0: [ 2: ! BrainF*ckプログラムはコマンドライン引数として与えます。この例だと

  • 1