著者
増原 英彦 松岡 聡 渡部 卓雄
出版者
一般社団法人日本ソフトウェア科学会
雑誌
コンピュータソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.11, no.3, pp.175-192, 1994-05-16
参考文献数
31
被引用文献数
5

並行オブジェクトの間で共有される計算資源の概念をとり入れた自己反映計算モデルであるHybrid Group Architectureと,その記述言語ABCL/R2を提案した.ABCL/R2では,オブジェクト単位の自己反映計算と,オブジェクトグループ単位での自己反映計算の両方が可能なため,スケジューリングのような,並列・分散システムにおける共有計算資源に関する制御を,本来の計算から隠蔽された形をとりつつ,言語の枠内から柔軟に記述できる.また,自己反映システムの効率的な処理系は,作成が困難とされていたが,部分コンパイル・段階的なメタレベル生成・軽量オブジェクトなどの技法による効率的な処理系の作成方法を示した.実際に共有記憶型並列計算機上に作成したABCL/R2処理系では,自己反映計算を行うことによる速度低下を,行わない場合の10倍以下に抑えられ,非自己反映計算の実行速度は,非自己反映処理系とほぼ同等であるというベンチマーク結果を得た.
著者
増原 英彦 松岡 聡 米澤 明憲
出版者
一般社団法人情報処理学会
雑誌
情報処理学会研究報告. PRO, [プログラミング]
巻号頁・発行日
vol.95, no.82, pp.65-72, 1995-08-24

並列アプリケーションのための機能拡張や最適化を行う手段として、自己反映計算によるメタレベルプログラミングが有効であることが認められつつあるが、実際のアプリケーションに応用した場合の有効性は、メタアーキテクチャの設計に大きく左右される。現在我々は、並列オブジェクト指向言語ABCL/fのメタアーキテクチャを設計している。特徴は、メタインタプリタ・メタオブジェクトによる拡張、annotationによるメタレベルへの指示、継承によるメタプログラムの再利用などである。本論文では、いくつかの並列プログラムにおける機能拡張の例を挙げ、それらがどのように記述されるかを検討することで、メタアーキテクチャの有効性を確かめる。
著者
櫻井 孝平 増原 英彦
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.24, no.3, pp.3_141-3_152, 2007 (Released:2007-08-31)

本研究はアスペクト指向プログラミング(AOP)の新たなポイントカット機構として,テストに基づいたポイントカットを提案する.AOP言語はアスペクトを適用する時点を指示しなければならない.既存のAOP言語のポイントカットは,アスペクトが適用されるプログラム中の型名やメソッド名により指示を行うため,プログラムの些細な変更に応じてアスペクトの変更が必要であった.テストに基づいたポイントカットでは,テストを通じて間接的にアスペクトが適用される時点を指示する.そのため,プログラムの変更時にテストも修正される前提の下では,ポイントカット記述の変更が必要なくなる.またテストに基づいたポイントカットは,テストごとに異なる実行履歴を利用して,プログラムの実行時の実行履歴に依存したアスペクトの適用を指示することができる.そのため,適用するプログラムの特定の分岐などの時点を詳細に指示する必要がなくなり,簡潔な記述を得ることができる.実際にいくつかの事例に対してテストに基づいたポイントカットを利用し,ほとんどの場合に既存のAspectJによる記述よりも変更に強く簡潔な記述が可能であることを確認した.
著者
増原 英彦 松岡 聡 米澤 明憲
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.37, no.7, pp.1290-1298, 1996-07-15

並列自己反映言語システムは 並列アプリケーションの最適化等を簡潔に記述するメタプログラミングの機能を持つ一方 解釈実行に基づくモデルから来る効率上の問題を持つ.本論文では部分計算を用いた並列自己反映言語のコンパイル技法を提案する.この技法では 副作用について拡張された部分計算やプログラム変換を適用することで基本的に解釈実行を除去し 直接実行のみとする.並列計算機上の実験では 並列アプリケーションのメタレベルに記述された最適化が 7?17%のオーバヘッドで実行できるという結果が得られている.
著者
増原 英彦
出版者
東京大学
雑誌
奨励研究(A)
巻号頁・発行日
1996

本研究では、自己反映並列オブジェクト指向言語ABCL/R3の言語設計および、インタプリタ処理系の作成を行い、従来のものより、より記述が容易で効率的な実行が可能となる言語処理系作成のための方向付けが得られた。具体的には、以下のとおりである。(1)ABCL/R3の言語設計、特にメタオブジェクトプロトコルに関しては、継承と委譲(delegation)による拡張を念頭に置き、細分化されたメソッド群によって定義を行った。特にこの細分化は、部分計算による実現を前提とすることで、プログラマが利用しすい形で定義することが可能になっている。そのため、報告者らがこれまで設計・実現を行ってきたABCL/R./R2に比べて、メタオブジェクトの拡張に継承機構が利用でき、再利用性を向上させている。また、メタインタプリタ設計に関しては、新しく委譲にもとづいた設計を行った。これによって、インタプリタ実行時にインタプリタ定義を拡張することが可能になり、動的かつ局所的な変更を容易にしている。さらに委譲オブジェクトは、関数定義への変換できるように制限されているため、部分計算を用いたコンバイルを容易にしている。(2)Schemeの並列オブジェクト指向拡張であるSchematicをもとにして、ABCL/R3のインタプリタ処理系を作成した。現在のところ、メタレベルの変更を含めた簡単なサンプルプログラムが動いている。Schematic処理系は、並列環境に対応しているため、ABCL/R3処理系を並列に動作させることは容易であると思われる。また、コンパイル方法については、メタオプジェクトを部分計算した結果を、他のオブジェクトと同様に扱うための枠組が必要であることが分かり、現在はその解決方法を新たな研究課題として検討している。