• 検索結果がありません。

Japan Advanced Institute of Science and Technology

N/A
N/A
Protected

Academic year: 2021

シェア "Japan Advanced Institute of Science and Technology"

Copied!
3
0
0

読み込み中.... (全文を見る)

全文

(1)

Japan Advanced Institute of Science and Technology

JAIST Repository

https://dspace.jaist.ac.jp/

Title

正格な関数型言語における遅延評価を用いたループ不

変式削除最適化

Author(s)

奥谷, 謙一

Citation

Issue Date

2006‑03

Type

Thesis or Dissertation

Text version

author

URL

http://hdl.handle.net/10119/1969

Rights

Description

Supervisor:大堀 淳, 情報科学研究科, 修士

(2)

正格な関数型言語における

遅延評価を利用したループ不変式削除

奥谷 謙一

北陸先端科学技術大学院大学 情報科学研究科

月 日

キーワード コンパイラ,最適化,ラムダ計算,ループ不変式,遅延評価

ループ不変式削除は手続き型言語では多くの言語で使用される最適化のつである.こ れは,ループ内で値の変化のない計算を,ループ外で変数に束縛し,その変数でループ内 の計算を置き換える変換である.ループ内の演算を減らすことにより,プログラムの 計算時間を抑制することができる.これを関数型言語において実装することにより,実行 速度の向上を狙う.

関数型言語において,ループは再帰関数で表される.またパターンマッチと呼ばれる分 岐が多用される傾向にあり,複雑に分岐が起こる.最適化の前提として,適用前後のプロ グラムの意味が変わってしまうことは許されない.そのため,単純な変換ではプログラム の実行順序を変えないループ不変式削除を実現することはできない.と呼ばれる中 間表現を用いることで単純なループ不変式削除は実現されているが,複雑な場合では その適用は難しい.この問題を簡単な変形で解決するために本研究では遅延評価を導入 する.

関数型言語は評価順序について,正格と非正格にわけることができる.

などの正格な言語では,引数がまず評価され,その値が束縛され関数が実行される.こ れを正格評価という.など非正格な言語では,引数の評価を遅延し,関数には 引数へのポインタが渡される.そして必要になったときに評価される.これを遅延評価と いう.

この遅延評価を用い,ループ不変式をループ外で束縛するときに,式の評価を遅延させ ることで,その時点では式を評価せずに束縛する.そして,実際に値を用いる時点で評価 を行うことで,無駄な演算を抑制しつつ,単純な変換でループ不変式削除が実現できると 考えた.

しかし正格な関数型言語に遅延評価を導入するためには,遅延した式がまだ評価されて いないのか,または評価されているのかを判断するための評価機構を追加する必要があ る.そのため,遅延した式の評価に多少のオーバーヘッドが存在すると考えられる.

­

(3)

本研究では,以上の理論に基づく遅延評価を利用したループ不変式アルゴリズムを構築 した.このアルゴリズムを用いることで正格な関数型言語において単純な変換によるルー プ不変式削除が実現できる.そしてこのアルゴリズムに基づくループ不変式削除最適化 を, の拡張コンパイラであり大堀らが現在開発中の コンパイラ上 に実装した.遅延評価の実装はデータタイプを用い,ループ不変式をクロージャにしたも のを保存し,それを型で束縛することで実現した.そして作成したプログラムを用い,

評価を行った.

その結果,ループ中の分岐内にループ不変式がある場合において,従来の手法では難し かった,ループ不変式削除を遅延評価を用いることで適用することができた.プリミティ ブ演算など軽い処理を取り出した場合には最適化を適用しない場合に比べてむしろ遅く なってしまう結果になったが,ある程度重い処理をループ不変式として取り出すことがで きれば効果的に最適化が働くことが確認できた.

遅くなってしまう原因は,遅延評価機構によるものと考えられる.本研究ではクロー ジャ生成,評価オーバーヘッドである.

今後の課題としては,つ目はループ不変式の処理の重さをあらかじめ判定し,オーバー ヘッドを考慮しても効果のある場合についてだけループ不変式削除を行うことが挙げられ る.このような処理を行えば確実に早くなる最適化とすることができるが,プログラムを 処理する段階で処理の重さを正確に判定することは難しいと考えられる.

つ目は遅延評価機構を処理系に組み込むことでオーバーヘッドを減らすことが挙げら れる.今回遅延評価機構を関数として実装することで実現したが,そのため処理するたび に関数適用のオーバーヘッドがでてしまった.これを抽象機械でネイティブにサポートす ることで遅延評価の速度を改善し,より実用的な最適化とすることが可能と考えられる.

参考文献

! " #$% % " &'( ) *+" !+,%- %.%,

/. %01 /!! %!23(" 4

53,,"!+,%%65% !%1%!" +7%61%$%(,"

" ,-88555+9!68

" ,-88555 !68

,-88555,7%.! !1.9,8+ ,8%: +

参照

関連したドキュメント

The purpose of this study is to investigate how festivals created based on traditional culture affect the inheritance of traditional culture when they are used for tourism, using

し売上高に比例する歩合給の方式を採用するときは︑報酬の増加をはかるために不正または不当に売上高を増加しよ

のように,以上見てきた多くの研究によれば,アメリカでの個人破産に至る基

1、研究の目的 本研究の目的は、開発教育の主体形成の理論的構造を明らかにし、今日の日本における

以上のような背景の中で、本研究は計画に基づく戦

こうした背景を元に,本論文ではモータ駆動系のパラメータ同定に関する基礎的及び応用的研究を

転倒評価の研究として,堀川らは高齢者の易転倒性の評価 (17) を,今本らは高 齢者の身体的転倒リスクの評価 (18)

機械物理研究室では,光などの自然現象を 活用した高速・知的情報処理の創成を目指 した研究に取り組んでいます。応用物理学 会の「光