純関数型言語の処理系における効率的な枝刈り機構の実装
スポンサーリンク
概要
- 論文の詳細を見る
実行効率の良い探索プログラムを書くためには,結果に寄与しない計算を除去する枝刈りが有効であるが,一般に,簡潔なプログラム構造を保ったまま枝刈りの記述をすることは難しい.この問題点を解決するために,Improving Sequence(IS)というデータ構造を用いる手法が提案され,有効性が確認されている.ISとは,ある全的に定義された推移的な二項関係に従い,要求駆動によって単調に最終結果へ近づいていく近似値の列のことである.ISを用いたプログラムでは,枝刈りをするか否かの判断に近似値を用いることができる.従来の純関数型言語上のISの実装はライブラリによるものだったので,近似値の数に比例したヒープ領域を必要とし,効率があまり良くないという問題点があった.この問題点を解決するため,本論文では,ISの近似値が持つ単調性に着目し,また,近似値が枝刈りの判断にのみ用いられ,中間データとしての役割しか持たないことを前提として,純関数型言語において,定数領域しかヒープを消費しないISの実装を提案する.提案手法の効果を確認するため,Glasgow Haskell Compilerに実装を施し,ナップサック問題など,いくつかのプログラムで実験を行った.その結果,問題によってばらつきはあるものの,メモリ消費量において3%〜75%程度の減少が見られ,安定的に改善できることが確認できた.また,メモリ消費量を削減することで,多くの場合に実行時間を改善できることも確認できた.
- 一般社団法人情報処理学会の論文
- 2008-09-26
著者
-
岩崎 英哉
電気通信大学情報工学科
-
岩崎 英哉
電気通信大学
-
岩崎 英哉
電気通信大学大学院情報理工学研究科
-
田村 知博
電気通信大学大学院電気通信学研究科情報工学専攻
-
高野 保真
電気通信大学大学院電気通信学研究科情報工学専攻
関連論文
- 実行コンテキストに応じたポリシー指定が可能なサンドボックス(セキュリティ)
- カーネルレベルルートキットの検知システムの構築(セッション3:高セキュア・高信頼化)
- なぜソフトウェア論文を書くのは難しい(と感じる)のか
- 特集「ソフトウェア論文」の編集にあたって
- 特集「ソフトウェア論文」の編集にあたって(ソフトウェア論文)
- 4.並列計算パターン(スケルトン)による並列プログラミング(マルチコアを活かすお手軽並列プログラミング)
- 世代別Mostly-Copying GCのRuby VMへの実装と評価
- 世代別Mostly-Copying GCのRuby VMへの実装に向けて
- ブラウザで動作するウェブアプリケーションのソースコード隠蔽機構
- サーバ/クライアント自動分割を備えたWebフレームワークの設計と実装
- Haskellプログラムの開発を支援するGHCiデバッガフロントエンド
- 図表的文書の記述モデルAFAL
- プログラムの更新を可能とするCheckpoint/Restart機構
- メソッド実行委託を用いたRubyプロセスの負荷分散ライブラリ
- 純関数型言語の処理系における効率的な枝刈り機構の実装
- 特集「最新コンパイラ技術とCOINSによる実践」の編集にあたって
- 非同期処理のためのJavaScriptマルチスレッドフレームワーク
- リクエスト待機間隔を考慮したウェブサーバのkeep-alive時間の自動設定
- 要求駆動計算における要求粒度調節機構(プログラミング言語の設計)
- ユーザ入力の構文木解析によるSQLインジェクション攻撃防御法
- 要求の粒度が調節可能な遅延評価機構
- マルチプロセッサ Unix マシン上における並列言語処理系の実装法の検討
- プログラム融合変換の実用的有効性の検証
- 枝刈り機構とメモ化機構をもつ言語
- 関係代数によるUNITYループの意味づけ
- プログラミング研究会(研究会千夜一夜)
- Robin Milner : A Proposal for Standard ML(20世紀の名著名論)
- ストリームベースXML処理を支援するJavaクラス生成器
- プログラムの更新を可能とする Checkpoint/Restart 機構
- スケルトン並列プログラミング
- 最適化機構を持つC++並列スケルトンライブラリ(サイバー増大ページ論文概要,サイバー増大号)
- 需要変化に動的に対応する伸縮自在サーバ群の基本機構(コンピュータシステム)
- ファイル移送に基づく分散ファイルシステムの設計と実装
- 特定のフォーマットに依存しない文書処理系の設計と実装
- P2P型ファイル検索における高スループット・ピアの自動選択機構(インターネットとセキュリティ)
- モバイルコード技術によるアプリケーション層プロトコルのユーザ透過な配布機構(ソフトウェアシステム)
- D.E.Knuth, J.H.Morris, V.R.Pratt : Fast Pattern Matching in Strings(20世紀の名著名論)
- 初心者入門用言語「若葉」の言語仕様と処理系の実装
- 論理的関係に基づくプレゼンテーションスライド作成システムの設計と開発
- 論理的関係に基づくプレゼンテーションスライド作成システムの設計と開発
- 5E-8 PostScriptインタプリタを利用したプレゼンテーションシステム
- 初心者入門用言語"若葉"によるプログラミング学習環境の設計と実現
- 第三言語を介した対訳辞書の作成(並列処理)
- 蓄積引数を持つ関数プログラムの融合変換
- 関数プログラムのプロモーション変換のための二手法の関係
- 平面上の矩形和の最大値問題の並列プログラムの導出
- 排他制御機構を選択できるクリティカルセクションの設計と実装
- Catamorphismに基づく関数プログラムの変換
- Catamorphismに基づく関数プログラムの変換
- Lispにおける並列動作の記述と実現
- Glasgow Haskell Compilerにおける再帰的データ構造のための遅延オブジェクトの再利用 (プログラミング Vol.5 No.2)
- ビットマップマーキングを利用したマークコンパクトごみ集めのJikes RVMへの実装
- 「情報処理学会論文誌 : プログラミング」の編集について
- Ruby on Railsにおけるテストケース自動生成の提案と実装
- 低優先度処理を指定可能なリアルタイム処理向けI/Oスケジューラ