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

JAIST Repository

N/A
N/A
Protected

Academic year: 2021

シェア "JAIST Repository"

Copied!
2
0
0

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

全文

(1)

Japan Advanced Institute of Science and Technology

JAIST Repository

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

Title Type‑directed Compilation of ML Supporting Interoperable Memory Management System

Author(s) Huu‑Duc, Nguyen Citation

Issue Date 2006‑03

Type Thesis or Dissertation Text version author

URL http://hdl.handle.net/10119/987 Rights

Description Supervisor:Atsushi Ohori, 情報科学研究科, 博士

(2)

概要

MLのような関数型言語がCのような他の手続き型言語に比べポピュラーでない主な原因として,実行効率やメ モリ使用効率の悪さが挙げられる.C(や他の手続き型言語)とシームレスに相互運用可能な関数型言語を開発 することができれば,プログラマは両方のプログラミングスタイルをうまく組み合わせて利用することができ るようになる.

本論文では,高水準な相互運用性を実現するためのMLの型主導コンパイル手法を提案する.このコンパイル手 法は,整数,浮動小数点数,および他の原始的なデータを他の言語の実装に見られるのと同じ自然な表現で保 持するようなメモリ管理システムを実現する.これによって,実行効率を低下させることなく,MLと他の言語 が同じヒープ領域を共有することができる.このメモリ管理モデルのもう一つの特長は,従来の実装の多くに 見られるような``boxing''操作や``tagging''操作を全て除去することで,ランタイムシステムの実行効率 を改善できることである.

以上のことを実現するために,まず,以下のような性質を持つ``unboxed'',``non-tag''データ表現モデ ルを検討する.

整数,浮動小数点数,およびその他の原始型の値は自然に表現されている.

ヒープブロックまたはランタイム環境(スタックフレーム)はそれぞれブロック中のポインタの位置を 表す``ビットマップ''を持つ.

その上で,このモデルを実現するためのコンパイル手法を開発する.

多相関数は異なる大きさで異なる型のランタイムオブジェクトを生成する可能性があるため,コンパイラは,

多相関数が全てのインスタンス型で同じ振る舞いをし,かつそれぞれのメモリブロックに対して正しいビット マップを計算するような関数のコードを生成しなければならない.そのためには,ビットマップ計算で必要と なるビットタグと,unboxedな値の操作に必要なサイズを渡すことができるように,特別なラムダ抽象と関数 適用を挿入する必要があるだろう.

このコンパイル処理は,スタックフレームと,関数クロージャやその環境レコードに含まれるヒープに割り当 てたオブジェクトの両方に適用しなければならない.本論文では,このコンパイル手法がクロージャ変換と相 互に依存する問題を,両方の役割を演じる複合アルゴリズムを開発することで解決する.さらに,その結果と して得られたコンパイル手順が,ビットマップを利用したガーベジコレクションを含む型無し操作的意味論に 対して健全であることを示す.

また,本論文では,ビットマップ計算とunboxedな操作の導入によって生じたランタイムのオーバーヘッドを 削減するための最適化手法についてもいくつか検討する.このコンパイル手法は,提案する最適化手法を含め て,我々が開発中のSML\#コンパイラにおいてStandard ML言語のフルセットに対してすでに実装されてお り,提案する手法が実践的に実現可能であることは明らかである.

参照

関連したドキュメント

本表に例示のない適用用途に建設汚泥処理土を使用する場合は、本表に例示された適用用途の中で類似するものを準用する。

4) は上流境界においても対象領域の端点の

2 解析手法 2.1 解析手法の概要 本研究で用いる個別要素法は計算負担が大きく,山

非難の本性理論はこのような現象と非難を区別するとともに,非難の様々な様態を説明

このように,フラッシュマーケティングのためのサイトを運営するパブ

本手順書は複数拠点をアグレッシブモードの IPsec-VPN を用いて FortiGate を VPN

最愛の隣人・中国と、相互理解を深める友愛のこころ

これらの設備の正常な動作をさせるためには、機器相互間の干渉や電波などの障害に対す