JP5197504B2 - プログラム変換装置、プログラム変換方法およびプログラム - Google Patents

プログラム変換装置、プログラム変換方法およびプログラム Download PDF

Info

Publication number
JP5197504B2
JP5197504B2 JP2009144596A JP2009144596A JP5197504B2 JP 5197504 B2 JP5197504 B2 JP 5197504B2 JP 2009144596 A JP2009144596 A JP 2009144596A JP 2009144596 A JP2009144596 A JP 2009144596A JP 5197504 B2 JP5197504 B2 JP 5197504B2
Authority
JP
Japan
Prior art keywords
rule
graphic
display
display change
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009144596A
Other languages
English (en)
Other versions
JP2011002959A (ja
Inventor
康徳 原田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2009144596A priority Critical patent/JP5197504B2/ja
Publication of JP2011002959A publication Critical patent/JP2011002959A/ja
Application granted granted Critical
Publication of JP5197504B2 publication Critical patent/JP5197504B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、プログラム変換装置、プログラム変換方法およびプログラムに関する。
Flash(登録商標)やJava(登録商標)などのプログラム言語を用いることで、携帯電話上で動作する、簡易なゲームなどある程度のコンテンツ(例えば、インタラクティブなゲーム)を作成することができる。当該コンテンツは、一般に、文字を記述する従来的なプログラミングを必要とするため、通常、専門的な知識を有する専門家によって作成されている。
ビジュアル言語を用いて図形を操作することによって、インタラクティブなアニメーションのプログラムを作成することができる(例えば、特許文献1参照)。特許文献1に係る技術では、初期状態の図形(座標、位置、色、図形の種類等)と目的状態の図形とを視覚的に与えるようなルールを記述する(初期状態の図形をルールの左辺に記述し、目的状態の図形をルールの右辺に記述する)ことによってプログラミングを行う。即ち、上記のようにして作成(記述)されたルールの集合と、アプリケーションの初期状態の図形の配置(位置座標、角度、図形の種類等)の集合とがプログラムである。表示画面には、与えられたアプリケーションの初期状態の配置で、各図形が配置される。各ルールには、当該ルールを起動させるためのイベント(マウスクリックや所定のキー操作等)が定義されている。これにより、プログラムされたルールの集合の中から、ユーザによって入力されたイベントに応じて、表示画面上の図形の状態(位置関係、角度、図形の種類等)に合致したルールが適用され、図形の書き換えが行われる。これが繰り返されることで、表示画面上の図形が動くアニメーションなどのアプリケーションになる。
以上のように、プログラムを視覚的に作成するビジュアル言語(例えば、特許文献1に開示されたプログラム言語)によるプログラミングの場合、文字を記述するプログラミング言語によるプログラミングの場合とは異なり、専門的な知識を有しない者(例えば、児童)であっても、ある程度のコンテンツを短時間で作成することができる。
特開2005−18380号公報
しかしながら、プログラムを視覚的に作成するビジュアル言語では、初期状態は実行時に与えられるため、実行時において、与えられたルールの集合のうち表示画面上のどの図形にどのルールを適用するかを解釈するための複雑な処理が必要となる。このため、大きなメモリ容量と大きな計算量が必要であり、携帯電話のような小さなコンピュータにおいて動作させることは困難であるという問題がある。
本発明は、このような事情を考慮してなされたものであり、その目的は、プログラムを視覚的に作成するビジュアル言語(例えば、特許文献1に開示されたプログラム言語)によって作成されたプログラムを、携帯電話のような小さなコンピュータにおいて動作させるための技術を提供することにある。
上述した課題を解決するために、本発明の第1の実施態様であるプログラム変換装置は、表示変更イベント、表示変更前図形および表示変更後図形をパラメータとするルールであって、図形の表示を変更させるルールから構成されるビジュアルプログラムを、手続き型プログラムに変換するプログラム変換装置であって、一の表示変更イベントが対象イベントとして与えられ、一の図形が対象図形として与えられた場合に、前記ビジュアルプログラムを構成する複数の前記ルールのなかから、前記対象イベントと同一の前記表示変更イベントと、前記対象図形と同一種類の前記表示変更前図形であって前記対象図形と同一または最も類似する前記表示変更前図形をパラメータとして含む前記ルールを抽出するためのルール抽出命令を生成するルール抽出命令生成部と、前記ルール抽出命令によって抽出された前記ルールを用いて前記対象図形の表示を変更させるための表示変更命令を生成する表示変更命令生成部と、前記ルール抽出命令生成部によって生成された前記ルール抽出命令と、前記表示変更命令生成部によって生成された前記表示変更命令とから前記手続き型プログラムを生成するプログラム生成部とを備えることを特徴とする。
上記プログラム変換装置の前記ルール抽出命令生成部は、前記対象図形との角度差が極小である前記表示変更前図形を前記対象図形と同一または最も類似する前記表示変更前図形とすることによって、前記ルールを抽出する前記ルール抽出命令を生成するようにしてもよい。
上記プログラム変換装置の前記ルール抽出命令生成部は、前記対象図形との角度差が所定の閾値未満である前記表示変更前図形を前記対象図形と同一または最も類似する前記表示変更前図形とすることによって、前記ルールを抽出する前記ルール抽出命令を生成するようにしてもよい。
上述した課題を解決するために、本発明の第2の実施態様であるプログラム変換装置は、表示変更イベント、2つの表示変更前図形および2つの表示変更後図形をパラメータとするルールであって、2つの表示変更前図形の表示を関連させて変更させるルールから構成されるビジュアルプログラムを、手続き型プログラムに変換するプログラム変換装置であって、一の表示変更イベントが対象イベントとして与えられ、一の図形が対象図形として与えられた場合に、前記ビジュアルプログラムを構成する複数の前記ルールのなかから、前記対象イベントと同一の前記表示変更イベントと前記対象図形と同一種類の前記表示変更前図形とをパラメータとして含む前記ルールであって、一方の表示変更前図形の表示に対する他方の表示変更前図形の表示の関係が前記対象図形の表示に対する任意の図形の表示の関係と同一または最も類似する前記2つの表示変更前図形をパラメータとして含む前記ルールを抽出するためのルール抽出命令を生成するルール抽出命令生成部と、前記ルール抽出命令によって抽出された前記ルールを用いて前記対象図形の表示を変更させるための表示変更命令を生成する表示変更命令生成部と、前記ルール抽出命令生成部によって生成された前記ルール抽出命令と、前記表示変更命令生成部によって生成された前記表示変更命令とから前記手続き型プログラムを生成するプログラム生成部とを備えることを特徴とする。
上記プログラム変換装置の前記ルール抽出命令生成部は、前記2つの表示変更前図形の距離と前記対象図形と任意の図形との距離との差が極小である前記2つの表示変更前図形を、前記同一または最も類似する前記2つの表示変更前図形とすることによって、前記ルールを抽出する前記ルール抽出命令を生成するようにしてもよい。
上記プログラム変換装置の前記ルール抽出命令生成部は、前記ルール抽出命令生成部は、前記ビジュアルプログラムを構成する複数の前記ルールのなかから、前記対象イベントと同一の前記表示変更イベントと前記対象図形と同一種類の前記表示変更前図形とをパラメータとして含む前記ルールであって、第1の表示変更前図形の表示に対する第2の表示変更前図形の表示の関係が前記対象図形の表示に対する任意の図形の表示の関係と同一または最も類似する前記第1の表示変更前図形と前記第2の表示変更前図形とをパラメータとして含む第1のルールを抽出するためのルール抽出命令を生成し、前記ビジュアルプログラムを構成する複数の前記ルールのなかから、前記対象イベントと同一の前記表示変更イベントと前記対象図形と同一種類の前記表示変更前図形とをパラメータとして含む前記ルールであって、第2の表示変更前図形の表示に対する第1の表示変更前図形の表示の関係が前記対象図形の表示に対する任意の図形の表示の関係と同一または最も類似する前記第2の表示変更前図形と前記第1の表示変更前図形とをパラメータとして含む第2のルールを抽出するためのルール抽出命令を生成し、前記表示変更命令生成部は、前記第1のルールに含まれる前記第1の表示変更前図形の表示に対する前記第2の表示変更前図形の表示の関係が、前記第2のルールに含まれる前記第2の表示変更前図形の表示に対する前記第1の表示変更前図形の表示の関係よりも前記対象図形の表示に対する任意の図形の表示の関係に類似している場合、前記第1のルールを用いて前記対象図形の表示を変更させるための表示変更命令を生成し、前記第2のルールに含まれる前記第2の表示変更前図形の表示に対する前記第1の表示変更前図形の表示の関係が、前記第1のルールに含まれる前記第1の表示変更前図形の表示に対する前記第2の表示変更前図形の表示の関係よりも前記対象図形の表示に対する任意の図形の表示の関係に類似している場合、前記第2のルールを用いて前記対象図形の表示を変更させるための表示変更命令を生成するようにしてもよい。
上述した課題を解決するために、本発明の第3の実施態様であるプログラム変換方法は、表示変更イベント、表示変更前図形および表示変更後図形をパラメータとするルールであって、図形の表示を変更させるルールから構成されるビジュアルプログラムを、手続き型プログラムに変換するプログラム変換装置が行うプログラム変換方法であって、一の表示変更イベントが対象イベントとして与えられ、一の図形が対象図形として与えられた場合に、前記ビジュアルプログラムを構成する複数の前記ルールのなかから、前記対象イベントと同一の前記表示変更イベントと、前記対象図形と同一種類の前記表示変更前図形であって前記対象図形と同一または最も類似する前記表示変更前図形をパラメータとして含む前記ルールを抽出するためのルール抽出命令を生成するルール抽出命令生成ステップと、前記ルール抽出命令によって抽出された前記ルールを用いて前記対象図形の表示を変更させるための表示変更命令を生成する表示変更命令生成ステップと、前記ルール抽出命令生成ステップによって生成された前記ルール抽出命令と、前記表示変更命令生成ステップによって生成された前記表示変更命令とから前記手続き型プログラムを生成するプログラム生成ステップとを有することを特徴とする
上述した課題を解決するために、本発明の第4の実施態様であるプログラム変換方法は、表示変更イベント、2つの表示変更前図形および2つの表示変更後図形をパラメータとするルールであって、2つの表示変更前図形の表示を関連させて変更させるルールから構成されるビジュアルプログラムを、手続き型プログラムに変換するプログラム変換装置が行うプログラム変換方法であって、一の表示変更イベントが対象イベントとして与えられ、一の図形が対象図形として与えられた場合に、前記ビジュアルプログラムを構成する複数の前記ルールのなかから、前記対象イベントと同一の前記表示変更イベントと前記対象図形と同一種類の前記表示変更前図形とをパラメータとして含む前記ルールであって、一方の表示変更前図形の表示に対する他方の表示変更前図形の表示の関係が前記対象図形の表示に対する任意の図形の表示の関係と同一または最も類似する前記2つの表示変更前図形をパラメータとして含む前記ルールを抽出するためのルール抽出命令を生成するルール抽出命令生成ステップと、前記ルール抽出命令によって抽出された前記ルールを用いて前記対象図形の表示を変更させるための表示変更命令を生成する表示変更命令生成ステップと、前記ルール抽出命令生成ステップによって生成された前記ルール抽出命令と、前記表示変更命令生成ステップによって生成された前記表示変更命令とから前記手続き型プログラムを生成するプログラム生成ステップとを有することを特徴とする。
上述した課題を解決するために、本発明の第5の実施態様であるプログラム変換方法は、表示変更イベント、表示変更前図形および表示変更後図形をパラメータとするルールであって、図形の表示を変更させるルールから構成されるビジュアルプログラムを、手続き型プログラムに変換するプログラム変換装置のコンピュータに、一の表示変更イベントが対象イベントとして与えられ、一の図形が対象図形として与えられた場合に、前記ビジュアルプログラムを構成する複数の前記ルールのなかから、前記対象イベントと同一の前記表示変更イベントと、前記対象図形と同一種類の前記表示変更前図形であって前記対象図形と同一または最も類似する前記表示変更前図形をパラメータとして含む前記ルールを抽出するためのルール抽出命令を生成するルール抽出命令生成ステップと、前記ルール抽出命令によって抽出された前記ルールを用いて前記対象図形の表示を変更させるための表示変更命令を生成する表示変更命令生成ステップと、前記ルール抽出命令生成ステップによって生成された前記ルール抽出命令と、前記表示変更命令生成ステップによって生成された前記表示変更命令とから前記手続き型プログラムを生成するプログラム生成ステップとを実行させることを特徴とする。
上述した課題を解決するために、本発明の第6の実施態様であるプログラム変換方法は、表示変更イベント、2つの表示変更前図形および2つの表示変更後図形をパラメータとするルールであって、2つの表示変更前図形の表示を関連させて変更させるルールから構成されるビジュアルプログラムを、手続き型プログラムに変換するプログラム変換装置のコンピュータに、一の表示変更イベントが対象イベントとして与えられ、一の図形が対象図形として与えられた場合に、前記ビジュアルプログラムを構成する複数の前記ルールのなかから、前記対象イベントと同一の前記表示変更イベントと前記対象図形と同一種類の前記表示変更前図形とをパラメータとして含む前記ルールであって、一方の表示変更前図形の表示に対する他方の表示変更前図形の表示の関係が前記対象図形の表示に対する任意の図形の表示の関係と同一または最も類似する前記2つの表示変更前図形をパラメータとして含む前記ルールを抽出するためのルール抽出命令を生成するルール抽出命令生成ステップと、前記ルール抽出命令によって抽出された前記ルールを用いて前記対象図形の表示を変更させるための表示変更命令を生成する表示変更命令生成ステップと、前記ルール抽出命令生成ステップによって生成された前記ルール抽出命令と、前記表示変更命令生成ステップによって生成された前記表示変更命令とから前記手続き型プログラムを生成するプログラム生成ステップとを実行させることを特徴とする。
本発明によれば、携帯電話のような小さなコンピュータにおいて、プログラムを視覚的に作成するビジュアル言語によって作成されたプログラムを動作させることができるようになる。
本発明の一実施形態による変換装置1の構成例を示すブロック図である。 図形を説明するための説明図である。 図形の書き換えを模式的に示す模式図である。 タイプ1ルール用変換部12にて生成される命令(ルール抽出命令、表示変更命令)によって示されるフローチャートの一例である。 タイプ1ルール用変換部12にて生成される命令(ルール抽出命令、表示変更命令)の一例である。 タイプ2ルール用変換部13にて生成される命令(ルール抽出命令、表示変更命令)によって示されるフローチャートの一例である。 タイプ2ルール用変換部13にて生成される命令(ルール抽出命令)によって示されるフローチャートの一例である。 タイプ2ルール用変換部13にて生成される命令(ルール抽出命令)によって示されるフローチャートの一例である。 タイプ2ルール用変換部13にて生成される命令(ルール抽出命令、表示変更命令)の一例である。
以下、本発明の一実施形態について図面を参照して説明する。本発明の一実施形態による変換装置1(例えば、コンパイラ)は、図1に示すように、ネットワークを介して、外部の記憶装置2と通信する。変換装置1は、送受信部19、タイプ1ルール用変換部12、タイプ2ルール用変換部13およびプログラム生成部14を備える。タイプ1ルール用変換部12はタイプ1ルール用ルール抽出命令生成部121およびタイプ1ルール用表示変更命令生成部122を備え、タイプ2ルール用変換部13はタイプ2ルール用ルール抽出命令生成部131およびタイプ2ルール用表示変更命令生成部132を備える。
なお、図1に破線にて示すようにタイプ1ルール用ルール抽出命令生成部121およびタイプ2ルール用ルール抽出命令生成部131は、本発明のルール抽出命令生成部に相当する。また、タイプ1ルール用表示変更命令生成部122およびタイプ2ルール用表示変更命令生成部132は、本発明の表示変更命令生成部に相当する。
まず、記憶装置2について説明する。記憶装置2は、図1に示すように、記憶部20および送受信部29を備える。
記憶装置2の記憶部20は、変換装置1へ出力される、ビジュアル言語で作成されたプログラム(以下、「ビジュアルプログラム」という)と、プログラム変換装置1から入力される、手続き型言語で作成されたプログラム(以下、「手続き型プログラム」という)とを記憶する。手続き型プログラムは、後述するが、変換装置1によるビジュアルプログラムの変換結果である。
ビジュアルプログラムは、ビジュアル言語で作成されたコンパイル可能なルールの集合と、図形(絵)の配置の初期値を格納したファイルである。ビジュアル言語は、本来、コンパイル可能な種々の形式のルールを記述することができるが、便宜上、下記形式(下記式(1)または下記式(2))にて示されるルールについて説明する。なお、一般的なユーザの作成するプログラムに使用されるルールの形式は、当該形式であることが多く、また、ルールの形式を当該形式に限定しても十分多様な動作を記述し得るので、実用的な観点からはビジュアル言語の表現能力をほとんど損ねることがない。
(event F1 F2) → (f1 f2) ・・・(1)
(event F1) → (f1) ・・・(2)
上記式(1)において、「F2」「f2」の要素が存在しないものが、上記式(2)である。以下、上記式(2)に示すルールをタイプ1ルール、上記式(1)に示すルールをタイプ2ルールという。なお、タイプ1ルールおよびタイプ2ルールの詳細は後述する。
上記式(1)(2)において、「event」は動作を開始または終了させるために入力手段(キーボード等)からイベント(本発明の表示変更イベントに相当する)である。イベントの集合Iは、下記式(3)によって記述される。即ち、イベントは、集合Iの何れかの要素に対応する。
I={none,key,・・・,keyN−1} ・・・(3)
但し、Nはイベントの総数である。
上記式(3)において、「none」は何も入力しない場合、「key」,・・・,「keyN−1」は、キーボード上の所定キー(例えば、上、下、左、右などの方向キー)を押した場合またはマウスをクリックした場合などである。なお、イベントの値は、集合Iの何れのイベントであるかを識別するためのIDのようなもので記述してもよい。
上記式(1)(2)において、「F1」「F2」「f1」「f2」は図形である。「F1」および「F2」は書き換え前(表示変更前)の図形(本発明の表示変更前図形に相当する)、「f1」および「f2」は書き換え後(表示変更後)の図形(本発明の表示変更後図形に相当する)である。ユーザは、空間に図形を配置することで視覚的にルールを作成するが、これを、ビジュアルプログラムとして保存する際には、各ルールにおける「F1」「F2」「f1」「f2」のような図形は、4つの要素(下記式(4))を用いて記述される。
(type,x,y,rotation) ・・・(4)
上記式(4)において、「type」は、図形の種類であって、同じ図形が識別できるような値であれば、数値や記号など何でもよい。例えば、図2に示す例において、typeは車である。「x」および「y」は、図2に示すように、表示画面上の図形の中心点のx座標およびy座標である。「rotation」は、図2に示すように、表示画面上の図形の向いている角度であって、x軸方向を0度(基準)として、−180度〜180度の値をとる。なお、上記式(4)は、図形の記述例であって、例えば、当該4つ要素に代えてまたは加えて、他の要素(例えば、図形の色)を用いて図形を記述してもよい。
以下、ある図形Aの種類を「A.type」と表現するものとする。同様に、図形Aのx座標を「A.x」と表現し、図形Aのy座標を「A.y」と表現し、図形Aの角度を「A.rotation」と表現するものとする。例えば、図形F1に係る上記式(4)の各要素は、「F1.type」、「F1.x」、「F1.y」、「F1.rotation」と表現される。
また、あるルールr内の要素「event」を「r.event」と表現し、ルールr内の要素「F1」を「r.F1」と表現し、ルールr内の要素「f1」を「r.f1」と表現ものとする。要素「F2」、要素「f2」についても同様である。
また、あるルールrのある図形Aの各要素を、「r.A.type」、「r.A.x」、「r.A.y」、「r.A.rotation」と表現するものとする。例えば、ルールrの図形F1の各要素は、「r.F1.type」、「r.F1.x」、「r.F1.y」、「r.F1.rotation」と表現される。
タイプ1ルールは、1つの図形を書き換えるルール(表示を変更させるルール)である。つまり、アプリケーションを動作させる画面上の座標「(F1.x,F1.y)」に角度「F1.rotation」で置かれたF1.typeの図形F1を、座標(f1.x,f1.y)に角度f1.rotationで置かれたf1.typeの図形f1に書き換える。つまり、タイプ1ルールは、「F1.type」、「F1.x」、「F1.y」、「F1.rotation」と表現される図形F1を、「f1.type」、「f1.x」、「f1.y」、「f1.rotation」と表現される図形f1に書き換える。図3(a)は、タイプ1ルールによる図形の書き換え例である。
タイプ2ルールは、2つの図形を関連させて書き換えるルール(表示を変更させるルール)である。つまり、座標(F1.x,F1.y)に角度F1.rotationで置かれたF1.typeの図形F1と、座標(F2.x,F2.y)に角度F2.rotationで置かれたF2.typeの図形F2とを、座標(f1.x,f1.y)に角度f1.rotationで置かれたf1.typeの図形f1と、座標(f2.x,f2.y)に角度f2.rotationで置かれたf2.typeの図形f2とに書き換える。例えば、タイプ2ルールによれば、進行方向に出現する障害物(図形F2)を左方向に回避する車(図形F1)の動作を記述することができる。
以上のように、ビジュアルプログラムのファイルは、上記式(4)のように図形を記述した上記式(1)(2)の形式のルールと、アプリケーション(アニメーション等)におけるM個の図形O,O,・・・,Oの初期値(上記式(4)の情報)が格納されている。
記憶装置2の送受信部29は、記憶部20に記憶されたビジュアルプログラムに含まれるルールを取り出して、変換装置1に送信する。また、送受信部29は、変換装置1から手続き型プログラムを取得して、記憶部20に記憶する。
続いて、変換装置1について説明する。変換装置1の送受信部19は、記憶装置2からビジュアルプログラムに含まれるルール(タイプ1ルールおよびタイプ2ルール)を取得する。送受信部19は、記憶装置2から取得したタイプ1ルールをタイプ1ルール用変換部12(タイプ1ルール用ルール抽出命令生成部121)に供給し、記憶装置2から取得したタイプ2ルールをタイプ2ルール用変換部13(タイプ2ルール用ルール抽出命令生成部131)に供給する。また、送受信部19は、プログラム生成部14から手続き型プログラムを取得する。送受信部19は、プログラム生成部14から取得した手続き型プログラムを記憶装置2に送信する。
タイプ1ルール用変換部12は、送受信部19から受信したタイプ1ルールに関して、イベントの種類(kとする)に応じて、アプリケーションで用いられる各図形(O,O,・・・,O)を書き換えるための手続き型の言語の命令(命令文)を生成する。
具体的には、タイプ1ルール用変換部12は、書き換え対象の図形であるターゲット図形(本発明の対象図形に相当する)が既に選択されていると仮定して、当該ターゲット図形に対してタイプ1ルールに従ってターゲット図形を書き換えるための手続き型言語の命令文を生成する。タイプ1ルール用変換部12は、ターゲット図形毎、上述の手続き型言語の命令文を生成し、イベントの種類(k)とともに、プログラム生成部14に供給する。
なお、変換装置1において最終的に生成されるものは、アプリケーションで用いられる各図形(O,O,・・・,O)を、イベントの種類(k)に応じて動作させる(書き換える)手続き型プログラムである。なお、各図形を対象として書き換え動作をする手続き型プログラムは、プログラム生成部14にて生成される。
以下、詳細に説明する。タイプ1ルール用変換部12のタイプ1ルール用ルール抽出命令生成部121は、送受信部19から受信したタイプ1ルールに関して、イベントの種類(k)に応じて、アプリケーションで用いられる各図形(O,O,・・・,O)を書き換えるためのタイプ1ルールを抽出するためのルール抽出命令(ルール抽出命令文)を生成する。即ち、タイプ1ルール用ルール抽出命令生成部121は、一のイベントが対象イベント(k)として与えられ、一の図形がターゲット図形として与えられた場合に、ビジュアルプログラムを構成する複数のタイプ1ルールのなかから、対象イベントと同一のイベントと、ターゲット図形と同一種類の書き換え前の図形であってターゲット図形と同一または最も類似する書き換え後の図形をパラメータとして含むタイプ1ルールを抽出するためのルール抽出命令を生成する。
タイプ1ルール用ルール抽出命令生成部121は、ターゲット図形との角度差が極小である書き換え前の図形をターゲット図形と同一または最も類似する書き換え前の図形とすることによって、ルール抽出命令を生成してもよい。また、タイプ1ルール用ルール抽出命令生成部121は、ターゲット図形との角度差が所定の閾値未満である書き換え前の図形をターゲット図形と同一または最も類似する書き換え前の図形とすることが好ましい。
タイプ1ルール用変換部12のタイプ1ルール用表示変更命令生成部122は、タイプ1ルール用ルール抽出命令生成部121によって生成されたルール抽出命令によって抽出されたルールを用いてターゲット図形の表示を変更させるための表示変更命令(表示変更命令文)を生成する。
図4は、タイプ1ルール用変換部12にて生成される手続き型言語の命令によって示されるフローチャートの一例である。図4において、ステップS1乃至ステップS8は、タイプ1ルール用ルール抽出命令生成部121によって生成されるルール抽出命令によって示される部分、ステップS9およびステップS10は、タイプ1ルール用表示変更命令生成部122によって生成される表示変更命令によって示される部分である。以下、図4のフローチャートを説明する。なお、図4において、アプリケーションで用いられる図形の集合はO={O,O,・・・,O}、ターゲット図形のインデックスはtである(つまり、ターゲット図形はOである)。
ステップS1は、インデックスjのルールであるルールrの退避先であるルールpを初期化する処理である。つまり、ステップS1は、書き換えに使用するルールp(ルールrの複製)を初期化する処理である。ステップS2は、インデックスjを初期化する処理である。
ステップS3は、ルールrが所定の条件をクリアするか否かを判断する処理である。所定の条件は、「ルールrのイベントの種類はkである」、「ルールrの左辺の第2要素の図形の種類(r.F1.type)はターゲット図形Oの種類(O.type)と同一である」、および、「ルールrはタイプ1ルールである」の3つのAND条件である。なお、ルールrがタイプ1ルールであるかタイプ2ルールであるかは、ルールrの要素数に基づいて判断している。具体的には、ルールの左辺の第3要素がない場合(r.F2 =nullの場合)、タイプ1ルールと判断する。なお、記号「==」は左辺と右辺が等価である旨を表す記号である。
ステップS4は、ルールrの左辺の図形の角度(r.F1.rotation)とターゲット図形Oの角度(O.rotation)との角度差dを算出する処理である。なお、ステップS4の記号「←」は右辺の値を左辺に代入する旨を表す記号である(他のステップにおいても同様である)。
ステップS5は、角度差dと比較値θとを比較する処理である。なお、比較値θの値は、ルールrのカウンタj迄における最小の角度差dが格納されるが(ステップS6参照)、比較値θの初期値は、閾値として、0°≦θ<360°の範囲で予め任意に設定しておく。ステップS6は、カウンタj迄における、最小の角度差dを比較値θに代入するとともに、角度差dが最小であるルールrをルールpに代入する処理である。
ステップS7は、インデックスjをインクリメントする処理である。ステップS8は、j≦Nの間、ステップS3からステップS7を繰り返し実行させる処理である。ステップS3からステップS7を繰り返し実行することによって、ビジュアルプログラムに格納されているルールrのうち、ステップS3の所定の条件をクリアするルールであって、ターゲット図形Oの角度(O.rotation)とルールrの左辺の図形の角度(r.F1.rotation)との角度差dが最小であるルールrを、書き換えに使用するルールpとして抽出(選択)している。
ステップS9は、書き換えに使用するルールpが抽出されているか否かを判断する処理である。ステップS10は、ルールpが抽出されている場合に(ステップS9:Yes)、ルールpに従って、ターゲット図形Otを変換する処理(図形を書き換える処理、つまり、図形の表示を変更する処理)である。なお、「transform(t,a,b)」は、図形aを図形bへ書き換えるルールに従って、図形tを書き換えたときの書き換え後の状態(図形の種類、x座標、y座標、角度)を計算して返す関数である図5参照)。
図4のフローチャートによれば、ルールrの左辺の図形の角度(r.F1.rotation)とターゲット図形Oの角度(O.rotation)との角度差dが閾値θ(初期値として設定する比較値θ)未満のルールrであって、かつ、角度差dが最小であるルールrを、ターゲット図形Oの状態(配置、角度)に近いルールrとして抽出(探索)し、抽出したルールpを適用し、ターゲット図形Oを書き換えている(ターゲット図形Oの表示を変更している)。
なお、角度差dが、比較値θ以上の場合(ステップS5:No)、ステップS6を飛ばしてルールrをルールpとして抽出しないようにしているが、左辺の図形の角度(r.F1.rotation)がターゲット図形Oの角度(O.rotation)と近いルールrがビジュアルプログラムに1つも格納されていない場合、即ち、ターゲット図形Oの角度と近い角度の図形に関するルールrが全く存在しない場合、ルールr(即ち、ルールp)を用いて、ターゲット図形Oの書き換えを行わないようにするためである。なお、ターゲット図形Oの角度と近い角度の図形に関するルールrが全く存在しない場合、ルールpは1度も抽出されないため(ルールpはnullのままであるため)、ステップS10の書き換えは行われない。
閾値θ(初期値として設定する比較値θ)を十分大きな値(プログラムを実行するシステム上で表現し得る整数の最大値等)で設定した場合、図形の種類(type)が同じルールrであれば、当該ルールrの左辺の図形の角度(r.F1.rotation)がターゲット図形Oの角度(O.rotation)と全く異なっていても、他に適切なルールrが存在しなければ、ルールrを用いてターゲット図形Oの書き換えが行われるようになる。
なお、図4のフローチャートの変形例として、角度差dが、所定の閾値未満のルールrを1つ抽出した時点で、当該ルールrをルールpとして決定し、ループ(ステップS3からステップS8の繰り返し処理)を終了するようにしてもよい。最適なルールrがルールpとして決定されるとは限らないが、当該フローチャートに係る処理を高速化させることができるようになる。
図5は、図4に示すフローチャートに示す処理を実現する手続き型言語の命令の一例(イメージ)である。図5において、O[t]は、ビジュアルプログラムで初期値が定義されている図形の集合をOとした場合における、集合Oのt番目の要素、即ち、図4のフローでターゲット図形Oに相当する。Rは、ビジュアルプログラムで定義されているルールの集合R={r,r,・・・,r}である。R[j]はRのj番目のルールである。R[j].F1はルールR[j]の左辺の第2要素(上記式(2)のF1)の図形である。R[j].f1はルールR[j]の右辺の第1要素(上記式(2)のf1)の図形である。
minangle(O[t],R)は、図形O[t]の角度とルールの左辺の第2要素の図形の角度との差が最小となるルールの集合R中の要素番号(インデックス)を返す関数である。atan(c)は、arctangentを求める関数、すなわち、tanφ=cを満たすφを求める関数である。sqrt(c)は、cの平方根を求める関数である。
なお、図5において、「if (j!=null){O[t]=transform(O[t],R[j].F1,R[j].f1);}」が、タイプ1ルール用表示変更命令生成部122によって生成される表示変更命令に該当する。
図3(b)は、図5の例によるターゲット図形(車)の書き換えの例である。なお、ターゲット図形(車)を無地、書き換え後の図形(車)を斜線で表している。なお、図5において図3(a)のルールが適用されているものとする。『「O[t]=transform(O[t],R[j].F1,R[j].f1);』におけるR[j]は、図3(a)のルールであるものとする。
なお、タイプ1ルール用変換部12が生成する、手続き型言語の命令文は、タイプ1ルールの左辺の図形の角度とターゲット図形Oの角度との角度差が、閾値θ(初期値として設定する比較値θ)未満のタイプ1ルールを抽出し、抽出したタイプ1ルールに従って、ターゲット図形Oを書き換える手続きを構成するものであればよく、図5の例に限定されるものではない。また、手続き型言語の命令文などの文法(構文)の形式は、当該手続き型言語の種類に応じて異なるものである。
タイプ2ルール用変換部13は、送受信部19から受信したタイプ2ルールに関して、イベントの種類(k)に応じて、ターゲット図形Oをタイプ2ルールに従って書き換えるための手続き型言語の命令(命令文)を生成する。
具体的には、タイプ2ルール用変換部13は、タイプ1ルール用変換部12と同様、ターゲット図形Oが既に選択されていると仮定して、当該ターゲット図形に対してタイプ2ルールに従ってターゲット図形Oの書き換えるための手続き型言語の命令を生成する。タイプ2ルール用変換部13は、ターゲット図形O毎、上記手続き型言語の命令を生成し、イベントの種類(k)とともに、プログラム生成部14に供給する。
以下、詳細に説明する。タイプ2ルール用変換部13のタイプ2ルール用ルール抽出命令生成部131は、送受信部19から受信したタイプ2ルールに関して、イベントの種類(k)に応じて、アプリケーションで用いられる各図形(O,O,・・・,O)を書き換えるためのタイプ2ルールを抽出するためのルール抽出命令(ルール抽出命令文)を生成する。即ち、タイプ2ルール用ルール抽出命令生成部131は、一のイベントが対象イベント(k)として与えられ、一の図形がターゲット図形Oとして与えられた場合に、ビジュアルプログラムを構成する複数のタイプ2ルールのなかから、対象イベントと同一のイベントとターゲット図形Oと同一種類の書き換え前の図形とをパラメータとして含むタイプ2ルールであって、一方の書き換え前の図形の表示に対する他方の書き換え前の図形の表示の関係がターゲット図形Oの表示に対する任意の図形の表示の関係と同一または最も類似する2つの書き換え前の図形をパラメータとして含むルールを抽出するためのルール抽出命令を生成する。
タイプ2ルール用ルール抽出命令生成部131は、2つの書き換え前の図形の距離とターゲット図形Oと任意の図形との距離との差が極小である2つの書き換え前の図形を、同一または最も類似する2つの書き換え前の図形とすることによって、ルール抽出命令を生成してもよい。
また、タイプ2ルール用ルール抽出命令生成部131は、ビジュアルプログラムを構成する複数のタイプ2ルールのなかから、対象イベント(k)と同一のイベントとターゲット図形Oと同一種類の書き換え前の図形とをパラメータとして含むルールであって、第1の書き換え前の図形の表示に対する第2の書き換え前の図形の表示の関係がターゲット図形Oの表示に対する任意の図形の表示の関係と同一または最も類似する第1の書き換え前の図形と第2の書き換え前の図形とをパラメータとして含む第1ルール(後述)を抽出するためのルール抽出命令を生成するとともに、ビジュアルプログラムを構成する複数のタイプ2ルールのなかから、対象イベント(k)と同一のイベントとターゲット図形Oと同一種類の書き換え前の図形とをパラメータとして含むルールであって、第2の書き換え前の図形の表示に対する第1の書き換え前の図形の表示の関係がターゲット図形Oの表示に対する任意の図形の表示の関係と同一または最も類似する第2の書き換え前の図形と第1の書き換え前の図形とをパラメータとして含む第2ルール(後述)を抽出するためのルール抽出命令を生成するようにしてもよい。
タイプ2ルール用変換部13のタイプ2ルール用表示変更命令生成部132は、タイプ2ルール用ルール抽出命令生成部131によって生成されたルール抽出命令によって抽出されたルールを用いてターゲット図形Oの表示を変更させるための表示変更命令(表示変更命令文)を生成する。
なお、タイプ2ルール用表示変更命令生成部132は、タイプ2ルール用ルール抽出命令生成部131が第1ルールおよび第2ルールを抽出するためのルール抽出命令を生成する場合には、第1ルールに含まれる第1の書き換え前の図形の表示に対する第2の書き換え前の図形の表示の関係が、第2ルールに含まれる第2の書き換え前の図形の表示に対する第1の書き換え前の図形の表示の関係よりも対象ターゲット図形Oの表示に対する任意の図形の表示の関係に類似している場合、第1ルールを用いて対象ターゲット図形Oの表示を変更させるための表示変更命令を生成し、第2ルールに含まれる第2の書き換え前の図形の表示に対する第1の書き換え前の図形の表示の関係が、第1ルールに含まれる第1の書き換え前の図形の表示に対する第2の書き換え前の図形の表示の関係よりも対象ターゲット図形Oの表示に対する任意の図形の表示の関係に類似している場合、第2ルールを用いて対象ターゲット図形Oの表示を変更させるための表示変更命令を生成するようにしてもよい。
図6乃至図8は、タイプ2ルール用変換部13にて生成される手続き型言語の命令によって示されるフローチャートの一例である。図6において、ステップS100およびステップS200は、タイプ2ルール用ルール抽出命令生成部131によって生成されるルール抽出命令によって示される部分、ステップS300乃至ステップS700は、タイプ2ルール用表示変更命令生成部132によって生成される表示変更命令によって示される部分である。以下、図6乃至図8のフローチャートを説明する。タイプ2ルールは、上述の如く、2つの図形を同時に書き換えるルールであるため、現在選択しているターゲット図形Oと一緒に書き換える図形をO,O,・・・,Oの中から抽出する処理(「第1ルール抽出処理」「第2ルール抽出処理」)が必要になる。
図6のステップS100は、対象イベント(k)と同一のイベントとターゲット図形Oと同一種類の書き換え前の図形とをパラメータとして含むルールであって、第1の書き換え前の図形の表示に対する第2の書き換え前の図形の表示の関係が、ターゲット図形Oの表示に対する他方の図形(ターゲット図形Oと同時に書き換えを行う他方の図形)の表示の関係と同一または最も類似するときの、当該第1の書き換え前の図形と当該第2の書き換え前の図形とをパラメータとして含むルール(第1ルール)を抽出する処理(第1ルール抽出処理)である。図7は、第1ルール抽出処理の詳細である。
図7のステップS101は、第1ルールとしてのルールrの退避先であるルールp1を初期化する処理である。つまり、ステップS101は、書き換えの使用候補であるルールp1(ルールrの複製)を初期化する処理である。ステップS102は、インデックスjを初期化する処理である。
ステップS103は、ルールrが所定の条件をクリアするか否かを判断する処理である。所定の条件は、「ルールrのイベントの種類はkである」、「ルールrの左辺の第2要素の図形の種類(r.F1.type)はターゲット図形Oの種類(O.type)と同一である」、および、「ルールrはタイプ2ルールである」の3つのAND条件である。なお、ルールrがタイプ1であるかタイプ2であるかは、ルールrの要素数に基づいて判断している。具体的には、ルールの左辺の第3要素がある場合(r.F2 ≠nullの場合)、タイプ2ルールと判断する。
ステップS104は、ルールrの左辺の2つの図形(r.F1とr.F2)の位置関係から、ターゲット図形Oに対応する他方の図形(F2に相当する図形)の種類、位置、角度を計算し、t1に代入する処理である。即ち、第1の書き換え前の図形(r.F1)に対する第2の書き換え前の図形(r.F2)の関係に対応する、ターゲット図形Oに対する他方の図形Ot1(ターゲット図形Oと同時に書き換えを行う図形)を設定(算出)する処理である。なお、図形Ot1の種類、位置角度は、transform関数によって求めることができる(図5参照)。
ステップS105乃至ステップS109は、他方の図形Ot1を除くアプリケーション上で動作可能な図形(ビジュアルプログラムに初期値が定義されている図形)O,O,・・・,Oの中から、他方の図形Ot1の位置座標と最も近い位置にある図形Oを抽出して、図形Oのインデックスiをi1に代入するとともに、ルールrをp1に代入する処理である。なお、「distance(O,Ot1)」は、図形Oと他方の図形Ot1と距離を算出する関数であって、上記式(4)による図形Oのx座標「O.x」およびy座標「O.y」、並びに、他方の図形Ot1のx座標「Ot1.x」およびy座標「Ot1.y」の値から、ユークリッド距離などを算出する関数である。
ステップS110は、インデックスjをインクリメントする処理である。ステップS111は、j≦Nの間、ステップS103からステップS110を繰り返し実行させる処理である。ステップS103からステップS110を繰り返し実行することによって、タイプ2ルールの左辺の第2要素(F1に相当)をターゲット図形Oとし、タイプ2ルールの第3要素(F2に相当)を他方の図形Ot1として、ルールrに定義された各図形と種類が同一であって、ルールrに定義された2つの図形の位置関係(r.F1とr.F2)と最も近い位置関係の図形Oが存在するルールrをp1、そのときのターゲット図形Oに対応する他方の図形Ot1のインデックスi1、ターゲット図形Oと他方の図形Oi1との距離d1を出力する。
図6のステップS200は、対象イベント(k)と同一のイベントとターゲット図形Oと同一種類の書き換え前の図形とをパラメータとして含むルールであって、第2の書き換え前の図形の表示に対する第1の書き換え前の図形の表示の関係が、ターゲット図形Oの表示に対する他方の図形(ターゲット図形Oと同時に書き換えを行う他方の図形)の表示の関係と同一または最も類似するときの、当該第2の書き換え前の図形と当該第1の書き換え前の図形とをパラメータとして含むルール(第2ルール)を抽出する処理(第2ルール抽出処理)である。図8は、第2ルール抽出処理の詳細である。なお、第2ルール抽出処理は、ステップS203、ステップS204などに示すように、第1ルール抽出処理において、第1の書き換え前の図形と第2の書き換え前の図形の関係を逆にした処理である。
図8のステップS201は、第2ルールとしてのルールrの退避先であるルールp2を初期化する処理である。つまり、書き換えの使用候補であるルールp2(ルールrの複製)を初期化する処理である。ステップS202は、インデックスjを初期化する処理である。
ステップS203は、ルールrが所定の条件をクリアするか否かを判断する処理である。所定の条件は、「ルールrのイベントの種類はkである」、「ルールrの左辺の第3要素の図形の種類(r.F2.type)はターゲット図形Oの種類(O.type)と同一である」の3つのAND条件である。なお、タイプ2ルールには必ず第2要素(F1)が存在するので、第1ルール抽出処理のステップS103における条件(r.F2≠null)に相当する条件(r.F1≠null)は不要である。
ステップS204は、ルールrの左辺の2つの図形(r.F2とr.F1)の位置関係から、ターゲット図形Oに対応する他方の図形(F1に相当する図形)の種類、位置、角度を計算し、t2に代入する処理である。即ち、第2の書き換え前の図形(r.F2)に対する第1の書き換え前の図形(r.F1)の関係に対応する、ターゲット図形Oに対する他方の図形Ot2(ターゲット図形Oと同時に書き換えを行う図形)を設定(算出)する処理である。なお、図形Ot2の種類、位置角度は、transform関数によって求めることができる(図5参照)。
ステップS205からステップS211は、第1ルール抽出処理のステップS104からステップS111と同様である。即ち、第2ルール抽出処理では、タイプ2ルールの左辺の第3要素(F2に相当)をターゲット図形Oとし、タイプ2ルールの第2要素(タF1に相当)を他方の図形Ot2として、ルールrに定義された各図形と種類が同一であって、ルールrに定義された2つの図形の位置関係(r.F2とr.F1)と最も近い位置関係の図形Oが存在するルールrをp2、そのときのターゲット図形Oに対応する他方の図形Ot2のインデックスi2、ターゲット図形Oと他方の図形Oi2との距離d2を出力する。
図6のステップS300は、第1ルール抽出処理で求めた距離d1と第2ルール抽出処理で求めた距離を比較する処理である。
ステップS500は、距離d1が距離d2以下の場合であって(ステップS300:Yes)、ルールp1がある(ルールp1≠null)場合において(ステップS400:Yes)、ルールp1を用いてターゲット図形Oと他方の図形Oi1の書き換えを行う処理である。
ステップS700は、距離d1が距離d2より大きい場合であって(ステップS300:No)、ルールp2がある(ルールp2≠null)場合において(ステップS600:Yes)、ルールp2を用いてターゲット図形Oと他方の図形Oi2の書き換えを行う処理である。
即ち、ステップS300乃至ステップS600では、より書き換えに適したルールを適用するために、第1ルール抽出処理で抽出した第1ルール(ルールp1)と第2ルール抽出処理で抽出した第2ルール(ルールp2)のうち、ルールに定義されている書き換え対象の2つの図形(F1、F2)の距離と、実際に書き換えられる2つの図形(O、Oi1またはO、Oi2)の距離との差(d1またはd2)がより小さい方のルール(p1またはp2)を適用して、書き換えを行っている。
なお、予め距離d1と距離d2に閾値を設定しておくことで、距離が閾値以下となるようなルールを抽出することができる。これにより、ルールに近い図形が存在しない場合に、ルールに記述された2つの図形と種類は同じであるが、位置関係が全く異なるような図形をルールで書き換えてしまうことを避けることができる。即ち、該当するルールが存在しない場合にはルールp1やルールp2が空の状態(null)となるため、書き換えを行わない(ステップS400:No、ステップS600:No)。
また、タイプ1ルール用変換部12と同様に、最適なルールrを求めるのではなく、ステップS106を満たすルールrを1つ抽出した時点で、当該ルールrをルールp1として決定し、ループ処理を終了してもよい。同様に、ステップS206を満たすルールrを1つ抽出した時点で、当該ルールrをルールp2として決定し、ループ処理を終了してもよい。
また、第1ルール抽出処理においてルールp1が抽出された場合は第2ルール抽出処理を省略し、第1ルール抽出処理においてルールp1が抽出されなかった場合に限り、第2ルール抽出処理を実行するようにしてもよい。或いは、第1ルール抽出処理よりも先に第2ルール抽出処理を実行し、第2ルール抽出処理においてルールp2が抽出された場合は第1ルール抽出処理を省略し、第2ルール抽出処理においてルールp2が抽出されなかった場合に限り、第1ルール抽出処理を実行するようにしてもよい。
図9は、図6乃至図8に示すフローチャートに示す処理を実現する手続き型言語の命令の一例(イメージ)である。なお、タイプ2ルール用変換部13が生成する、手続き型言語の命令文は、図9の例に限定されるものではない。図9においては、距離の閾値であるd1やd2の初期値として、システムが表現し得る最大の整数値(MAXINT)を設定した例を示しているが、d1やd2は一の値を設定してもよい。
なお、図9において、「O[t]=transform(O[t],p1.F1, p1.f1);O[i1]=transform(O[i1],p1.F2,p1.f2);」等が、タイプ2ルール用表示変更命令生成部132によって生成される表示変更命令に該当する。
変換装置1のプログラム生成部14は、タイプ1ルール用変換部12、タイプ2ルール用変換部13によって生成された命令文(ルール抽出命令文、表示変更命令文)から手続き型プログラムを生成する。
即ち、プログラム生成部14は、タイプ1ルール用変換部12から、イベントの種類(k)とともに、ターゲット図形毎のタイプ1に係る手続き型言語の命令文を取得する。また、プログラム生成部14は、タイプ2ルール用変換部13から、イベントの種類(k)とともに、ターゲット図形毎のタイプ2に係る手続き型言語の命令文を取得する。そして、プログラム生成部14は、アプリケーションで用いられる各図形(O,O,・・・,O)を、イベントの種類(k)に応じて動作させる(表示を変更させる)手続き型プログラムを生成する。
即ち、プログラム生成部14は、ビジュアルプログラムの中で初期値が定義されている図形(O,O,・・・,O)について、イベントの種類(k)毎、図形毎に、タイプ1ルール用変換部12から取得した手続き型言語の命令文またはタイプ2ルール用変換部13から取得した手続き型言語の命令文を繰り返し実行する手続き型プログラムを生成する。プログラム生成部14は、生成した手続き型プログラムを送受信部19に供給する。
変換装置1において生成する手続き型プログラム、つまり、ビジュアルプログラムから生成する手続き型プログラムは、ビジュアルプログラム(ビジュアル言語)で表現できる高機能な動作を全て正確に再現するものではないが、比較的単純な処理で元のビジュアル言語で作成されたアプリケーションの動作を模倣することができ、携帯電話のような処理能力の低い端末上でも実行させることができる。
以上、本実施形態では、初期状態を静的に固定し、ビジュアル言語で定義されたルール(ビジュアルプログラムに含まれるルール)から冗長性を削減することによって、ビジュアルプログラムを、図形を効率的に書き換えるような手続き型プログラムに変換している。つまり、本実施形態では、大きなメモリ容量と大きな計算量とを必要とするビジュアルプログラム(ゲーム、アニメーション)を、小さなメモリ消費量と小さな計算量(低実時間)で実行可能なプログラム、即ち、携帯電話のような小さなコンピュータでも実行可能な手続き型プログラムに変換している。従って、ビジュアルプログラムを、手続き型プログラムに変換することによって、携帯電話のような小さなコンピュータにおいて動作させることができるようになる。
換言すれば、本実施形態は、ビジュアル言語によって作られたビジュアルプログラムから冗長である動的な部分を削って、携帯電話のような小さなコンピュータでも実行可能な手続き型プログラムに変換するための、ビジュアル言語のコンパイル技術とも言える。
なお、本実施形態では、上述の如く、初期状態を固定しているが、初期状態を固定しても、表現できる範囲は実質的に減少しないことを利用している。なお、初期状態を固定しても、ユーザのインタラクションを除けば、毎回、同じ動作ができることから、安定したアプリケーションの動作が可能である。
なお、本発明の一実施形態による変換装置1の各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、本発明の一実施形態による変換装置1の各処理に係る上述した種々の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
1 変換装置 2 記憶装置 12 タイプ1ルール用変換部 13 タイプ2ルール用変換部 14 プログラム生成部 19 送受信部 20 記憶部 29 送受信部 121 タイプ1ルール用ルール抽出命令生成部 122 タイプ1ルール用表示変更命令生成部 131 タイプ2ルール用ルール抽出命令生成部 132 タイプ2ルール用表示変更命令生成部

