(57)【要約】【課題】ビジュアルプログラミングの利点である直感的な記述及び操作を活かしつつ、データの可搬性を高めることを可能とするプログラム実行装置を提供する。【解決手段】プログラム実行装置１において、入力表示部１０は、枠データと、参照データと、文字データと、バイナリデータ識別子により特定されるバイナリデータとを有するプログラム部品の入力を受けて、プログラム部品を表示する。部品情報検出部１１は、入力表示部１０に表示される枠データ、参照データ、文字データ、バイナリデータ識別子を部品情報として検出する。プログラム実行部１３は、部品情報検出部１１が検出する部品情報に含まれる文字データに対応する解釈プログラムを解釈プログラム記憶部１５から読み出し、読み出した解釈プログラムにより実行を行い、部品情報に含まれるバイナリデータ識別子に基づいてバイナリデータ記憶部１６から対応するバイナリデータを読み出して出力する。【選択図】    図１
2007034442.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータプログラムを実行するプログラム実行装置であって、
前記コンピュータプログラムは、
前記プログラム部品を関連付ける枠データと、前記プログラム部品間の参照関係を示す参照データと、文字データと、バイナリデータ識別子により特定されるバイナリデータと、を備えるプログラム部品により構成され、
前記枠データ及び前記参照データにより特定される前記文字データ及び前記バイナリデータ識別子に基づいて、前記文字データに対応する予め内部に記憶する解釈プログラム及び前記バイナリデータ識別子に対応する予め内部に記憶するバイナリデータを検出し、前記解釈プログラム及び前記バイナリデータにより前記コンピュータプログラムを実行するプログラム実行装置。
【請求項２】
コンピュータプログラムを構成するプログラム部品を含む枠データと、前記プログラム部品間の参照関係を示す参照データと、文字データと、バイナリデータ識別子により特定されるバイナリデータとを有する前記プログラム部品の入力を受けて、前記プログラム部品を表示する入力表示部と、
前記枠データに含まれる前記文字データに対応する解釈プログラムを予め記憶する解釈プログラム記憶部と、
前記バイナリデータ識別子に対応付けてバイナリデータを記憶するバイナリデータ記憶部と、
前記入力表示部に表示される前記枠データ、前記参照データ、前記文字データを検出するとともに、前記バイナリデータに含まれるバイナリデータ識別子を検出し、前記枠データ、前記参照データ、前記文字データ、前記バイナリデータ識別子を部品情報として検出する部品情報検出部と、
前記部品情報検出部が検出する前記部品情報に含まれる前記参照データ及び前記枠データによって特定される前記文字データに対応する解釈プログラムを前記解釈プログラム記憶部から読み出し、読み出した解釈プログラムにより実行を行い、前記部品情報に含まれるバイナリデータ識別子に基づいて前記バイナリデータ記憶部から対応するバイナリデータを読み出し、読み出したバイナリデータを前記実行に基づいて出力するプログラム実行部と、
を備えたことを特徴とするプログラム実行装置。
【請求項３】
前記プログラム実行部は、
前記部品情報検出部が検出した前記部品情報を入力する入力手段と、
前記入力手段が入力する前記部品情報に含まれる一の枠データに関連付けられる前記文字データと、前記入力手段が入力する前記部品情報に含まれる一の枠データに関連付けられる前記参照データにより特定される前記部品情報と含まれる一の枠データに関連付けられる前記文字データとを検出し、検出した前記文字データに基づいて、前記解釈プログラム記憶部から解釈プログラムを読み出すプログラム読出手段と、
前記入力手段が入力する前記部品情報に含まれるバイナリデータ識別子で識別されるバイナリデータを前記バイナリデータ記憶部から読み出すバイナリデータ読出手段と、
前記プログラム読出手段が読み出す解釈プログラムを、当該解釈プログラムに関連付けられる前記部品情報に基づいて実行させ、前記バイナリデータ読出手段が読み出したバイナリデータを出力する実行手段と、
を備えたことを特徴とする請求項２に記載のプログラム実行装置。
【請求項４】
前記部品情報検出部が検出する前記部品情報から所定の言語にてスクリプトを生成して出力する実行指示生成手段
を更に備えたことを特徴とする請求項２または３に記載のプログラム実行装置。
【請求項５】
前記所定の言語とは、ＸＭＬ、Ｌｉｓｐ、Ｒｕｂｙであることを特徴とする請求項４に記載のプログラム実行装置。
【請求項６】
コンピュータプログラムを構成するプログラム部品を含む枠データと、前記プログラム部品間の参照関係を示す参照データと、文字データと、バイナリデータ識別子により特定されるバイナリデータとを有する前記プログラム部品により実行を行い、前記枠データに含まれる前記文字データに対応する解釈プログラムを予め記憶する解釈プログラム記憶部と、前記バイナリデータ識別子に対応付けてバイナリデータを記憶するバイナリデータ記憶部と、を備えるプログラム実行装置におけるプログラム実行方法であって、
前記枠データと、前記参照データと、前記文字データと、前記バイナリデータとを有する前記プログラム部品の入力するステップと、
入力される前記枠データ、前記参照データ、前記文字データを検出するとともに、前記バイナリデータに含まれるバイナリデータ識別子を検出し、前記枠データ、前記参照データ、前記文字データ、前記バイナリデータ識別子を部品情報として検出するステップと、
検出する前記部品情報に含まれる前記参照データ及び前記枠データによって特定される前記文字データに対応する解釈プログラムを前記解釈プログラム記憶部から読み出すステップと、
検出する前記部品情報に含まれるバイナリデータ識別子に基づいて前記バイナリデータ記憶部から対応するバイナリデータを読み出すステップと、
読み出した解釈プログラムを、当該解釈プログラムに関連付けられる前記部品情報に基づいて実行させるステップと、
読み出したバイナリデータを前記実行に基づいて出力するステップと、
を含むことを特徴とするプログラム実行方法。
【請求項７】
コンピュータプログラムを構成するプログラム部品を含む枠データと、前記プログラム部品間の参照関係を示す参照データと、文字データと、バイナリデータ識別子により特定されるバイナリデータとを有する前記プログラム部品により実行を行い、前記枠データに含まれる前記文字データに対応する解釈プログラムを予め記憶する解釈プログラム記憶部と、前記バイナリデータ識別子に対応付けてバイナリデータを記憶するバイナリデータ記憶部と、を備えるプログラム実行装置におけるプログラム生成方法であって、
前記枠データと、前記参照データと、前記文字データと、前記バイナリデータとを有する前記プログラム部品の入力するステップと、
入力される前記枠データ、前記参照データ、前記文字データを検出するとともに、前記バイナリデータに含まれるバイナリデータ識別子を検出し、前記枠データ、前記参照データ、前記文字データ、前記バイナリデータ識別子を部品情報として検出するステップと、
検出される前記部品情報に基づいてスクリプトを生成するステップと、
を含むことを特徴とするプログラム生成方法。
【請求項８】
コンピュータプログラムを構成するプログラム部品を含む枠データと、前記プログラム部品間の参照関係を示す参照データと、文字データと、バイナリデータ識別子により特定されるバイナリデータとを有する前記プログラム部品により実行を行い、前記枠データに含まれる前記文字データに対応する解釈プログラムを予め記憶する解釈プログラム記憶部と、前記バイナリデータ識別子に対応付けてバイナリデータを記憶するバイナリデータ記憶部と、を備えるプログラム実行装置のコンピュータに、
前記枠データと、前記参照データと、前記文字データと、前記バイナリデータとを有する前記プログラム部品の入力するステップと、
入力される前記枠データ、前記参照データ、前記文字データを検出するとともに、前記バイナリデータに含まれるバイナリデータ識別子を検出し、前記枠データ、前記参照データ、前記文字データ、前記バイナリデータ識別子を部品情報として検出するステップと、
検出する前記部品情報に含まれる前記参照データ及び前記枠データによって特定される前記文字データに対応する解釈プログラムを前記解釈プログラム記憶部から読み出すステップと、
検出する前記部品情報に含まれるバイナリデータ識別子に基づいて前記バイナリデータ記憶部から対応するバイナリデータを読み出すステップと、
読み出した解釈プログラムを、当該解釈プログラムに関連付けられる前記部品情報に基づいて実行させるステップと、
読み出したバイナリデータを前記実行に基づいて出力するステップと、
を実行させるためのコンピュータプログラム。
【請求項９】
コンピュータプログラムを構成するプログラム部品を含む枠データと、前記プログラム部品間の参照関係を示す参照データと、文字データと、バイナリデータ識別子により特定されるバイナリデータとを有する前記プログラム部品により実行を行い、前記枠データに含まれる前記文字データに対応する解釈プログラムを予め記憶する解釈プログラム記憶部と、前記バイナリデータ識別子に対応付けてバイナリデータを記憶するバイナリデータ記憶部と、を備えるプログラム実行装置のコンピュータに、
前記枠データと、前記参照データと、前記文字データと、前記バイナリデータとを有する前記プログラム部品の入力するステップと、
入力される前記枠データ、前記参照データ、前記文字データを検出するとともに、前記バイナリデータに含まれるバイナリデータ識別子を検出し、前記枠データ、前記参照データ、前記文字データ、前記バイナリデータ識別子を部品情報として検出するステップと、
検出される前記部品情報に基づいてスクリプトを生成するステップと、
を実行させるためのコンピュータプログラム。
【請求項１０】
請求項８または９に記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビジュアルプログラムに用いて好適なプログラム実行装置、プログラム実行方法、プログラム生成方法及びコンピュータプログラム並びに記録媒体に関する。
【背景技術】
【０００２】
従来のビジュアルプログラミングは、一般のテキスト型のプログラミングと比べて、プログラミングや実行の把握を直感的に行うことができた。例えば、特許文献１に開示されている技術では、全てのプログラム仕様の記述をＧＵＩ(Graphical User Interface)操作で行い、設計されたプログラム仕様を所定のプログラム言語の形式に変換して出力することにより、全くの初心者でも容易にプログラム開発を行うことを可能としている。
【０００３】
また、特許文献２に開示されている技術では、部品を利用するプログラミングシステムにおいて、部品をソフトウェア部品および、ソフトウェア部品配置用部品の二種類に分割し、その表示形状によって配置可否を視覚的に知らせるプログラミング編集方法が提案されている。
【０００４】
しかし、従来のビジュアルプログラミングシステムでは、可視化されたデータとそれを動かすプログラムとが一体化されていたため、データの可搬性はプログラムの可搬性に依存していた。すなわち、プログラムが実行可能でなければ、データを渡すことができなかった。
【０００５】
ところで、データの可搬性に関して、近年、ＨＴＭＬ(Hyper Text Markup Language)やＳ式(Symbolic expression)など標準とされているデータ構造は、充分や表現力を持ち、データ構造とそれを解釈するプログラム、例えば、ＷｅｂブラウザやＬｉｓｐ処理系等が分離されているために、データの可搬性は高い。特にその可搬性の高さを活かして、そのようなデータ構造で記述されたデータが現在Ｗｅｂ上で盛んに流通、交換されている。
【特許文献１】特開平１０−０２１０６２号公報
【特許文献２】特開平０９−３３０２１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した特許文献１及び２等のビジュアルプログラミングに係る技術では、まずテキスト型のプログラミング言語が存在して、それをビジュアルにプログラム、実行するためのユーザインタフェースを工夫しているに過ぎず、ビジュアルプログラミングとデータとを分離することができないという問題がある。
【０００７】
本発明は、上記問題を解決すべくなされたもので、その目的は、ビジュアルプログラミングの利点である直感的な記述及び操作を活かしつつ、データの可搬性を高めることを可能とするプログラム実行装置、プログラム実行方法、プログラム生成方法及びコンピュータプログラム並びに記録媒体を提供することにある。
【課題を解決するための手段】
【０００８】
上記問題を解決するために、本発明は、コンピュータプログラムを実行するプログラム実行装置であって、前記コンピュータプログラムは、前記プログラム部品を関連付ける枠データと、前記プログラム部品間の参照関係を示す参照データと、文字データと、バイナリデータ識別子により特定されるバイナリデータと、を備えるプログラム部品により構成され、前記枠データ及び前記参照データにより特定される前記文字データ及び前記バイナリデータ識別子に基づいて、前記文字データに対応する予め内部に記憶する解釈プログラム及び前記バイナリデータ識別子に対応する予め内部に記憶するバイナリデータを検出し、前記解釈プログラム及び前記バイナリデータにより前記コンピュータプログラムを実行するプログラム実行装置である。
【０００９】
本発明は、コンピュータプログラムを構成するプログラム部品を含む枠データと、前記プログラム部品間の参照関係を示す参照データと、文字データと、バイナリデータ識別子により特定されるバイナリデータとを有する前記プログラム部品の入力を受けて、前記プログラム部品を表示する入力表示部と、前記枠データに含まれる前記文字データに対応する解釈プログラムを予め記憶する解釈プログラム記憶部と、前記バイナリデータ識別子に対応付けてバイナリデータを記憶するバイナリデータ記憶部と、前記入力表示部に表示される前記枠データ、前記参照データ、前記文字データを検出するとともに、前記バイナリデータに含まれるバイナリデータ識別子を検出し、前記枠データ、前記参照データ、前記文字データ、前記バイナリデータ識別子を部品情報として検出する部品情報検出部と、前記部品情報検出部が検出する前記部品情報に含まれる前記参照データ及び前記枠データによって特定される前記文字データに対応する解釈プログラムを前記解釈プログラム記憶部から読み出し、読み出した解釈プログラムにより実行を行い、前記部品情報に含まれるバイナリデータ識別子に基づいて前記バイナリデータ記憶部から対応するバイナリデータを読み出し、読み出したバイナリデータを前記実行に基づいて出力するプログラム実行部と、を備えたことを特徴とするプログラム実行装置である。
【００１０】
本発明は、上記に記載の発明において、前記プログラム実行部は、前記部品情報検出部が検出した前記部品情報を入力する入力手段と、前記入力手段が入力する前記部品情報に含まれる一の枠データに関連付けられる前記文字データと、前記入力手段が入力する前記部品情報に含まれる一の枠データに関連付けられる前記参照データにより特定される前記部品情報と含まれる一の枠データに関連付けられる前記文字データとを検出し、検出した前記文字データに基づいて、前記解釈プログラム記憶部から解釈プログラムを読み出すプログラム読出手段と、前記入力手段が入力する前記部品情報に含まれるバイナリデータ識別子で識別されるバイナリデータを前記バイナリデータ記憶部から読み出すバイナリデータ読出手段と、前記プログラム読出手段が読み出す解釈プログラムを、当該解釈プログラムに関連付けられる前記部品情報に基づいて実行させ、前記バイナリデータ読出手段が読み出したバイナリデータを出力する実行手段と、を備えたことを特徴とする請求項１に記載のプログラム実行装置である。
【００１１】
本発明は、上記に記載の発明において、前記部品情報検出部が検出する前記部品情報から所定の言語にてスクリプトを生成して出力する実行指示生成手段を更に備えたことを特徴とする。
【００１２】
本発明は、上記に記載の発明において、前記所定の言語とは、ＸＭＬ、Ｌｉｓｐ、Ｒｕｂｙであることを特徴とする。
【００１３】
本発明は、コンピュータプログラムを構成するプログラム部品を含む枠データと、前記プログラム部品間の参照関係を示す参照データと、文字データと、バイナリデータ識別子により特定されるバイナリデータとを有する前記プログラム部品により実行を行い、前記枠データに含まれる前記文字データに対応する解釈プログラムを予め記憶する解釈プログラム記憶部と、前記バイナリデータ識別子に対応付けてバイナリデータを記憶するバイナリデータ記憶部と、を備えるプログラム実行装置におけるプログラム実行方法であって、前記枠データと、前記参照データと、前記文字データと、前記バイナリデータとを有する前記プログラム部品の入力するステップと、入力される前記枠データ、前記参照データ、前記文字データを検出するとともに、前記バイナリデータに含まれるバイナリデータ識別子を検出し、前記枠データ、前記参照データ、前記文字データ、前記バイナリデータ識別子を部品情報として検出するステップと、検出する前記部品情報に含まれる前記参照データ及び前記枠データによって特定される前記文字データに対応する解釈プログラムを前記解釈プログラム記憶部から読み出すステップと、検出する前記部品情報に含まれるバイナリデータ識別子に基づいて前記バイナリデータ記憶部から対応するバイナリデータを読み出すステップと、読み出した解釈プログラムを、当該解釈プログラムに関連付けられる前記部品情報に基づいて実行させるステップと、読み出したバイナリデータを前記実行に基づいて出力するステップと、を含むことを特徴とするプログラム実行方法である。
【００１４】
本発明は、コンピュータプログラムを構成するプログラム部品を含む枠データと、前記プログラム部品間の参照関係を示す参照データと、文字データと、バイナリデータ識別子により特定されるバイナリデータとを有する前記プログラム部品により実行を行い、前記枠データに含まれる前記文字データに対応する解釈プログラムを予め記憶する解釈プログラム記憶部と、前記バイナリデータ識別子に対応付けてバイナリデータを記憶するバイナリデータ記憶部と、を備えるプログラム実行装置におけるプログラム生成方法であって、前記枠データと、前記参照データと、前記文字データと、前記バイナリデータとを有する前記プログラム部品の入力するステップと、入力される前記枠データ、前記参照データ、前記文字データを検出するとともに、前記バイナリデータに含まれるバイナリデータ識別子を検出し、前記枠データ、前記参照データ、前記文字データ、前記バイナリデータ識別子を部品情報として検出するステップと、検出される前記部品情報に基づいてスクリプトを生成するステップと、を含むことを特徴とするプログラム生成方法である。
【００１５】
本発明は、コンピュータプログラムを構成するプログラム部品を含む枠データと、前記プログラム部品間の参照関係を示す参照データと、文字データと、バイナリデータ識別子により特定されるバイナリデータとを有する前記プログラム部品により実行を行い、前記枠データに含まれる前記文字データに対応する解釈プログラムを予め記憶する解釈プログラム記憶部と、前記バイナリデータ識別子に対応付けてバイナリデータを記憶するバイナリデータ記憶部と、を備えるプログラム実行装置のコンピュータに、前記枠データと、前記参照データと、前記文字データと、前記バイナリデータとを有する前記プログラム部品の入力するステップと、入力される前記枠データ、前記参照データ、前記文字データを検出するとともに、前記バイナリデータに含まれるバイナリデータ識別子を検出し、前記枠データ、前記参照データ、前記文字データ、前記バイナリデータ識別子を部品情報として検出するステップと、検出する前記部品情報に含まれる前記参照データ及び前記枠データによって特定される前記文字データに対応する解釈プログラムを前記解釈プログラム記憶部から読み出すステップと、検出する前記部品情報に含まれるバイナリデータ識別子に基づいて前記バイナリデータ記憶部から対応するバイナリデータを読み出すステップと、読み出した解釈プログラムを、当該解釈プログラムに関連付けられる前記部品情報に基づいて実行させるステップと、読み出したバイナリデータを前記実行に基づいて出力するステップと、を実行させるためのコンピュータプログラムである。
【００１６】
本発明は、コンピュータプログラムを構成するプログラム部品を含む枠データと、前記プログラム部品間の参照関係を示す参照データと、文字データと、バイナリデータ識別子により特定されるバイナリデータとを有する前記プログラム部品により実行を行い、前記枠データに含まれる前記文字データに対応する解釈プログラムを予め記憶する解釈プログラム記憶部と、前記バイナリデータ識別子に対応付けてバイナリデータを記憶するバイナリデータ記憶部と、を備えるプログラム実行装置のコンピュータに、前記枠データと、前記参照データと、前記文字データと、前記バイナリデータとを有する前記プログラム部品の入力するステップと、入力される前記枠データ、前記参照データ、前記文字データを検出するとともに、前記バイナリデータに含まれるバイナリデータ識別子を検出し、前記枠データ、前記参照データ、前記文字データ、前記バイナリデータ識別子を部品情報として検出するステップと、検出される前記部品情報に基づいてスクリプトを生成するステップと、を実行させるためのコンピュータプログラムである。
【００１７】
本発明は、上記に記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００１８】
この発明によれば、プログラム実行装置は、プログラム部品を関連付ける枠データと、前記プログラム部品間の参照関係を示す参照データと、文字データと、バイナリデータ識別子により特定されるバイナリデータと、を備えるプログラム部品により構成されるコンピュータプログラムを実行し、枠データ及び前記参照データにより特定される文字データ及びバイナリデータ識別子に基づいて、文字データに対応する予め内部に記憶する解釈プログラム及び前記バイナリデータ識別子に対応する予め内部に記憶するバイナリデータを検出し、解釈プログラム及びバイナリデータによりコンピュータプログラムを実行する構成とした。これにより、枠データと参照データと文字データとバイナリデータという４種類の基本要素だけを用い、これらの配置によってプログラムやデータを分離してコンピュータプログラムを記述することが可能となる。
【００１９】
また、この発明によれば、プログラム実行装置は、枠データに含まれる前記文字データに対応する解釈プログラムを予め記憶する解釈プログラム記憶部と、バイナリデータ識別子に対応付けてバイナリデータを記憶するバイナリデータ記憶部と、を備えている。また、プログラム実行装置は、コンピュータプログラムを構成するプログラム部品を含む枠データと、プログラム部品間の参照関係を示す参照データと、文字データと、バイナリデータ識別子により特定されるバイナリデータとを有するプログラム部品の入力を受けて、プログラム部品を表示する入力表示部と、表示される枠データ、参照データ、文字データを検出するとともに、バイナリデータに含まれるバイナリデータ識別子を検出し、枠データ、参照データ、文字データ、バイナリデータ識別子を部品情報として検出する部品情報検出部と、検出する部品情報に含まれる参照データ及び枠データによって特定される文字データに対応する解釈プログラムを解釈プログラム記憶部から読み出し、読み出した解釈プログラムにより実行を行い、部品情報に含まれるバイナリデータ識別子に基づいてバイナリデータ記憶部から対応するバイナリデータを読み出し、読み出したバイナリデータを実行に基づいて出力するプログラム実行部とを備える構成とした。これにより、解釈プログラムは文字データで特定され、バイナリデータはバイナリデータ識別子により特定されるため、プログラムやデータを分離することが可能となり、ビジュアルプログラミングの利点である直感的な記述及び操作を活かしつつ、データの可搬性を高めることを可能とすることができる。
【００２０】
また、この発明によれば、プログラム実行装置におけるプログラム実行部は、検出した部品情報を入力する入力手段と、入力手段が入力する部品情報に含まれる一の枠データに関連付けられる文字データと、入力手段が入力する部品情報に含まれる一の枠データに関連付けられる参照データにより特定される部品情報と含まれる一の枠データに関連付けられる文字データとを検出し、検出した文字データに基づいて、解釈プログラム記憶部から解釈プログラムを読み出すプログラム読出手段と、入力手段が入力する部品情報に含まれるバイナリデータ識別子で識別されるバイナリデータをバイナリデータ記憶部から読み出すバイナリデータ読出手段と、プログラム読出手段が読み出す解釈プログラムを、当該解釈プログラムに関連付けられる部品情報に基づいて実行させ、バイナリデータ読出手段が読み出したバイナリデータを出力する実行手段と、を備える構成とした。これにより、枠データと参照データと文字データとバイナリデータとにより、十分に表現力のあるデータ記述を実現することが可能とすることが可能となる。
【００２１】
また、この発明によれば、部品情報検出部が検出する部品情報から所定の言語にてスクリプトを生成して出力する実行指示生成手段を更に備える構成とした。これにより、プログラムやデータを分離した状態にて、他のプログラム実行装置で実行可能なスクリプトを生成することが可能となる。
【００２２】
また、この発明によれば、上記の所定の言語とは、ＸＭＬ、Ｌｉｓｐ、Ｒｕｂｙである構成とした。これらの言語を用いることで汎用性を高めることが可能となる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施形態を図面を参照して説明する。
図１は、本実施形態に係るビジュアルプログラムを実行するプログラム実行装置１の内部構成を示す概略ブロック図である。
【００２４】
図１において、入力表示部１０は、ユーザのマウス等の操作を検出し、ユーザの操作に従って構築されるビジュアルプログラムのプログラム部品の配置状態を表示する。ここで、本実施形態におけるプログラム部品とは、枠データ、参照データ、文字データ、バイナリデータの４つである。解釈プログラム記憶部１５は、ビジュアルプログラムを実行する解釈プログラムを文字データに対応付けて記憶する。
【００２５】
バイナリデータ記憶部１２は、バイナリデータごとに予め付与されるバイナリデータ識別子と、バイナリデータとを対応付けて記憶する。
【００２６】
部品情報検出部１１は、入力表示部１０に表示されるプログラム部品から、枠データ、参照データ、文字データ、及びバイナリデータに含まれるバイナリデータ識別子を検出する。以下、部品情報検出部１１により検出される枠データ、参照データ、文字データ、バイナリデータ識別子を部品情報と呼ぶ。
【００２７】
プログラム実行部１３は、入力手段１３−１、バイナリデータ読出手段１３−２、プログラム読出手段１３−３、実行手段１３−４を備えている。プログラム実行部１３において、入力手段１３−１は、部品情報検出部１１から部品情報の入力を受け、入力される部品情報をプログラム読み出し手段１３−３及びバイナリデータ読出手段１３−２に入力する。
【００２８】
バイナリデータ読出手段１３−２は、入力手段１３−１により入力される部品情報に含まれるバイナリデータ識別子に基づいて、バイナリデータ記憶部１６からバイナリデータを読み出す。
【００２９】
プログラム読出手段１３−３は、入力手段１３−１により入力される部品情報の中から枠データを検出する。また、プログラム読出手段１３−３は、部品情報に参照データが存在する場合に、当該参照データに基づいて、参照先となる枠データを検出する。また、プログラム読出手段１３−３は、検出した枠データに含まれる文字データに基づいて、解釈プログラム記憶部１５から対応する解釈プログラムを読み出す。
【００３０】
実行手段１３−４は、プログラム読出手段１３−３によって読み出される解釈プログラム及び部品情報の入力を受けて、解釈プログラムを実行し、実行結果としてバイナリデータ読出手段が読み出したバイナリデータを、後述する入力表示部１０の書き換え対象エリアに出力する。
【００３１】
実行指示生成部１４は、部品情報検出部１１から入力される部品情報に基づいて、解釈プログラム記憶部１５から解釈プログラムを読み出し、また、バイナリデータ記憶部１２からバイナリデータを読み出して、予め設定される所定の言語で記述されるスクリプト、すなわち、コンピュータプログラムを生成する。なお、所定の言語には、例えばＸＭＬ（eXtensible Markup Language）、Ｌｉｓｐ、Ｒｕｂｙ等の汎用性があり、他のコンピュータシステムにて実行可能な言語が適用される。
【００３２】
次に、図２から図８を参照して、本実施形態に係るプログラム実行装置１におけるビジュアルプログラミングについて説明する。上述したように、本実施形態に係るビジュアルプログラミングでは、データの可搬性を高めるために、データとプログラムとの分離を行うことを目的としており、枠データ、参照データ、文字データ、バイナリデータの４種類のプリミティブ（基本要素）を用い、これらの配置によって、プログラムやデータを表現する。
【００３３】
プリミティブのうち、文字データは、例えば、“電話”や“コミュニケーション”などのテキストで表されるデータである。バイナリデータは、ビジュアルな表示イメージを伴うバイナリデータである。ビジュアルプログラミングを行う二次元平面上では、例えば、バイナリデータは、図２（ａ）や図２（ｂ）に示される１つのビットマップとなる。
【００３４】
枠データは、文字データやバイナリデータを囲んで関連付ける、すなわちグルーピングするためのプリミティブである。例えば、図３には、“ａｂｃ”の文字データ２０ａと星型のビットマップ、すなわちバイナリデータ２０ｂと、文字データ２０ａとバイナリデータ２０ｂとを含む１つの枠データ２０が示されている。なお、通常はこれらのデータが複数個配置され、ビジュアルプログラムが構成されているものとする。
【００３５】
このように他のプリミティブデータを１つの枠データで囲むことは、従来のプログラミング言語で言えば、複合項を構成することに等しい。つまり、図３を従来のプログラミング言語、あるいは標準的データ記述法で表現することができる。
【００３６】
すなわち、「ａｂｃ（星型の絵）」、あるいは「（ａｂｃ  星型の絵）」、あるいは「＜ａｂｃ＞＜ｂｉｔｍａｐ  ｎａｍｅ＝星型の絵．／＞＜ａｂｃ＞」として表現できる。
【００３７】
次に、参照データについて説明する。参照データは、平面上の２点、すなわち「参照元」のプリミティブデータと「参照先」のプリミティブデータの参照に関する適当なパラメータから構成される。参照の機能は、従来のプログラミング言語で言えば、関数や手続きの実行、あるいはＬｉｓｐのｅｖａｌ関数に対応する。
【００３８】
例えば、図４（ａ）のビジュアルプログラムを例として説明すると、図４（ａ）には、 “格子模様”という文字データ２４ａと、白い星のビットマップ、すなわちバイナリデータ２４ｂと、これらを含む枠データ２４が示されている。矢印２５は、参照データによる「参照元」と「参照先」の関係を示している。「参照元」には、当該枠データ２４をプログラム実行装置１の実行手段１３−４が解釈プログラムに基づいて解釈実行した際に出力される格子模様の星のイメージ、すなわちバイナリデータ２６が表示されることとなる。
【００３９】
ここで、注意すべき点は、枠データ２４をどのように解釈するかは、プログラム実行装置１の実行手段１３−４が実行する解釈プログラムに依存しているという点である。すなわち、解釈プログラム記憶部１５に記憶される解釈プログラムを置き換えることにより異なる結果となり得るということであり、これがプログラムとデータとを分離していることを示している。例えば、別の解釈プログラムの場合には、同じ枠データ２４に含まれる“格子模様”の文字データ２４ａに対して異なる解釈を行い、参照元に図４（ｂ）のような星が塗りつぶされたバイナリデータ２７が表示される場合もある。なお、プログラム実行装置１がインタラクティブに動作するか否かも解釈プログラムに依存する。
【００４０】
さらに、注意すべき点は、参照データに基づいて表示されているイメージ自体（バイナリデータ２６及び２７）はプリミティブデータではないという点である。仮に、図４（ａ）の枠データ２４の中の白い星のバイナリデータ２４ｂを別の図形に入れ替える、すなわち、バイナリデータ記憶部１６に記憶されるバイナリデータ識別子に対応するバイナリデータを入れ替えると、新たに入れ替えた図形を同様の格子模様で塗りつぶしたようなイメージが参照元に表示されることになる。また、参照データに関連したパラメータによって、参照元で表示されるイメージを拡大あるいは縮小したり、回転させたりすることが可能である。
【００４１】
また、参照データは、入れ子にして配置することもでき、枠データも入れ子にして配置することができる。入れ子とは、図５に示すようなプリミティブの配置、すなわち、枠データ４０にバイナリデータ４０ｂとバイナリデータ４０ｃが含まれており、それぞれが、枠データ４１と枠データ４２への参照データを有している配置のことをいう。このとき、“繰り返し表示”の文字データ４０ａに対応する解釈プログラムが実行手段１３−４により実行されることで、実行手段１３−４が、枠データ４１と枠データ４２の表示を繰り返し切り替えて書き換え対象エリア４５に出力し、ハートのイメージが拡大、縮小を繰り返すような簡単なアニメーションを制作することができる。なお、上述したようにアニメーションとしての動作は、枠データ４０に含まれている“繰り返し表示”の文字データ４０ａに対応する解釈プログラムの仕様に依存する。
【００４２】
図５において示されている本実施形態に係るビジュアルプログラミングの効果は２点存在する。すなわち、データ記述とプログラムの仕様が分離しており、高い可搬性が実現されている点と、十分に表現力の高いデータ記述を実現している点である。
【００４３】
後者については、少なくともアニメーションを制作するのに十分な情報量が記述できており、標準的データ記述法によって等価なデータ項として記述することもできる。また、後者はさらに、プリミティブの配置が情報の全てであることを意味している。つまり、プリミティブをどの順序で配置したか、プリミティブをどのようにドラッグしたかなどの動的な情報は全く含まれていないということである。一般にこのような性質は宣言的と呼ばれている。
【００４４】
上記の図２から図５の例では、必ず枠データの中に他のプリミティブが含まれるような場合、すなわち一般には整形式（well-formed）と呼ばれる場合について説明したが、図６に示す例のように、プリミティブデータが２つの枠データに重なるように配置される場合も考えられる。このような配置をどのように解釈するかは解釈プログラムに依存するが、標準的データ記述法では、等価なデータ構造を構成することは難しく、他の記述法などの適用を検討する必要がある。
【００４５】
次に、図７を参照して、一般のプログラミング言語に含まれている変数に相当する機能を本実施形態に係るビジュアルプログラミングにて実現する手段について説明する。
【００４６】
例えば、図７に示すように、一つの枠データ６０を複数の参照元となるイメージ（６１及び６２）から参照することで、１度だけ書き込みができ、読み出しについては何度も可能な変数、すなわち論理変数を実現することができる。何度でも書き込みができ、何度でも読み出しのできる一般の変数を含むようなプログラムを、論理変数だけを含む等価なプログラムに書き換えることが可能であることは知られており、図７に示すビジュアルプログラミングに基づいて、何度でも書き込みができ、何度でも読み出しのできるビジュアルプログラミングを構成することが可能となる。
【００４７】
次に、図８を参照して、一般のプログラミング言語に含まれている条件判定に相当する機能を本実施形態に係るビジュアルプログラミングにて実現する手段について説明する。
【００４８】
図８に示される通り、「Ｒｕｌｅ」という文字データ７３ａ及び７４ａを含む２つの枠データ７３、７４を配置する。枠データ７３には、左側に黒丸のバイナリデータ７３ｂと、右側に白丸のバイナリデータ７３ｃが配置されている。また、枠データ７４には左側に白丸のバイナリデータ７４ｂと、右側に黒丸のバイナリデータ７４ｃが配置されている。枠データ７３は、書き換え対象エリア７５に黒丸を検出すると白丸に書き換える規則を示しており、枠データ７４は、書き換え対象エリア７５に白丸を検出すると黒丸に書き換える規則を示している。「Ｉｎｉｔ」の文字データ７２ａを含む枠データ７２は、書き換え対象エリア７５の初期状態を黒丸にする規則を示している。
【００４９】
枠データ７０は、「Ｒｕｌｅ  Ｉｎｔｅｒｐｒｅｔｅｒ」の文字データ７１を含んでおり、更に、枠データ７２、７３、７４を含んでいる。枠データ７０がプログラム読出手段１３−３により参照されると、枠データ７０に含まれる文字データ７１の「Ｒｕｌｅ  Ｉｎｔｅｒｐｒｅｔｅｒ」に対応する解釈プログラムが解釈プログラム記憶部１５から読み出されて実行手段１３−４により起動され、当該解釈プログラムにより初期状態を示す枠データ７２が参照される。そして、実行手段１３−４により書き換え対象エリア７５にバイナリデータ読出手段１３−２によりバイナリデータ記憶部１６から読み出されるバイナリデータである黒丸が表示される。
【００５０】
次に、プログラム読出手段１３−３により枠データ７３が参照され、プログラム読出手段１３−３が枠データ７３に含まれる文字データ７３ａの「Ｒｕｌｅ」に対応する解釈プログラムを解釈プログラム記憶部１５から読み出し、読み出される解釈プログラムが実行手段１３−４によって実行されることにより、書き換え対象エリア７５の黒丸が検出されて白丸に書き換えられる。
【００５１】
次に、プログラム読出手段１３−３により枠データ７４が参照され、プログラム読出手段１３−３が枠データ７４に含まれる文字データ７４ａの「Ｒｕｌｅ」に対応する解釈プログラムを解釈プログラム記憶部１５から読み出し、読み出される解釈プログラムが実行手段１３−４によって実行されることにより、書き換え対象エリア７５の白丸が検出され、黒丸に書き換えられる。
【００５２】
プログラム読出手段１３−３による枠データ７３と枠データ７４が交互に参照される処理がその後繰り返し継続され、実行手段１３−４により起動されるそれぞれの解釈プログラムにより黒丸と白丸が交互に書き換え対象エリア７５に表示されるアニメーションを制作することができる。このとき、書き換え対象エリア７５に黒丸と白丸があるかを条件判定しているのが「Ｒｕｌｅ」という文字データ７３ａ及び７４ａを含む枠データ７３と枠データ７４である。この記述は、既存のプログラミング言語であるＰｒｏｌｏｇによる条件判定に類似している。
【００５３】
図９は、上述したプログラム実行装置１に係る動作を示したフローチャートであり、上述したプログラム実行装置１の各機能を実現する際の基本的な動作を示したものである。
【００５４】
まず最初に、入力表示部１０がユーザのマウス等の操作を検出し、ユーザの操作によって構築されるビジュアルプログラミングを画面に表示する。このとき、図４に示すような参照元のバイナリデータが表示されると共に参照先となる枠データと、前記バイナリデータと枠データとを結ぶ参照データ等が生成される。また、枠データの枠内には、解釈プログラムを指定するための文字データも配置される。そして、ユーザの操作により、実行が開始される（ステップＳ１）。部品情報検出部１１は、入力表示部１０に表示されるプログラム部品から枠データ、文字データ、参照データ、バイナリデータ識別子からなる部品情報を検出し、プログラム実行部１３の入力手段１３−１に入力する。入力手段１３−１は、入力される部品情報をプログラム読出手段１３−３及びバイナリデータ読出手段１３−２に入力する。プログラム読出手段１３−３は、入力手段１３−１から入力される部品情報の中から枠データを検出する。なお、この段階でバイナリデータ読出手段１３−２は入力されるバイナリデータ識別子に基づいてバイナリデータ記憶部１６からバイナリデータを読み出す（ステップＳ２）。そして、プログラム読出手段１３−３は、さらに枠データの枠内に含まれる文字データを検出する（ステップＳ３）。
【００５５】
文字データを検出したプログラム読出手段１３−３は、検出した文字データに対応する解釈プログラムを解釈プログラム記憶部１５から読み出す（ステップＳ４）。さらに、プログラム読出手段１３−３は、当該枠データの枠内に存在し、解釈プログラムの引数となる部品情報、例えば図４におけるバイナリデータ２４ｂなどを検出する。そして、プログラム読出手段１３−３は、検出した部品情報が参照データであるか否かを判定する（ステップＳ６）。検出した部品情報が参照データの場合、上述した入れ子の状態となっているため、参照データに基づいて参照先の部品情報を検出し、検出した部品情報に基づいて、上記のステップＳ２の処理を行う（ステップＳ７）。一方、検出した部品情報が参照データでない場合、あるいはステップＳ７の処理が終了した場合、次に、プログラム読出手段１３−３は、検出した部品情報が枠データであるか否かを判定する（ステップＳ８）。検出した部品情報が枠データである場合には、当該枠データを検出し、上記のステップＳ３の処理を行う（ステップＳ９）。一方、検出した部品情報が枠データでない場合、あるいはステップＳ９の処理が終了した場合、プログラム読出手段１３−３は、読み出した解釈プログラムと引数に相当する部品情報とを実行手段１３−４に入力する。実行手段１３−４は、入力される解釈プログラム及び部品情報に基づいて実行を行い、バイナリデータ読出手段１３−２が読み出したバイナリデータを出力する（ステップＳ１０）。
【００５６】
なお、実行指示生成部１４における処理は、図９の処理において、最後のステップＳ１０の処理が、実行手段１３−４による解釈プログラムの実行ではなく、プログラム読出手段１３−３から入力される解釈プログラム及び部品情報に基づいて予め設定される所定の言語のスクリプトへ変換する処理以外についてはプログラム実行部１３の処理と同じである。
【００５７】
上記の実施形態の構成により、枠データと、参照データと、文字データと、バイナリデータの４種類のプリミティブデータだけによってプログラムやデータを分離して表現することが可能となる。さらに、バイナリデータについては、バイナリデータに含まれるバイナリデータ識別子のみを検出し、検出したバイナリデータ識別子に基づいてプログラム実行装置１が動作し、バイナリデータを表示する際には検出したバイナリデータ識別子に基づいてバイナリデータ記憶部１２から読み出したバイナリデータを出力するため、データとプログラムを分離することができ、データの可搬性を高めることが可能となっている。
【００５８】
上述のプログラム実行装置１は内部に、コンピュータシステムを有している。そして、上述した実行手段１３−４及び実行指示生成部１４における処理は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【図面の簡単な説明】
【００５９】
【図１】本実施形態に係るプログラム実行装置の内部構成を示すブロック図である。
【図２】同実施形態に係るバイナリデータを示した図である。
【図３】同実施形態に係るプリミティブデータの配置を示した図である。
【図４】同実施形態に係るプリミティブデータ間の参照を説明するための図である。
【図５】同実施形態に係るプリミティブデータの入れ子の構成を説明するための図である。
【図６】同実施形態に係る枠データ間で重複するプリミティブデータを説明するための図である。
【図７】同実施形態に係る変数を構成するビジュアルプログラミングを示した図である。
【図８】同実施形態に係る条件判定を構成するビジュアルプログラミングを示した図である。
【図９】同実施形態に係るプログラム実行装置における処理を示したフローチャートである。
【符号の説明】
【００６０】
１  プログラム実行装置
１０  入力表示部
１１  部品情報検出部
１３  プログラム実行部
１４  実行指示生成部
１５  解釈プログラム記憶部
１６  バイナリデータ記憶部
【図１】
2007034442.tif 000003
【図２】
2007034442.tif 000004
【図３】
2007034442.tif 000005
【図４】
2007034442.tif 000006
【図５】
2007034442.tif 000007
【図６】
2007034442.tif 000008
【図７】
2007034442.tif 000009
【図８】
2007034442.tif 000010
【図９】
2007034442.tif 000011