| 
本プロジェクトで行った
・言語仕様調査
・言語仕様開発
・プロトタイプソフトウェア開発
・言語仕様書作成
についてそれぞれの内容を記述する.
1 言語仕様調査
本プロジェクトでは,ソースコードを一旦,javaなどの既存のプラットフォームのソースコードに変換し,既存のコンパイラで実行コードを作成する方法を採る.
動きを扱う言語仕様
本プロジェクトに先駆けた開発であるMEA上などでは逆ポーランド法を採っていたが,これは現状の他の言語と互換性を保つことが困難であり,技術面,汎用面双方において現実的ではないことが判り,本プロジェクトでは新たに独自の言語仕様を作成することにした.
ソースコード内の時間軸と実行時の時間軸との関連性
一般的にプログラミングのソースコードはテキストファイルであるため,実行する際には基本的に1行目から順に実行する.つまりソースコードの内部に「時間軸」が存在する.本プロジェクトは時間軸を管理する実行環境を作ることが目的である.つまり,実行時にも「時間軸」が存在する.この2つの時間軸の関連をどのように処理するべきかを調査した.結果としては実行時の時間軸を主眼に置き,ソースコード内の時間軸はとりあえず,固定定数(つまり数値記入)という形式にし,将来的に必要になれば,ソースコードを書き出すソフトウェアを開発するということにした.
2 言語仕様開発
言語仕様は3でも記述したようにMotion Express Language [MEL]と名付けた.ここではその仕様内容について記述する.MEL内の記述は大きく分けて
・タイミング
・base
・point
という3つのカテゴリーに分けられる.
タイミング
「タイミング」は時間軸を管理する構文である.あらかじめ決められた構文にそって描画や画面内のオブジェクトを動かす時間を決める.あらかじめ内部に語彙が用意されていて,その語彙に引数を指定することで,タイミングを決定する.
語彙には以下の14個が用意されている.
例えば,以下のように記述すると
それぞれの語彙と引数については付録参照のこと.
base
baseは各タイミング内での作業を管理する構文である.描画領域の属性とオブジェクトの描画がその主な機能になる.内容はプロパティとメソッドから成っている.プロパティは
から成っている.メソッドはそれぞれ引数を持っておりそれぞれの属性に応じた描画が可能である.それぞれの引数の詳細については付録参照のこと.
point
MELでは動きを点で制御し,その点を基準とした描画で動きを表現するという形態になっている.その点をクラス化したものがpointである.
内容はプロパティとメソッドから成っている.プロパティは
から成っており,メソッドは
から成っている.メソッドはそれぞれ引数を持っておりそれぞれの属性に応じた描画が可能である.それぞれの引数の詳細については他の資料を参照のこと.
3 プロトタイプソフトウェア開発
言語仕様を検証するために試作したプロトタイプソフトウェアは大きく分けて
・プログラミング実行,閲覧環境(Motion Express Viewer [MEV])
・テキスト編集,デバッグ,実行,閲覧等開発を統合的に扱うソフトウェア(mel software)
の2種類である.それぞれについて記述する.
プログラミング実行,閲覧環境(Motion Express Viewer [MEV])
MELに則って記述された言語は.melという拡張子がついたテキストファイルとして保存される(melファイル).melファイルを実行可能形式に変換するのがMEVである.MEVは具体的には図2のような形態になっている.
まず,melファイルをjava applicationであるMel(.class)がその内容を分析解釈し,javaのテキストファイル(base.java)に変換する.base.javaファイルはmelファイル上のタイミングや描画,動きなどの記述をjavaの記述に対応させて変換したものである.base.javaファイルは既に開発済みのPBBaseクラスを拡張したもので,java内部の煩雑な処理はこのPBBaseが担っているため,base.javaはmelファイルの記述のほとんどを1対1に変換できる仕様になっている.
(図2)
以下に前項「タイミング」で記述したmelの作例に対応したbase.javaファイルのサンプルを記載する.
また,動きを管理するpointであるが,これはjava内部に同名のpointクラスが存在し,それと直結する形態になっている.このため.melファイル内のpoint関連の記述はそのままbase.java内でのpointクラスの記述になる.
base.javaファイルはPBBase.javaファイルを含めたjavaファイル群Runner[MEV実行環境ソフトウェア(*開発済)]とともにクラスファイルにコンパイルされjava
appletとなる.
テキスト編集,デバッグ,実行,閲覧等開発を統合的に扱うソフトウェア(mel software)
MELとMEVを開発環境としてシームレスにつなぐソフトウェアがmel softwareである.図3のようなユーザーインターフェイスを持っている.
(図3)
一般的機能を有するテキストエディタ上でソースコード開発を行い,そのソースコードはテキストファイル(.melファイル)として保存,読み込みが出来る.
プレイボタンとエクスポートボタンには,MEV,つまり書き込んだソースコードをMel(.class)に引き渡してbase.javaファイル化し,さらにそれを含めた全体をjavaコンパイルでjava
applet化する機能が埋め込まれている.プレイボタンにはその後applet viewerが自動的に起動し,作成したjava appletを閲覧する機能,エクスポートボタンにはあらかじめ設定されたディレクトリに作成したjava
appletをコピーする機能が埋め込まれている.mel softwareを用いてmelによるサンプルプログラムを開発し,言語仕様を検証した.
4 言語仕様書作成
以上の調査開発を基にMELの仕様書を作成した.詳細は他の資料を参照のこと.本仕様や仕様に則った作例をウェブサイトhttp://www.motionExpress.net/mel/上に掲載した.
|