Claims (10)

  1. 表示変更イベント、表示変更前図形および表示変更後図形をパラメータとするルールであって、図形の表示を変更させるルールから構成されるビジュアルプログラムを、手続き型プログラムに変換するプログラム変換装置であって、
    一の表示変更イベントが対象イベントとして与えられ、一の図形が対象図形として与えられた場合に、前記ビジュアルプログラムを構成する複数の前記ルールのなかから、前記対象イベントと同一の前記表示変更イベントと、前記対象図形と同一種類の前記表示変更前図形であって前記対象図形と同一または最も類似する前記表示変更前図形をパラメータとして含む前記ルールを抽出するためのルール抽出命令を生成するルール抽出命令生成部と、
    前記ルール抽出命令によって抽出された前記ルールを用いて前記対象図形の表示を変更させるための表示変更命令を生成する表示変更命令生成部と、
    前記ルール抽出命令生成部によって生成された前記ルール抽出命令と、前記表示変更命令生成部によって生成された前記表示変更命令とから前記手続き型プログラムを生成するプログラム生成部と
    を備えることを特徴とするプログラム変換装置。
  2. 前記ルール抽出命令生成部は、
    前記対象図形との角度差が極小である前記表示変更前図形を前記対象図形と同一または最も類似する前記表示変更前図形とすることによって、前記ルールを抽出する前記ルール抽出命令を生成することを特徴とする請求項1に記載のプログラム変換装置。
  3. 前記ルール抽出命令生成部は、
    前記対象図形との角度差が所定の閾値未満である前記表示変更前図形を前記対象図形と同一または最も類似する前記表示変更前図形とすることによって、前記ルールを抽出する前記ルール抽出命令を生成することを特徴とする請求項1または請求項2に記載のプログラム変換装置。
  4. 表示変更イベント、2つの表示変更前図形および2つの表示変更後図形をパラメータとするルールであって、2つの表示変更前図形の表示を関連させて変更させるルールから構成されるビジュアルプログラムを、手続き型プログラムに変換するプログラム変換装置であって、
    一の表示変更イベントが対象イベントとして与えられ、一の図形が対象図形として与えられた場合に、前記ビジュアルプログラムを構成する複数の前記ルールのなかから、前記対象イベントと同一の前記表示変更イベントと前記対象図形と同一種類の前記表示変更前図形とをパラメータとして含む前記ルールであって、一方の表示変更前図形の表示に対する他方の表示変更前図形の表示の関係が前記対象図形の表示に対する任意の図形の表示の関係と同一または最も類似する前記2つの表示変更前図形をパラメータとして含む前記ルールを抽出するためのルール抽出命令を生成するルール抽出命令生成部と、
    前記ルール抽出命令によって抽出された前記ルールを用いて前記対象図形の表示を変更させるための表示変更命令を生成する表示変更命令生成部と、
    前記ルール抽出命令生成部によって生成された前記ルール抽出命令と、前記表示変更命令生成部によって生成された前記表示変更命令とから前記手続き型プログラムを生成するプログラム生成部と
    を備えることを特徴とするプログラム変換装置。
  5. 前記ルール抽出命令生成部は、前記2つの表示変更前図形の距離と前記対象図形と任意の図形との距離との差が極小である前記2つの表示変更前図形を、前記同一または最も類似する前記2つの表示変更前図形とすることによって、前記ルールを抽出する前記ルール抽出命令を生成することを特徴とする請求項4に記載のプログラム変換装置。
  6. 前記ルール抽出命令生成部は、前記ビジュアルプログラムを構成する複数の前記ルールのなかから、前記対象イベントと同一の前記表示変更イベントと前記対象図形と同一種類の前記表示変更前図形とをパラメータとして含む前記ルールであって、第1の表示変更前図形の表示に対する第2の表示変更前図形の表示の関係が前記対象図形の表示に対する任意の図形の表示の関係と同一または最も類似する前記第1の表示変更前図形と前記第2の表示変更前図形とをパラメータとして含む第1のルールを抽出するためのルール抽出命令を生成し、前記ビジュアルプログラムを構成する複数の前記ルールのなかから、前記対象イベントと同一の前記表示変更イベントと前記対象図形と同一種類の前記表示変更前図形とをパラメータとして含む前記ルールであって、第2の表示変更前図形の表示に対する第1の表示変更前図形の表示の関係が前記対象図形の表示に対する任意の図形の表示の関係と同一または最も類似する前記第2の表示変更前図形と前記第1の表示変更前図形とをパラメータとして含む第2のルールを抽出するためのルール抽出命令を生成し、
    前記表示変更命令生成部は、前記第1のルールに含まれる前記第1の表示変更前図形の表示に対する前記第2の表示変更前図形の表示の関係が、前記第2のルールに含まれる前記第2の表示変更前図形の表示に対する前記第1の表示変更前図形の表示の関係よりも前記対象図形の表示に対する任意の図形の表示の関係に類似している場合、前記第1のルールを用いて前記対象図形の表示を変更させるための表示変更命令を生成し、前記第2のルールに含まれる前記第2の表示変更前図形の表示に対する前記第1の表示変更前図形の表示の関係が、前記第1のルールに含まれる前記第1の表示変更前図形の表示に対する前記第2の表示変更前図形の表示の関係よりも前記対象図形の表示に対する任意の図形の表示の関係に類似している場合、前記第2のルールを用いて前記対象図形の表示を変更させるための表示変更命令を生成することを特徴とする請求項4または請求項5に記載のプログラム変換装置。
  7. 表示変更イベント、表示変更前図形および表示変更後図形をパラメータとするルールであって、図形の表示を変更させるルールから構成されるビジュアルプログラムを、手続き型プログラムに変換するプログラム変換装置が行うプログラム変換方法であって、
    一の表示変更イベントが対象イベントとして与えられ、一の図形が対象図形として与えられた場合に、前記ビジュアルプログラムを構成する複数の前記ルールのなかから、前記対象イベントと同一の前記表示変更イベントと、前記対象図形と同一種類の前記表示変更前図形であって前記対象図形と同一または最も類似する前記表示変更前図形をパラメータとして含む前記ルールを抽出するためのルール抽出命令を生成するルール抽出命令生成ステップと、
    前記ルール抽出命令によって抽出された前記ルールを用いて前記対象図形の表示を変更させるための表示変更命令を生成する表示変更命令生成ステップと、
    前記ルール抽出命令生成ステップによって生成された前記ルール抽出命令と、前記表示変更命令生成ステップによって生成された前記表示変更命令とから前記手続き型プログラムを生成するプログラム生成ステップ
    有することを特徴とするプログラム変換方法。
  8. 表示変更イベント、2つの表示変更前図形および2つの表示変更後図形をパラメータとするルールであって、2つの表示変更前図形の表示を関連させて変更させるルールから構成されるビジュアルプログラムを、手続き型プログラムに変換するプログラム変換装置が行うプログラム変換方法であって、
    一の表示変更イベントが対象イベントとして与えられ、一の図形が対象図形として与えられた場合に、前記ビジュアルプログラムを構成する複数の前記ルールのなかから、前記対象イベントと同一の前記表示変更イベントと前記対象図形と同一種類の前記表示変更前図形とをパラメータとして含む前記ルールであって、一方の表示変更前図形の表示に対する他方の表示変更前図形の表示の関係が前記対象図形の表示に対する任意の図形の表示の関係と同一または最も類似する前記2つの表示変更前図形をパラメータとして含む前記ルールを抽出するためのルール抽出命令を生成するルール抽出命令生成ステップと、
    前記ルール抽出命令によって抽出された前記ルールを用いて前記対象図形の表示を変更させるための表示変更命令を生成する表示変更命令生成ステップと、
    前記ルール抽出命令生成ステップによって生成された前記ルール抽出命令と、前記表示変更命令生成ステップによって生成された前記表示変更命令とから前記手続き型プログラムを生成するプログラム生成ステップ
    有することを特徴とするプログラム変換方法。
  9. 表示変更イベント、表示変更前図形および表示変更後図形をパラメータとするルールであって、図形の表示を変更させるルールから構成されるビジュアルプログラムを、手続き型プログラムに変換するプログラム変換装置のコンピュータに、
    一の表示変更イベントが対象イベントとして与えられ、一の図形が対象図形として与えられた場合に、前記ビジュアルプログラムを構成する複数の前記ルールのなかから、前記対象イベントと同一の前記表示変更イベントと、前記対象図形と同一種類の前記表示変更前図形であって前記対象図形と同一または最も類似する前記表示変更前図形をパラメータとして含む前記ルールを抽出するためのルール抽出命令を生成するルール抽出命令生成ステップと、
    前記ルール抽出命令によって抽出された前記ルールを用いて前記対象図形の表示を変更させるための表示変更命令を生成する表示変更命令生成ステップと、
    前記ルール抽出命令生成ステップによって生成された前記ルール抽出命令と、前記表示変更命令生成ステップによって生成された前記表示変更命令とから前記手続き型プログラムを生成するプログラム生成ステップと
    を実行させることを特徴とするプログラム。
  10. 表示変更イベント、2つの表示変更前図形および2つの表示変更後図形をパラメータとするルールであって、2つの表示変更前図形の表示を関連させて変更させるルールから構成されるビジュアルプログラムを、手続き型プログラムに変換するプログラム変換装置のコンピュータに、
    一の表示変更イベントが対象イベントとして与えられ、一の図形が対象図形として与えられた場合に、前記ビジュアルプログラムを構成する複数の前記ルールのなかから、前記対象イベントと同一の前記表示変更イベントと前記対象図形と同一種類の前記表示変更前図形とをパラメータとして含む前記ルールであって、一方の表示変更前図形の表示に対する他方の表示変更前図形の表示の関係が前記対象図形の表示に対する任意の図形の表示の関係と同一または最も類似する前記2つの表示変更前図形をパラメータとして含む前記ルールを抽出するためのルール抽出命令を生成するルール抽出命令生成ステップと、
    前記ルール抽出命令によって抽出された前記ルールを用いて前記対象図形の表示を変更させるための表示変更命令を生成する表示変更命令生成ステップと、
    前記ルール抽出命令生成ステップによって生成された前記ルール抽出命令と、前記表示変更命令生成ステップによって生成された前記表示変更命令とから前記手続き型プログラムを生成するプログラム生成ステップと
    を実行させることを特徴とするプログラム。
