Read/Search this Article
Abstract
我々は汎用計算機上にWAM[Warren83]をベースとしたGHC[Ueda86]の処理系を開発している[森田86]。本処理系はガード部を解析して、節の選択を決定木に展開する最適化手法を取り入れている[森田87]。本処理系でGHCプログラムをコンパイルすると、手続き型言語とはかなり違った機械コードが出力される。比較・条件分岐命令が非常に多い機械コード列になっている。これは、手続き(同じ頭部を持つ節の集合)という小さな単位(手続き型言語のサブルーチンや関数という単位よりはるかに小さな単位)で独立にコンパイルしているため、実際の処理の部分と比べて、その手続きに渡ってくるデータの全ての可能性を考慮した動的な検査(比較・条件分岐命令)を行う部分の比重が高くなってしまっているからである。そしてこれは、プログラム実行上のかなりのオーバヘッドになっている。このような非効率的な処理を大域的な視点で最適化する方法を述べる。これにより、外部データに対する動的な検査の比重の高かった小さなループ中の処理が効率よく処理された。
Journal
- 全国大会講演論文集 [List of Volumes]
-
全国大会講演論文集 第37回昭和63年後期(1), 683-684, 1988-09-12 [Table of Contents]
Information Processing Society of Japan (IPSJ)