実装 /8
C
は,シェルスクリプトの実行環境の中でも,)*+システム用の標準シェル として提供されているものであるため,Eや"上など 様々な環境上で動 作可能である.
支援ライブラリ
本研究では,!! ( コンパイラが有する機能を用いてプログラムの解析 や変更を行なうルーチンを支援関数と呼び,支援関数とそれを管理するシェルスク リプトをまとめてI支援ライブラリJと呼ぶ.支援ライブラリはプログラムエディタ に組み込んで使用する以外にも,ターミナル上などでも使用可能としている.
'!( では,並列性解析結果や;K-を他の開発者が扱いやすくする ために,;K-および並列化支援結果を;(Eで提供することとし,これに 伴い!! ( コンパイラの-$および を;(Eが扱えるように 改良した.
'!( の並列化支援機能は,)*+,9以下,:に組み込むこととする.
'!( が持つ並列化支援機能を,へ組み込む理由は,次に述べる, の機能的な特徴が存在するからである.
,は,広く一般的に使用されているフリーソフトウエアエディタである.
したがって,多くのユーザが '!( を使用可能となることが期待される.
,は,多くのプラットフォームへ移植されている.したがって, '!(
の可搬性の向上が期待される.
,は,, E <1/=と言う言語を用いることにより,ユーザが後から新 たな機能を組み込むことが容易である.そのため, '!( の支援機能を組 み込むことが容易であると考えられる.
,E は,,そのものの大部分を記述している言語であり,E 本来の 機能に加えて,テキストエディタとして使用するためのファイル,バッファ,デ ィ スプレ イ,サブプロセスを管理する関数群が設計され,実装されている.また,テ キスト処理に必要な走査機能および編集機能に特化している.
本研究では,主にこのテキスト処理に必要な機能とサブプロセス呼び出しの機能 を使用し, '!( がもつ支援機能を,に組み込んでいる.
実装 /5
上の 環境
,に並列化支援機能を組み込むために,,E を使用した '!( の モード 9,上で特定の作業を行なうための環境:を作成する9図6:.モード 作成 のためには関数およびローカルキーマップの定義が必要となる.
現在 '!( では,大きく分けて1つの関数を実装している.
これら実装は,汎用エデ ィタである,に並列化支援機能を組み込むために,
また '!( を使いやすくするために工夫したところである.
起動関数
'!( 起動関数では,,に '!( 環境を構築することを行なう.
この関数ではまず,,上のフレーム内のウインド ウを上下二つに分けている.
本稿ではこの/つのウインド ウを,
ウインド ウ上部:プログラム編集の環境を提供するメインウインド ウ
ウインド ウ下部: '!( への命令の受け付けを行ない,支援機能からの情 報を表示するサブウインド ウ
と呼ぶ.
そしてこの関数では,以降に述べている, E を用いた関数および今後新 たに作成する関数を,簡単なキー入力によって実行可能にするローカルキーマップ の定義も行なう.
支援機能実行関数
支援機能実行関数は,ユーザが要求した支援内容に対応している支援ライブラリ 内のシェルスクリプトを実行する.その際支援機能実行関数は,支援ライブラリ内 のシェルスクリプトが標準出力へ表示した文字情報を,サブウインド ウへ表示する ように定義する.
メッセージ解析関数
メッセージ解析関数では,サブウインド ウ上に表示される支援機能からの情報と メインウインド ウ上のプログラムとの対応付けを行なう.
この関数は,サブウインド ウ上のカーソルがある行の支援情報について解析を行 ない,その支援情報が指し示しているメインウインド ウ上のプログラム行に目印を 印字し,その行付近を画面へ表示する.
ディレクティブ挿入関数
この関数は,ユーザの指示によって,サブウインドウ内で指し示されている! ( デ ィレクティブを目的の部分に挿入する関数であり,ユーザに再度挿入しても良い か尋ねることを行なっている.ユーザはそれに対してLと答えるとこの関数は
! ( ディレクティブをメインウインド ウ上のプログラムの当該部分に挿入する.
表 8? 各並列化支援ツールのインタフェースの比較
提案する枠組み
ユーザインタフェース 汎用エディタ 専用ブラウザ複数ウインド ウ 専用ブラウザ専用エディタ
ツールの比較 表8にツールのユーザインタフェースについて比較をしている.+>2&
(' でも-& !でも,独自のエディタ9ブラウザ:を使用している.これ では操作に慣れるまでに時間がかかり拡張性も低い.一方で本稿で提案する枠組み では,汎用エデ ィタとして)*+ ,を使用しているので操作に慣れている人が 多く,かつ拡張性も高いといった利点が挙げられる.
実装 07