破壊的クラス拡張で生じるメソッド衝突を回避可能なモジュール機構Method Shellsとその実装方法
スポンサーリンク
概要
- 論文の詳細を見る
本研究では,有効にするメソッドを切り替えることで破壊的クラス拡張で生じるメソッド衝突を避けられるモジュール機構Method Shellsを提案する.AspectJ,Ruby,GluonJなど多くの言語は既存のコードを書き換えずに,差分のみを別部分に記述することで,既存のコードに変更を加えることができるメカニズムを持つ.我々はこのメカニズムを破壊的クラス拡張と呼んでいる.破壊的クラス拡張を用いるとコードの再利用性を高めることができるが,メソッドの衝突を引き起こす危険性がある.メソッドの衝突とは,同じメソッドを複数の破壊的クラス拡張が再定義してしまい,メソッド呼び出しの候補が複数存在してしまうことを指す.メソッドの衝突を解消するために,本研究ではMethod Shellsというモジュール機構を提案する.Method Shellsは,1度に有効にするメソッドをグループ化し,そのグループを実行時に切り替えることで,有効にするメソッドを状況に応じて切り替えることができる.本研究ではこのモジュール機構のセマンティクスを定義した.また,セマンティクスをそのままに実装してしまうと,モジュールの増加に応じて実行時間が増加する場合があるため,分割コンパイルをあきらめることでメソッド呼び出しの最適化をする実装方法も提案した.本研究ではその提案した実装方法とセマンティクスそのままの実装との比較実験も行っている.
- 2014-07-14
著者
関連論文
- カスタマイズ機能を持つ分散デバッガーにおけるデバッグ支援機能の設計と実現
- 緩い一貫性に基づいたグループウェアのための共有オブジェクト空間の実装
- 二次サーバを活用した広域分散ファイルシステムAria
- 異なるネットワーク間を移動する計算機のための分散ファイルシステム
- 幹細胞移植の臨床効果
- OODB上のデータを扱う永続化可能なGUIのためのツールキット
- 実行速度を考慮した実装法による細粒度でのコード再利用のためのメソッド内メソッド
- 強力でコンポーザブルな構文拡張機能をもつプログラミング言語
- 破壊的クラス拡張で生じるメソッド衝突を回避可能なモジュール機構Method Shellsとその実装方法