JP2009144596A 2009-06-17 2009-06-17 プログラム変換装置、プログラム変換方法およびプログラム Active JP5197504B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009144596A JP5197504B2 (ja) 2009-06-17 2009-06-17 プログラム変換装置、プログラム変換方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009144596A JP5197504B2 (ja) 2009-06-17 2009-06-17 プログラム変換装置、プログラム変換方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2011002959A JP2011002959A (ja) 2011-01-06
JP5197504B2 true JP5197504B2 (ja) 2013-05-15

Family

ID=43560874

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009144596A Active JP5197504B2 (ja) 2009-06-17 2009-06-17 プログラム変換装置、プログラム変換方法およびプログラム

Country Status (1)

Country Link
JP (1) JP5197504B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3279041B2 (ja) * 1994-03-01 2002-04-30 松下電器産業株式会社 アニメーション作成装置
JP4834642B2 (ja) * 2007-10-10 2011-12-14 日本電信電話株式会社 図形変化装置、図形変化方法、コンピュータプログラム及び記録媒体

Also Published As

Publication number Publication date
JP2011002959A (ja) 2011-01-06

Similar Documents

Publication Publication Date Title
JP5209016B2 (ja) WebAPI作成支援装置及びWebAPI作成支援方法
JP2005346722A (ja) フォームタイプを使用してフォームを生成する方法および装置
KR20120022831A (ko) 플랫폼 확장성 프레임워크
US20180005122A1 (en) Constructing new formulas through auto replacing functions
JP2008541286A (ja) 3次元形状に関係づけられたパラメトリックモデルを生成する方法および装置
CN110442515A (zh) 应用测试方法、装置、设备及可读存储介质
CN102804175A (zh) 顺序布局构建器
CN113407284A (zh) 导航界面的生成方法、装置、存储介质及电子设备
JP4030674B2 (ja) 地理情報システム及び記録媒体
Fisher et al. Re-presenting geographical information systems
JP5197504B2 (ja) プログラム変換装置、プログラム変換方法およびプログラム
CN102804174A (zh) 顺序布局构建器体系结构
JP2000003379A (ja) プロダクトモデルにおける図面作成装置
WO2016185551A1 (ja) ユーザインタフェース装置およびユーザインタフェース装置の画面表示方法
Bousse et al. Scalable armies of model clones through data sharing
JP2010191889A (ja) 地図データ編集装置及び地図データ編集装置用サーバ
US20160217224A1 (en) Apparatus and method for modeling cultural heritage building
Ruiz-López et al. A model-driven approach to requirements engineering in ubiquitous systems
US10621248B2 (en) Collaborative real-time data modeling
Anwar et al. Component-based, information oriented structural engineering applications
JP4347017B2 (ja) 情報処理方法及び画像処理方法
Solomencevs et al. The algorithm for getting a uml class diagram from topological functioning model
JP4470776B2 (ja) 視覚的表示プログラム
CN112445469B (zh) 一种代码生成方法、系统、计算机设备及存储介质
JP4624044B2 (ja) プログラム間通信システム、プログラム間通信方法、データ構造生成システムおよびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111111

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130205

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160215

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5197504

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160215

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350