Skip to main content
QUICK REVIEW

[論文レビュー] Reflection and Hyper-Programming in Persistent Programming Systems

Graham Kirby|arXiv (Cornell University)|Jun 17, 2010
Parallel Computing and Optimization Techniques参考文献 81被引用数 6
ひとこと要約

本論文は、コード再利用性、信頼性、開発者による理解を向上させるために、永続的プログラミングシステムにおける型安全な言語的反射およびハイパープログラミングのフレームワークを提示する。実行時におけるコード表現の動的生成と、永続的データへの直接参照を可能にすることで、ボイラープレートコードを削減し、早期検証を可能にする。ツールは、永続的ランタイム環境におけるハイパープログラムの反射的取り扱いを支援する。

ABSTRACT

The work presented in this thesis seeks to improve programmer productivity in the following ways: - by reducing the amount of code that has to be written to construct an application; - by increasing the reliability of the code written; and - by improving the programmer's understanding of the persistent environment in which applications are constructed. Two programming techniques that may be used to pursue these goals in a persistent environment are type-safe linguistic reflection and hyper-programming. The first provides a mechanism by which the programmer can write generators that, when executed, produce new program representations. This allows the specification of programs that are highly generic yet depend in non-trivial ways on the types of the data on which they operate. Genericity promotes software reuse which in turn reduces the amount of new code that has to be written. Hyper-programming allows a source program to contain links to data items in the persistent store. This improves program reliability by allowing certain program checking to be performed earlier than is otherwise possible. It also reduces the amount of code written by permitting direct links to data in the place of textual descriptions. Both techniques contribute to the understanding of the persistent environment through supporting the implementation of store browsing tools and allowing source representations to be associated with all executable programs in the persistent store. This thesis describes in detail the structure of type-safe linguistic reflection and hyper-programming, their benefits in the persistent context, and a suite of programming tools that support reflective programming and hyper-programming. These tools may be used in conjunction to allow reflection over hyper-program representations. The implementation of the tools is described.

研究の動機と目的

  • 汎用的で再利用可能なプログラム生成を可能にすることで、開発者が書く必要のあるコード量を削減すること。
  • 永続的データへの直接リンクを可能にすることで、コンパイル時におけるリンク検証を可能にし、プログラムの信頼性を向上させること。
  • インスペクションおよびブラウジングツールを通じて、永続的ランタイム環境におけるプログラマーの理解を高めること。
  • 統合的で型安全なシステムにおいて、反射およびハイパープログラミング技術の統合を支援すること。
  • ハイパープログラム表現の反射的取り扱いを可能にするツールセットの提供

提案手法

  • 実行時における動的プログラム表現生成のため、型安全な言語的反射を活用すること。
  • ソースコードから永続的データアイテムへの直接参照を介してハイパープログラミングを実装すること。
  • 保存済みデータオブジェクトへのソースコードリンクを維持する永続的ランタイムシステムを設計すること。
  • 永続ストア内のプログラム表現のブラウジングおよびインスペクションを可能にするツールの構築。
  • 反射とハイパープログラミングを統合し、ハイパープログラムの反射的取り扱いを可能にすること。
  • 反射操作およびハイパーリンクの静的チェックを通じて、型安全を確保すること。

実験結果

リサーチクエスチョン

  • RQ1型安全な反射をどのように永続的プログラミング環境で実現すれば、信頼性の高いコード生成を可能にするか?
  • RQ2ハイパープログラミングは、直接的なデータリンクを通じてどのようにボイラープレートコードを削減し、信頼性を向上させるか?
  • RQ3反射およびハイパープログラミング技術をどのように統合すれば、高度な開発ツールの支援が可能になるか?
  • RQ4開発者が永続的ランタイム環境をより効果的に理解し、ナビゲートできるようにするためのメカニズムは何か?
  • RQ5実世界の永続的システムに反射とハイパープログラミングを統合する際の実用的影響は何か?

主な発見

  • 型安全な反射とハイパープログラミングの統合により、データ型に依存したコード生成が可能になり、アプリケーションコードの量が顕著に削減された。
  • ハイパープログラミングにより、コンパイル時に永続的データへのリンク検証が可能になり、エラーの早期検出が実現され、プログラムの信頼性が向上した。
  • 本システムは、ストア内に保存されたソース表現を公開し、実行可能プログラムのナビゲーションを可能にするストアブラウジングツールの作成を支援した。
  • 反射プログラミングおよびハイパープログラミングを支援するツールセットが正常に実装され、実用的妥当性が実証された。
  • ソースコードとランタイムデータの間の永続的かつインスペクタブルなリンクを維持することで、開発者が永続的環境をより深く理解できるようになった。
  • 本フレームワークは、コード生成および操作時のランタイム型エラーを防ぐために、反射操作における型安全を達成した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。