概要
Ken Thompsonの正規表現探索アルゴリズムは正規表現をIBM 7094の機械語に変換するAlgol 60で記述されたコンパイラと, IBM 7094のアセンブリ言語で記述された実行時に使うサブルーチン類で説明されている. つまり探索を機械語のプログラムで直接実行し, 速度を稼ごうという発想である. 実行時処理では,サブルーチンと, コンパイラの生成した機械語プログラムと, これらのプログラムが実行中に生成する機械語プログラムが入り乱れて走り, 解読が難しい.本稿ではThompsonプログラムの仕組みと, プログラムで作ったプログラムが走るvon Neumann型アーキテクチャを活用した時代のプログラムの面白さを説明する.