2M-4
プログラム変換器によるメモ化の適用範囲拡張
○康 娜丹,小宮常康(電通大)
 メモ化は、重複した計算を省略することでプログラムを高速する手法である。この手法では、関数呼出しの引数と返値のペアを記憶しておき、同一の関数呼出しを再度行う際に、記憶した返値を再利用する。しかし、メモ化可能な関数は参照透過性を備えるものに限られる。本研究は参照透過性を備えない関数を、プログラム変換器によって、大域変数への参照と代入を行わない関数に変換する。具体的には、大域変数を局所変数として表し、その値を伝えるためのパラメータを関数へ追加する。また、大域変数へ代入された値は関数の返値の一部として返すようにする。このような変換によって、メモ化の適用範囲が広がり、自動メモ化が行いやすくなる。