Skip to main content
QUICK REVIEW

[論文レビュー] Towards Hybrid Intensional Programming with JLucid, Objective Lucid, and General Imperative Compiler Framework in the GIPSY

Serguei A. Mokhov|ArXiv.org|Jul 15, 2009
Distributed and Parallel Computing Systems参考文献 32被引用数 25
ひとこと要約

本稿は、GIPSYシステム内に統合されたJLucid、Objective Lucid、および一般命令型コンパイラフレームワークを組み合わせたハイブリッド内因性プログラミングフレームワークを提示する。これにより、内因性プログラムにおけるJavaコードおよびオブジェクトのシームレスな使用が可能になる。順序実行スレッドおよび通信手続きの生成コンパイラを導入し、配列とオブジェクト指向的構文をサポートするとともに、C や Fortran などの命令型言語を GIPSY 互換コンponent にコンパイルする再利用可能なインfra構造を提供し、分散型で要求駆動型の計算における表現力と相互運用性を著しく向上させる。

ABSTRACT

Pure Lucid programs are concurrent with very fine granularity. Sequential Threads (STs) are functions introduced to enlarge the grain size; they are passed from server to workers by Communication Procedures (CPs) in the General Intensional Programming System (GIPSY). A JLucid program combines Java code for the STs with Lucid code for parallel control. Thus first, in this thesis, we describe the way in which the new JLucid compiler generates STs and CPs. JLucid also introduces array support. Further exploration goes through the additional transformations that the Lucid family of languages has undergone to enable the use of Java objects and their members, in the Generic Intensional Programming Language (GIPL), and Indexical Lucid: first, in the form of JLucid allowing the use of pseudo-objects, and then through the specifically-designed the Objective Lucid language. The syntax and semantic definitions of Objective Lucid and the meaning of Java objects within an intensional program are provided with discussions and examples. Finally, there are many useful scientific and utility routines written in many imperative programming languages other than Java, for example in C, C++, Fortran, Perl, etc. Therefore, it is wise to provide a framework to facilitate inclusion of these languages into the GIPSY and their use by Lucid programs. A General Imperative Compiler Framework and its concrete implementation is proposed to address this issue.

研究の動機と目的

  • Javaコードおよびオブジェクトに対する一等級のサポートをLucid言語族に拡張し、分散システムにおけるハイブリッドプログラミングを可能にする。
  • 命令型コード(例:C、C++、Fortran)をGIPSY互換の順序実行スレッド(ST)および通信手続き(CP)にコンパイルできる一般命令型コンパイラフレームワーク(GICF)を設計・実装する。
  • Objective LucidおよびJLucid拡張を通じて、内因性プログラム内での配列操作およびオブジェクト指向的プログラミング構文(例:ドット記法、オブジェクトインスタンス化)をサポートする。
  • 既存の科学的およびユーティリティライブラリ(命令型言語で記述)を、GIPSYの内因性プログラミングモデル内で再利用可能にする。
  • 分散型で要求駆動型実行環境におけるハイブリッド内因性プログラミングを可能にするスケーラブルで拡張可能かつ安全なインfra構造を提供する。

提案手法

  • JavaメソッドをLucidプログラムに直接埋め込むための言語拡張JLucidの設計・実装。プリプロセッサおよびASTベースのコンパイルを用い、順序実行スレッド(ST)および通信手続き(CP)を生成する。
  • オブジェクト指向的構文(オブジェクトインスタンス化、ドット記法によるメソッド呼び出し、オブジェクト配列など)を一等級でサポートするJLucidのスーパーセットとしてのObjective Lucidの定義。内因性実行モデルに統合された意味論を有する。
  • 命令型言語コンパイラを抽象化する一般命令型コンパイラフレームワーク(GICF)の設計。C/C++ とのJNI統合を含む共通インターフェースを通じた複数言語へのプラグイン可能サポートを可能にする。
  • JavaリフレクションおよびJNIを用い、GIPSYランタイム上でコンパイル済み命令型コードを動的ロード・実行し、一般教育エンジン(GEE)を介した要求駆動型実行を実現する。
  • GIPSYの型システムおよび意味解析モジュールを統合し、内因性および命令型コンponent間での型安全性および正しいデータフローを保証する。
  • インタラクティブな開発およびテストを可能にするWebベースのフロントエンド(WebEditor)およびコマンドラインインターフェースの実装。

実験結果

リサーチクエスチョン

  • RQ1内因性プログラミングの宣言的で要求駆動型の実行モデルを保ちながら、Javaコードを内因性プログラムにどのようにシームレスに統合できるか。
  • RQ2内因性プログラミングモデル内でメソッドやフィールドといったオブジェクト指向的構文をサポートするための意味論的および文法的要件は何か。
  • RQ3GIPSYエコシステム内に統合された複数の命令型言語(例:C、Fortran)をサポートする一般用途のコンパイラフレームワークをどのように設計できるか。
  • RQ4分散環境における内因性論理と命令型コードの組み合わせにおいて、型安全性および正しいデータフローを保証するメカニズムは何か。
  • RQ5命令型言語で記述された既存の科学的ライブラリを、パフォーマンスや正しさを損なわずに内因性プログラム内で再利用するにはどうすればよいか。

主な発見

  • JLucidコンパイラは、埋め込まれたJavaコードから実行可能な順序実行スレッドおよび通信手続きを正常に生成し、GIPSYシステム内でのハイブリッド実行を可能にした。
  • Objective Lucidは、オブジェクトインスタンス化、ドット記法によるメソッド呼び出し、オブジェクト配列を含む完全なオブジェクト指向プログラミング構文をサポートし、意味論が形式的に定義され内因性モデルに統合された。
  • 一般命令型コンパイラフレームワーク(GICF)は、命令型言語をGIPSY互換コンponentにプラグイン可能にコンパイルする仕組みを提供し、JNIを用いたC用のプロトタイプが動作確認済みであるが、完全実装は今後の作業である。
  • JLucidおよびObjective Lucidの両方で配列操作がサポートされ、配列が一等級の内因性値として扱われ、ネイティブデータ構造にマッピングされる。
  • Fast Fourier Transformのケーススタディを通じて、MARFのFFT実装など既存のライブラリのJavaコードをJLucidプログラムに埋め込むことで、再利用が可能であることが実証された。
  • 意味ルールおよびGIPSY型システムの形式的検証が進行中であり、PVSおよびIsabelleでの初期作業が完了しており、形式的正しさ保証への道筋が示されている。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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