研究概要 |
Pascalのような手続き型プログラム言語のコンパイラは字句解析部の動作割合いが高い. 本研究ではまずPascalコンパイラの字句解析部を外付けのハードウェアにする方式とその性能改善度について検討した. しかし集積回路を本当に試作するための回路設計は手間もかかるものであるから, 手続き型言語のコンパイラ専用の回路を作ったのではあまり意味がないということになり, 第一年度の途中からLispのような関数型プログラム言語のインタプリンにも支える字句解析の回路について検討を行った. 検討の結果…かれはLispの特殊性によるかも知れないが, アトムの文字列を集積回路に置いたインタプリタは記号アトムのセル中から外部へのポインタが出ることになり, 適切なインプリメンテーションの方法はなかなか得られず, また文字列の分割, 合併の容易なLispでは, 新たに作られた文字列をインターンして記号アトムを作ることができ, その場合の処理に対してもうまい方式は得られないことがわかった. 残る方式は字句解析部だけでなく, Lispインタプリタの他のかなりの部分(ゴミ集めは除く)までを集積回路に取り込むことである. このため第二年度では式の評価部分をなるべく簡単に集積回路化し, 汎用計算機で実行するより高い能率を得ることに研究を集中した. その結果, 最近提唱されているコンビネータを用いたグラフコピイによる式のリダクション評価を集積回路に組み込む設計を行い, この機能設計に基づいてシミュレーションしてみたが, 毎秒50万リダクションを行った場合, インタプリタの50倍から100倍のスピードアップが得られるということがわかった.
|