(57)【特許請求の範囲】
【請求項１】
文字データで構成された関数と接続文字とが組み合わされたテキストベースの
プログラミング言語データであって、テキストエディタによる表示空間上での前
記接続文字を基準とした各前記関数の位置関係によって各前記関数の関連性が定
義され、前記関数には、判別処理を表す判別関数があり、前記接続文字には、前
記表示空間上における横方向に離間した前記関数間を接続する第一接続文字と縦
方向に離間した前記関数間を接続する第二接続文字とがあるプログラミング言語
データを記憶する記憶部と、
前記プログラミング言語データにおける文字列から前記関数と前記接続文字と
を切り分け、前記表示空間上の前記位置関係から各前記関数の関連性を解釈する
処理として、前記プログラミング言語データにおける各行ごとに文字データの種
類を一文字ずつ識別して前記関数と前記接続文字の切り分けを行い、前記関数が
前記判別関数であるか否かを判別し、前記判別関数としての関数については、該
関数に対し前記第一接続文字を介して右側に接続された関数をＹｅｓ分岐又はＮ
ｏ分岐のうち一方の分岐後の関数として関連付けし、該関数に対し前記第二接続
文字を介して下側に接続された関数をＹｅｓ分岐又はＮｏ分岐のうち他方の分岐
後の関数として関連付けする処理を行う解釈処理部と、を備える
情報処理装置。
【請求項２】
前記解釈処理部は、
前記判別関数であるか否かを、前記関数内の所定文字の有無により判別する
請求項１に記載の情報処理装置。
【請求項３】
前記解釈処理部は、
前記横方向に連続配置されている前記第一接続文字、前記縦方向に連続配置さ
れている前記第二接続文字を一体として扱う
請求項１に記載の情報処理装置。
【請求項４】
前記解釈処理部は、
各前記関数の関連性を解釈した結果に基づいて、機械語へ変換する前段階のコ
ードとしての中間コードを生成する
請求項１に記載の情報処理装置。
【請求項５】
前記中間コードに従った処理を前記関数の単位に基づく所定のモジュール単位
で逐次実行させる制御を行う実行制御部を備える
請求項４に記載の情報処理装置。
【請求項６】
文字データで構成された関数と接続文字とが組み合わされたテキストベースの
プログラミング言語データであって、テキストエディタによる表示空間上での前
記接続文字を基準とした各前記関数の位置関係によって各前記関数の関連性が定
義され、前記関数には、判別処理を表す判別関数があり、前記接続文字には、前
記表示空間上における横方向に離間した前記関数間を接続する第一接続文字と縦
方向に離間した前記関数間を接続する第二接続文字とがあるプログラミング言語
データを記憶する記憶部を備えた情報処理装置における情報処理方法であって、
前記プログラミング言語データにおける文字列から前記関数と前記接続文字と
を切り分け、前記表示空間上の前記位置関係から各前記関数の関連性を解釈する
処理として、前記プログラミング言語データにおける各行ごとに文字データの種
類を一文字ずつ識別して前記関数と前記接続文字の切り分けを行い、前記関数が
前記判別関数であるか否かを判別し、前記判別関数としての関数については、該
関数に対し前記第一接続文字を介して右側に接続された関数をＹｅｓ分岐又はＮ
ｏ分岐のうち一方の分岐後の関数として関連付けし、該関数に対し前記第二接続
文字を介して下側に接続された関数をＹｅｓ分岐又はＮｏ分岐のうち他方の分岐
後の関数として関連付けする処理を行う解釈手順を有する
情報処理方法。
【請求項７】
文字データで構成された関数と接続文字とが組み合わされたテキストベースの
プログラミング言語データであって、テキストエディタによる表示空間上での前
記接続文字を基準とした各前記関数の位置関係によって各前記関数の関連性が定
義され、前記関数には、判別処理を表す判別関数があり、前記接続文字には、前
記表示空間上における横方向に離間した前記関数間を接続する第一接続文字と縦
方向に離間した前記関数間を接続する第二接続文字とがあるプログラミング言語
データを記憶する記憶部を備えた情報処理装置に処理を実行させるプログラムで
あって、
前記プログラミング言語データにおける文字列から前記関数と前記接続文字と
を切り分け、前記表示空間上の前記位置関係から各前記関数の関連性を解釈する
処理として、前記プログラミング言語データにおける各行ごとに文字データの種
類を一文字ずつ識別して前記関数と前記接続文字の切り分けを行い、前記関数が
前記判別関数であるか否かを判別し、前記判別関数としての関数については、該
関数に対し前記第一接続文字を介して右側に接続された関数をＹｅｓ分岐又はＮ
ｏ分岐のうち一方の分岐後の関数として関連付けし、該関数に対し前記第二接続
文字を介して下側に接続された関数をＹｅｓ分岐又はＮｏ分岐のうち他方の分岐
後の関数として関連付けする処理を行う解釈処理
を前記情報処理装置に実行させる
プログラム。
【請求項８】
文字データで構成された関数と接続文字とが組み合わされたテキストベースの
プログラミング言語データであって、テキストエディタによる表示空間上での前
記接続文字を基準とした各前記関数の位置関係によって各前記関数の関連性が定
義され、前記関数には、判別処理を表す判別関数があり、前記接続文字には、前
記表示空間上における横方向に離間した前記関数間を接続する第一接続文字と縦
方向に離間した前記関数間を接続する第二接続文字とがあるプログラミング言語
データを記憶する記憶部を備えた情報処理装置に処理を実行させるプログラムを
記憶した記憶媒体であって、
前記プログラミング言語データにおける文字列から前記関数と前記接続文字と
を切り分け、前記表示空間上の前記位置関係から各前記関数の関連性を解釈する
処理として、前記プログラミング言語データにおける各行ごとに文字データの種
類を一文字ずつ識別して前記関数と前記接続文字の切り分けを行い、前記関数が
前記判別関数であるか否かを判別し、前記判別関数としての関数については、該
関数に対し前記第一接続文字を介して右側に接続された関数をＹｅｓ分岐又はＮ
ｏ分岐のうち一方の分岐後の関数として関連付けし、該関数に対し前記第二接続
文字を介して下側に接続された関数をＹｅｓ分岐又はＮｏ分岐のうち他方の分岐
後の関数として関連付けする処理を行う解釈処理
を前記情報処理装置に実行させるプログラムを記憶した
記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置とその方法、情報処理装置を実現するプログラム、及びプログラムを記憶した記憶媒体に係るものであり、特に、ビジュアルプログラミング言語を解釈するための技術分野に関する。
【先行技術文献】
【特許文献】
【０００２】
【特許文献１】特開２００５−３０９５９３号公報
【特許文献２】特開２００５−２４２６８２号公報
【背景技術】
【０００３】
例えばフローチャートやファンクションブロックダイアグラム等によりプログラム内容を視覚的に理解し易く表すビジュアルプログラミング言語（以下「ＶＰＬ（Visual Programming Language）」と表記）が知られている（例えば上記特許文献１，２を参照）。
ＶＰＬによるプログラム作成は、プログラムエディタにより提供される表示空間上にてプログラムオブジェクトを配置し、プログラムオブジェクト間を接続線により接続する等によりプログラムオブジェクト間の関係を関連付けることで行われる。
ＶＰＬは、例えばＣ言語等の他の非ＶＰＬプログラミング言語と比較して、プログラム内容を直感的に理解し易く、編集もし易いという利点がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、既存のＶＰＬでは、例えばフローチャートにおけるひし形ボックス（判別処理）などそれぞれに意味を持たせた「箱」が複数種類用意された環境の下で、箱の配置・箱内への文字入れ・箱間を接続線で繋ぐ等の作業を行ってプログラムの作成が行われている。そのため、プログラムの作成や編集を行うにあたっては、単純な作図ソフトではなく専用のソフトを用いる必要がある。
また、テキストデータ以外に、例えば上記の「箱」のようなプログラムオブジェクトである旨を視覚的に分かり易く表すための特殊な属性によるデータも用いるため、Ｃ言語等のテキストデータのみで作成可能なプログラミング言語と比較してプログラムのデータサイズが大きくなってしまうという問題もある。【０００５】
そこで、本発明では上記した問題を克服し、ビジュアルプログラミング言語についてより汎用性の高いプログラミング環境を提供すると共に、プログラムデータサイズの縮小化を図ることを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る情報処理装置は、文字データで構成された関数と接続文字とが組
み合わされたテキストベースのプログラミング言語データであって、テキストエ
ディタによる表示空間上での前記接続文字を基準とした各前記関数の位置関係に
よって各前記関数の関連性が定義され、前記関数には、判別処理を表す判別関数
があり、前記接続文字には、前記表示空間上における横方向に離間した前記関数
間を接続する第一接続文字と縦方向に離間した前記関数間を接続する第二接続文
字とがあるプログラミング言語データを記憶する記憶部を備える。
また、前記プログラミング言語データにおける文字列から前記関数と前記接続
文字とを切り分け、前記表示空間上の前記位置関係から各前記関数の関連性を解
釈する処理として、前記プログラミング言語データにおける各行ごとに文字デー
タの種類を一文字ずつ識別して前記関数と前記接続文字の切り分けを行い、前記
関数が前記判別関数であるか否かを判別し、前記判別関数としての関数について
は、該関数に対し前記第一接続文字を介して右側に接続された関数をＹｅｓ分岐
又はＮｏ分岐のうち一方の分岐後の関数として関連付けし、該関数に対し前記第
二接続文字を介して下側に接続された関数をＹｅｓ分岐又はＮｏ分岐のうち他方
の分岐後の関数として関連付けする処理を行う解釈処理部を備えるものである。
【０００７】
本発明で対象とするプログラミング言語は、テキストベースでありながら、テ
キストエディタによる表示空間上における接続文字を基準とした各関数の位置関
係によってそれら関数間の関連性が視覚的に理解し易く表される。つまり、ビジ
ュアルプログラミング言語（以下「ＶＰＬ（Visual Programming Language）」と表
記する）として機能する。このようなテキストベースのＶＰＬ（以下「テキスト
ＶＰＬ」と表記）は、プログラムの作成・編集にあたり専用のソフトウェアを必
要とせず、汎用性の高いプログラミング環境を実現できる。また、テキストベー
スであるため、プログラムデータサイズも比較的小さくできる。
本発明の情報処理装置は、このようなテキストＶＰＬを用いたプログラミング
環境を実現するべく、テキストＶＰＬの解釈を可能としたものである。特に、視
覚的にフローチャートとして表されたプログラムの解釈を可能としたものである。
【００１０】
また、上記した本発明に係る情報処理装置においては、前記解釈処理部は、前
記判別関数であるか否かを、前記関数内の所定文字の有無により判別することが
望ましい。
【００１１】
関数内の所定文字の有無で判別関数か否かの判別を行うようにすることで、判別関数か否かの判別にあたり対象関数の１行下までを読み込む必要がなくなるようにしている。【００１２】
また、上記した本発明に係る情報処理装置においては、前記解釈処理部は、前
記横方向に連続配置されている前記第一接続文字、前記縦方向に連続配置されて
いる前記第二接続文字を一体として扱うことが望ましい。
【００１３】
これにより、テキストＶＰＬの記述ルールとして、第一接続文字、第二接続文字を連続配置することが許容される。【００１４】
また、上記した本発明に係る情報処理装置においては、前記解釈処理部は、各
前記関数の関連性を解釈した結果に基づいて、機械語へ変換する前段階のコード
としての中間コードを生成することが望ましい。
【００１５】
これにより、テキストＶＰＬは、例えばＣ言語等の所要のプログラミング言語による中間コードに変換される。【００１６】
また、上記した本発明に係る情報処理装置は、前記中間コードに従った処理を
前記関数の単位に基づく所定のモジュール単位で逐次実行させる制御を行う実行
制御部を備えることが望ましい。
【００１７】
逐次実行型とされることで、プログラム修正に柔軟に対応可能となり、また、処理の実行にあたって中間コードの全てを機械語に変換する必要性がなくなる。【００１８】
また、本発明に係る情報処理方法は、文字データで構成された関数と接続文字
とが組み合わされたテキストベースのプログラミング言語データであって、テキ
ストエディタによる表示空間上での前記接続文字を基準とした各前記関数の位置
関係によって各前記関数の関連性が定義され、前記関数には、判別処理を表す判
別関数があり、前記接続文字には、前記表示空間上における横方向に離間した前
記関数間を接続する第一接続文字と縦方向に離間した前記関数間を接続する第二
接続文字とがあるプログラミング言語データを記憶する記憶部を備えた情報処理
装置における情報処理方法であって、前記プログラミング言語データにおける文
字列から前記関数と前記接続文字とを切り分け、前記表示空間上の前記位置関係
から各前記関数の関連性を解釈する処理として、前記プログラミング言語データ
における各行ごとに文字データの種類を一文字ずつ識別して前記関数と前記接続
文字の切り分けを行い、前記関数が前記判別関数であるか否かを判別し、前記判
別関数としての関数については、該関数に対し前記第一接続文字を介して右側に
接続された関数をＹｅｓ分岐又はＮｏ分岐のうち一方の分岐後の関数として関連
付けし、該関数に対し前記第二接続文字を介して下側に接続された関数をＹｅｓ
分岐又はＮｏ分岐のうち他方の分岐後の関数として関連付けする処理を行う解釈
手順を有する情報処理方法である。
【００１９】
本発明に係る情報処理方法としても、上記した本発明に係る情報処理装置と同
様に、テキストＶＰＬを用いたプログラミング環境を実現するべく、テキストＶ
ＰＬの解釈を可能としたものである。特に、視覚的にフローチャートとして表さ
れたプログラムの解釈を可能としたものである。
【００２０】
さらに、本発明に係るプログラムは、上記情報処理方法として実行する処理を情報処理装置に実行させるプログラムである。
さらにまた、本発明に係る記憶媒体は、上記プログラムを記憶したプログラムである。これらのプログラムや記憶媒体により上記の情報処理装置を実現する。
【発明の効果】
【００２１】
本発明によれば、テキストＶＰＬの解釈を可能とすることで、テキストＶＰＬ
に従った処理をコンピュータ装置にて実行可能とでき、テキストＶＰＬを用いた
プログラミング環境を実現できる。
従って、汎用性の高いプログラミング環境を実現できると共に、プログラムデ
ータサイズの縮小化を図ることができる。
また、フローチャートという視覚的により理解のし易い形態でプログラムを作
成・編集することを許容でき、プログラムの作成・編集の容易性向上を図ること
ができる。
【図面の簡単な説明】
【００２２】
【図１】実施の形態のネットワークシステムの例を示した図である。
【図２】実施の形態のコンピュータ装置のブロック図である。
【図３】テキストＶＰＬの説明図である。
【図４】テキストＶＰＬで記述されたプログラムに従った処理をコンピュータ装置に実行させるための構成について説明するための図である。
【図５】図３に示したテキストＶＰＬによるプログラムを中間コードに変換した例を示した図である。
【図６】テキストＶＰＬを解釈するにあたって実行する具体的な処理の手順を示したフローチャートである。
【図７】同じく、テキストＶＰＬを解釈するにあたって実行する具体的な処理の手順を示したフローチャートである。
【発明を実施するための形態】
【００２３】
以下、実施の形態を次の順序で説明する。
＜１．ネットワークシステム＞
＜２．コンピュータ装置のハードウェア構成＞
＜３．テキストＶＰＬ＞
＜４．テキストＶＰＬの解釈及び処理の実行制御について＞
＜５．処理手順＞
＜６．実施の形態のまとめ＞
＜７．プログラム及び記憶媒体＞
＜８．変形例＞
【００２４】
＜１．ネットワークシステム＞
図１に、本実施の形態で前提とするネットワークシステム１の例を示す。このネットワークシステム１はＥＣ（ＥＣ：electronic commerce（電子商取引））システムとして機能する。
ネットワークシステム１は、例えばインターネットとしてのネットワーク２を介して、ショッピングサイト管理システム３、複数のユーザ端末４，４…、複数の店舗端末５，５…が互いに通信可能に構成されている。
【００２５】
ユーザ端末４は、ウェブブラウザを備えたコンピュータ装置である。ユーザ端末４としては、例えば高機能携帯電話機（スマートフォン）や携帯電話機、携帯情報端末（ＰＤＡ）、携帯型又は据置型のパーソナルコンピュータ（ＰＣ）などが挙げられるが、ユーザ端末４の種類はこれらに限定されない。
ユーザ端末４は、ＨＴＴＰ（Hypertext Transfer Protocol）リクエストをショッピングサイト運営システム３に送信することでウェブページや所定の処理を要求する。またユーザ端末４は、ＨＴＴＰリクエストに応じて送られてきたウェブページを受信してウェブブラウザ上に表示する。これにより、ユーザは所望のウェブページを閲覧したり操作したりすることができる。
【００２６】
ショッピングサイト運営システム３は、それぞれコンピュータ装置で構成されたショッピングサーバ３ａ、商品ＤＢ（データベース）３ｂ、会員ＤＢ３ｃ、及び制御端末３ｄを備えている。これらの各装置は、例えばＬＡＮ（Local Area Network）等のネットワークを介して互いに通信可能とされている。
【００２７】
ショッピングサーバ３ａは、ユーザ端末４から送られてきたＨＴＴＰリクエストに基づいて様々な処理を行う。例えば、各種ウェブページ（例えば商品ウェブページ、買い物かごウェブページ、注文ウェブページなど）の生成及び送信や、ユーザによる注文確定操作に応じた購入処理等を実行する。
【００２８】
ネットワークシステム１では、ショッピングサーバ３ａにより仮想商店街のウェブサイト（ＥＣサイト）がユーザ（ユーザ端末４のユーザ）に提供される。ＥＣサイト内には複数の店舗（仮想商店街の加盟店）が存在する。各店舗のスタッフが自店舗の商品を店舗端末５としてのコンピュータ装置を介して登録することで、様々な店舗の様々な商品がＥＣサイト上にアップロードされる。ユーザはユーザ端末４によりＥＣサイトにアクセスして所望の商品を購入することができる。
【００２９】
商品ＤＢ３ｂには、店舗端末５を介して登録された商品に係る情報が記憶されている。具体的には、商品を識別するための識別子である商品ＩＤに対応づけられて、商品名、種類、商品の画像、スペック、商品紹介の要約文等の商品情報や、広告情報等が記憶されている。また、商品ＤＢ３ｂには、ＨＴＭＬ（HyperText Markup Language）、ＸＭＬ（Extensible Markup Language）等のマークアップ言語等により記述された商品ウェブページのファイル等も記憶されている。
このような商品ＤＢ３ｂにより、例えば入力キーワード等に基づいた商品検索等を行うことが可能とされている。
【００３０】
ここで、ユーザは、ＥＣサイトを利用するにあたり、ショッピングサイト管理システム３に会員登録を行うことができる。会員登録の際にユーザは、ユーザＩＤ（ユーザ識別情報）や商品の送付先情報（住所情報）、クレジットカード番号等の必要情報を登録する。ユーザは、登録したユーザＩＤによりＥＣサイトにログインすることで、ＥＣサイトでの商品の購入の際に必要情報を再度入力する手間が省かれる。
【００３１】
会員ＤＢ３ｃには、上記の会員登録時に登録されたユーザＩＤ等の情報など、会員ごとに管理されるべき情報が記憶されている。会員ＤＢ３ｃに記憶される情報としては、例えば会員の個人情報（氏名、年齢、生年月日、性別、住所等）などがある。また、特に本例の場合、会員ＤＢ３ｃには、会員ごとの商品ウェブページ閲覧履歴情報や商品購入履歴情報なども記憶されている。
【００３２】
また、ショッピングサーバ３ａは、ＥＣサイトにおける所定のウェブページ（例えばトップページ等）に広告データを表示させる処理も実行する。この際、ショッピングサーバ３ａは、表示させる広告データが会員ＤＢ３ｃに記憶されている情報やそれら情報から分析された会員の属性情報（例えば趣味・趣向など）等に基づいて出し分けられるようにしている。
【００３３】
制御端末３ｄは、本発明情報処理装置の一実施形態であり、本実施の形態においては、ショッピングサーバ３ａについての各種動作テストを行う場合において、ショッピングサーバ３ａが実行する処理の制御を行うために用いられる。
本例の場合、動作テストとしては、前述した広告データの出し分けにあたって表示候補の広告データのうち何れの広告データを表示すべきかをテストする比較テスト（いわゆるＡ／Ｂテスト）の形式で行われる。具体的に、この場合のＡ／Ｂテストとしては、例えば「男性」に対応する広告データの候補として「車」「時計」の広告データが存在する場合において、ウェブページを閲覧する会員が「男性」であった場合に当該ウェブページに「車」の広告データを表示させてその反応の評価結果を得ると共に、「時計」の広告データを表示させてその反応の評価結果を得、評価結果が良好であった方の広告データを表示すべき広告データとして選定するなどといった形態で行われる。このとき、「評価結果」としては、例えば表示広告についてのＣＴＲ（Click Through Rate）を挙げることができる。或いは、当該広告データに商品ウェブページへのリンクが貼られている場合等には、該当商品についてのＣＶＲ（Conversion Rate）とすることもできる。
【００３４】
本例における制御端末３ｄは、例えば上記のような動作テスト時にショッピングサーバ３ａが実行する処理を規定するためのプログラムの作成装置として機能すると共に、作成されたプログラムに従った処理をショッピングサーバ３ａに実行させるための制御装置として機能する。
なお、制御端末３ｄが実行する具体的な処理については後に改めて説明する。
【００３５】
なお図１において、ネットワーク２の構成は多様な例が想定される。例えば、インターネットを始めとして、イントラネット、エキストラネット、ＬＡＮ（Local Area Network）、ＣＡＴＶ（Community Antenna TeleVision）通信網、仮想専用網（Virtual Private Network）、電話回線網、移動体通信網、衛星通信網等が想定される。
またネットワーク２の全部又は一部を構成する伝送媒体についても多様な例が想定される。例えばＩＥＥＥ（Institute of Electrical and Electronics Engineers）１３９４、ＵＳＢ（Universal Serial Bus）、電力線搬送、電話線等の有線でも、ＩｒＤＡ（Infrared Data Association）のような赤外線、ブルートゥース（登録商標）、８０２．１１無線、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。
【００３６】
＜２．コンピュータ装置のハードウェア構成＞
図２に、図１で示した制御端末３ｄをはじめとした各装置（ショッピングサーバ３ａ、商品ＤＢ３ｂ、会員ＤＢ３ｃ、ユーザ端末４、店舗端末５）を構成するコンピュータ装置のハードウェア構成を示す。
図２において、コンピュータ装置のＣＰＵ（Central Processing Unit）１０１は、ＲＯＭ( Read Only Memory)１０２に記憶されているプログラム、または記憶部１０８からＲＡＭ( Random Access Memory )１０３にロードされたプログラムに従って各種の処理を実行する。ＲＡＭ１０３にはまた、ＣＰＵ１０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
ＣＰＵ１０１、ＲＯＭ１０２、及びＲＡＭ１０３は、バス１０４を介して相互に接続されている。このバス１０４には、入出力インターフェース１０５も接続されている。
入出力インターフェース１０５には、キーボード、マウス、タッチパネルなどよりなる入力装置１０６、ＬＣＤ（Liquid Crystal Display）、ＣＲＴ（Cathode Ray Tube）、有機ＥＬ（Electroluminescence）パネルなどよりなるディスプレイ（表示装置）、並びにスピーカなどよりなる出力装置１０７、ＨＤＤ（Hard Disk Drive）やフラッシュメモリ装置などより構成される記憶部１０８、外部装置との間で相互通信を行うための通信部１０９が接続されている。
入出力インターフェース１０５にはまた、必要に応じてメディアドライブ１１０が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア１１１が適宜装着され、リムーバブルメディア１１１に対する情報の書込や読出が行われる。
【００３７】
このようなコンピュータ装置では、通信部１０９による通信によりデータやプログラムのアップロード、ダウンロードが行われたり、リムーバブルメディア１１１を介したデータやプログラムの受け渡しが可能である。
ＣＰＵ１０１が各種のプログラムに基づいて処理動作を行うことで、特に制御端末３ｄとしてのコンピュータ装置においては以降で説明する情報処理や通信が実行される。
【００３８】
＜３．テキストＶＰＬ＞
本実施の形態においては、例えば前述した表示広告についてのＡ／Ｂテスト時などにショッピングサーバ３ａに所定の処理を実行させる際に、そのためのプログラムが制御端末３ｄを用いて作成される。
Ａ／Ｂテスト時には、表示広告を切り替えるためにプログラムの該当箇所の編集を要するが、テスト時にプログラム作成を専門職とするエンジニアが同席しているとは限らず、エンジニア以外のスタッフがプログラムの編集を容易に行うことのできる環境が望まれている。
【００３９】
この点に鑑み、本実施の形態では、制御端末３ｄにおけるプログラムの作成時に用いるプログラミング言語としていわゆるビジュアルプログラミング言語（以下「ＶＰＬ（Visual Programming Language）」と表記する）を採用している。
【００４０】
しかしながら、前述のように既存のＶＰＬは、プログラムの作成や編集を行うにあたって専用のソフトウェアを用いる必要があり、また、Ｃ言語等の非ＶＰＬプログラミング言語と比較してプログラムのデータサイズが大きくなってしまうという問題もある。
【００４１】
そこで、本実施の形態では、ＶＰＬとして以下のようなテキストベースのＶＰＬ（以下「テキストＶＰＬ」と表記）を採用し、そのようなテキストＶＰＬの解釈を可能とすることにより、汎用性の高いプログラミング環境を提供すると共に、プログラムデータサイズの縮小化を図る。
【００４２】
図３は、テキストＶＰＬについての説明図であり、テキストＶＰＬにより作成されたプログラムをテキストエディタで表示した際の様子を示している。
テキストＶＰＬは、文字データで構成された関数と接続文字とが組み合わされたテキストベースのプログラミング言語データであって、テキストエディタによる表示空間上での接続文字を基準とした各関数の位置関係によって各関数の関連性が定義されたものである。
【００４３】
本実施の形態の場合、プログラムは視覚的にフローチャートとして表されるように作成するため、関数には判別処理を表す判別関数とそれ以外の通常関数とが定義されている。判別関数には、関数内の所定の文字位置に所定の文字データを挿入することが定められている。本例の場合、判別関数には関数内の文頭位置に「is」の２文字を挿入することが定められている。
関数が表す処理の内容については、例えば図中「isOver30」と表記される判別関数としては年齢が３０歳以上であるか否かの判別処理を表しており、図中「giveCarnation」の通常関数としてはカーネーションに関する広告データを表示させるための処理を表している。
【００４４】
接続文字としては、関数に用いる文字データ以外の文字データが割り当てられており、本例においては「−」「｜」の文字データが割り当てられている。接続文字「−」は、テキストエディタによる表示空間上において横方向に離間して配置された関数間を接続するための接続文字（第一接続文字）とされ、接続文字「｜」は同表示空間上において縦方向に離間して配置された関数間を接続するための接続文字（第二接続文字）とされている。
【００４５】
接続文字「−」「｜」を用いた関数間の「接続」は、
・「−」：同一の行内において、二つの関数の間に配置する
・「｜」：縦方向において、異なる行に配置される二つの関数の間の行に配置すると共に、それら二つの関数と該「｜」が縦方向において重なるように配置する
ことで行う。
このような「接続」が行われるように、プログラムの作成・編集者は、「空白」としての文字データや「改行」としての制御文字データを用いて接続文字や関数の位置を調整することになる。
なお、「空白」については、スペースキーによる１文字分の空白、Ｔａｂキー等による複数文字分の空白の何れが用いられてもよい。
【００４６】
ここで、本例のテキストＶＰＬにおいては、接続文字「−」「｜」の連続配置が許容されている。ここで言う連続配置とは、「−」については「−」が横方向に連続して配置されていることを意味し、「｜」については「｜」が縦方向に連続して配置されていることを意味する。
後述するように、連続配置された接続文字は、プログラムの解釈時においてそれら複数の接続文字が一体として扱われ、単体の接続文字と等価なものとして扱われる。例えば、図中「isOver30」と「isMan」の関数間を接続する「−」「−」は一体として扱われるので、「isMan」と「Car」の関数間を接続する単体の「−」と等価に扱われる。また、例えば図中「isOver30」と「isOver20」の関数間を接続する連続した「｜」も一体として扱われるため、「is14thFeb」と「giveRose」の関数間を接続する単体の「｜」と等価に扱われる。
【００４７】
本実施の形態のテキストＶＰＬでは、接続文字を基準とした各関数の位置関係により、各関数間の関連性が以下のように定義されている。
・判別関数に対し「−」を介して右側に接続された関数は、該判別関数のＹｅｓ分岐後の関数である
・判別関数に対し「｜」を介して下側に接続された関数は、該判別関数のＮｏ分岐後の関数である
・通常関数に対し「−」を介して右側に接続された関数は、該通常関数の処理に続けて実行される関数である
【００４８】
このように各関数間の関連性が定義された本例のテキストＶＰＬによれば、図３を参照して分かるように、テキストベースでありながら処理の流れをフローチャートにより視覚的に理解し易く表すプログラムを作成することができる。
【００４９】
＜４．テキストＶＰＬの解釈及び処理の実行制御について＞
図４は、テキストＶＰＬで記述されたプログラムに従った処理をショッピングサーバ３ａに実行させるための構成について説明するための図であり、制御端末３ｄ内のＣＰＵ１０１及び記憶部１０８と、ショッピングサーバ３ａ内のＣＰＵ１０１とを示している。
図４では、制御端末３ｄ、ショッピングサーバ３ａのそれぞれにおけるＣＰＵ１０１が有する機能をブロック図により表している。図のように制御端末３ｄのＣＰＵ１０１は、プログラム作成・編集処理部１０、パース処理部１１、実行制御部１２としての機能を有し、ショッピングサーバ３ａのＣＰＵ１０１はバーチャルマシン２０、処理実行部２１としての機能を有している。
【００５０】
プログラム作成・編集処理部１０としての機能は、操作入力に応じてテキストＶＰＬによるプログラムの作成・編集を行って、テキストＶＰＬプログラム１３としてのテキストファイルを作成（更新）する機能である。このプログラム作成・編集処理部１０としての機能は、制御端末３ｄにインストールされているテキストエディタとしてのソフトウェアアプリケーションにより実現される。
【００５１】
パース処理部１１としての機能は、記憶部１０８に記憶されている関数対応情報１４に基づき、テキストＶＰＬプログラム１３のパーシング（Parsing）を行って、機械語への変換の前段階のコードとしての中間コード１５を生成する。
【００５２】
ここで、関数対応情報１４は、先の図３で説明したテキストＶＰＬで用いられる関数を中間コード１５で用いられる関数に変換するための変換テーブルとして機能するもので、テキストＶＰＬで用いられる関数ごとに、それに対応する中間コード１５での関数の情報が格納されている。
【００５３】
図５は、図３に示したテキストＶＰＬによるプログラムを中間コード１５に変換した例を示している。
この図５に示すように、本例では、中間コード１５としてＣ言語によるコードを生成している。
【００５４】
パース処理部１１は、テキストＶＰＬプログラム１３について、関数と接続文字の切り分け、及び接続文字に基づく関数間の関連性の解釈処理を行い、該解釈処理の結果と関数対応情報１５とに基づいて中間コード１５を生成する。
【００５５】
なお、中間コード１５としては、Ｃ言語によるコードに限定されるものではなく、ＶＰＬ以外のプログラミング言語であれば他のプログラミング言語によるコードを生成することもできる。
【００５６】
ここで、パース処理部１０１が行う上記の解釈処理は、テキストエディタによる表示空間上での接続文字を基準とした各関数の位置関係に基づいて行われるが、該解釈処理の詳細ついては後に改めて説明する。
【００５７】
パース処理部１０１は、生成した中間コード１５を、図４に示されるように記憶部１０８に記憶させる。
【００５８】
また、図４において、実行制御部１２としての機能は、中間コード１５に基づく処理をショッピングサーバ３ａのＣＰＵ１０１に実行させるための制御を行う機能である。
【００５９】
ここで、本例において、機械語への変換は、いわゆるＡＯＴ（Ahead Of Time）コンパイラのように処理の実行前に対象コード全体を機械語に変換する手法ではなく、ＪＩＴ（Just-In-Time Compiler）コンパイラやインタープリタのように処理の実行時に対象コードの必要部分のみを逐次機械語に変換する手法を採っている。
【００６０】
本例における実行制御部１２は、中間コード１５を関数の単位に基づく所定のモジュール単位で逐次ショッピングサーバ３ａのバーチャルマシン２０に送信する。具体的には、中間コード１５を例えば関数と同単位の区切りで逐次ショッピングサーバ３ａのバーチャルマシン２０に送信する。
【００６１】
バーチャルマシン２０は、送信されたコードを機械語に逐次変換して処理実行部２１に受け渡す。処理実行部２１は、機械語に従った処理を逐次実行する。
【００６２】
上記のような構成により、ショッピングサーバ３ａにおいて、テキストＶＰＬにより作成されたプログラムに従った処理が実行される。
【００６３】
ここで、前述したＡ／Ｂテスト時には、表示広告を少なくとも２パターン表示させ、それぞれの評価結果を得る。例えば、図３のプログラム例において、テストを施行するスタッフは、例えば「isPinkLover」の判別関数のＹｅｓ分岐後の通常関数（広告表示処理）を、図示している通常関数「giveCarnation」としたプログラムによりショッピングサーバ３ａに広告表示処理を実行させ、その評価結果を得、その後、当該通常関数「giveCarnation」を他の通常関数（例えば「givePinkRose」など）に書き替えたプログラムにより再度、ショッピングサーバ３ａに広告表示処理を実行させ、その評価結果を得る。
このようにプログラムの該当箇所を逐次書き替えるＡ／Ｂテスト施行時において、仮にＡＯＴコンパイラのように対象コード全体を機械語に変換する手法を採ってしまうと、該プログラムに従った処理の開始までに長時間を要してしまい、テストをスムーズに行えず望ましくない。このため、本実施の形態では、ＪＩＴコンパイラやインタープリタのように処理の実行時に対象コードの必要部分のみを逐次機械語に変換する手法を採っている。これにより、プログラム修正に柔軟に対応可能とでき、Ａ／Ｂテストやその他動作確認などに最適な環境を提供できる。
【００６４】
＜５．処理手順＞
続いて、パース処理部１１がテキストＶＰＬを解釈するにあたって実行する具体的な処理の手順を図６及び図７のフローチャートを参照して説明する。
なお、図６及び図７に示す処理は、制御端末３ｄのＣＰＵ１０１が例えばＲＯＭ１０２等の所要の記憶部に記憶されたプログラムに従って実行するものである。
【００６５】
先ず、図６において、ＣＰＵ１０１は、ステップＳ１０１で行識別子ｎを０リセットし、続くステップＳ１０２で文字位置識別子ｍを０リセットする。行識別子ｎは、テキストエディタによる表示空間上での「行」を識別するための数値であり、文字位置識別子ｍは各行における文字位置（各行の文頭からの文字数）を識別するための数値である。
【００６６】
ステップＳ１０１及びステップＳ１０２のリセット処理を実行したことに応じ、ＣＰＵ１０１はステップＳ１０３でｎ行目のｍ文字目のデータを取得し、続くステップＳ１０４で取得したデータが「空白」「−」「｜」「改行」以外であるか否かを判別する。
ステップＳ１０４において、取得したデータが「空白」「−」「｜」「改行」以外であった場合、ＣＰＵ１０１はステップＳ１０５に進んでデータとその位置情報（ｎ行目のｍ文字目）を保持し、ステップＳ１２７で文字位置識別子ｍをインクリメント（＋１）した上で、ステップＳ１０３に戻る。
このように取得したデータが「空白」「−」「｜」「改行」以外であった場合は、該データとその位置情報が保持された上で、ｎ行目における次の文字位置のデータが取得される。
【００６７】
一方、ステップＳ１０４において、取得したデータが「空白」「−」「｜」「改行」以外でなかった場合、ＣＰＵ１０１はステップＳ１０６に進んで該取得したデータが「−」であるか否かを判別する。
「−」でなかった場合、ＣＰＵ１０１はステップＳ１０７で該取得したデータが「｜」であるか否かを判別し、「｜」でなかった場合は、ステップＳ１０８で該取得したデータが「改行」であるか否かを判別する。
つまり、これらステップＳ１０６〜Ｓ１０８によっては、ステップＳ１０３で取得したデータが「空白」「−」「｜」「改行」の何れであるかが判定される。
【００６８】
先ずは、ステップＳ１０６の判別処理により取得データが「−」であったとされた場合に対応して実行される処理を、図７のフローチャートを参照して説明する。
図７において、ＣＰＵ１０１はステップＳ１０９で、取得した「−」のデータの位置情報を保持した上で、続くステップＳ１１０で該「−」の左側も「−」であるか否かを判別する。左側も「−」であれば、ＣＰＵ１０１はステップＳ１１１に進んで取得した「−」とその左側の「−」とを一体登録し、図６に示したステップＳ１２７に進む。
つまり、連続配置された「−」が一体登録された後、次の文字位置のデータ取得が為される。
【００６９】
一方、左側が「−」でなかった場合、ＣＰＵ１０１はステップＳ１１２に進んで左側の文字列を関数として抽出し、続くステップＳ１１３で該抽出した関数が判別関数であるか否かを判別する。すなわち、本例においては、ステップＳ１１２で抽出した関数としての文字列の文頭に「is」の２文字が挿入されているか否かを判別する。
【００７０】
ステップＳ１１３において、抽出した関数が判別関数でなかった場合、ＣＰＵ１０１はステップＳ１１４で該関数を通常関数として登録し、ステップＳ１１６に進む。
一方、抽出した関数が判別関数であった場合、ＣＰＵ１０１はステップＳ１１５で該関数を判別関数として登録し、ステップＳ１１６に進む。
【００７１】
ステップＳ１１６でＣＰＵ１０１は、該関数（ステップＳ１１４又はＳ１１５で登録した関数）の左側に「−」があるか否かを判別する。
左側に「−」がなかった場合、ＣＰＵ１０１はステップＳ１２０に進む。
一方、左側に「−」があった場合、ＣＰＵ１０１はステップＳ１１７で該「−」の左側の関数が判別関数であるか否かを判別し、判別関数であった場合は、ステップＳ１１８で登録関数（ステップＳ１１４又はＳ１１５で登録した関数）を上記左側の関数（判別関数）のＹｅｓ分岐後の関数として関連付け、ステップＳ１２０に進む。
また、該「−」の左側の関数が判別関数でなかった場合、ＣＰＵ１０１はステップＳ１１９で登録関数を上記左側の関数（通常関数）の次の実行する関数として関連付け、ステップＳ１２０に進む。
【００７２】
上記の処理により、例えば図３における関数「isMan」と関数「Car」の関係のように、一方の関数（「Car」）の左側の接続文字「−」のさらに左側に接続された関数（「isMan」）が判別関数であった場合には、該一方の関数が該判別関数のＹｅｓ分岐後の関数として関連付けられる。また、例えば図３における関数「giveCarnation」と関数「bookRestaurant」の関係のように、一方の関数（「giveCarnation」）の左側の接続文字「−」のさらに左側に接続された関数（「bookRestaurant」）が通常関数であった場合には、該一方の関数が該通常関数の次に実行されるべき関数として関連付けられる。
【００７３】
ステップＳ１２０でＣＰＵ１０１は、登録関数の上に「｜」があるか否かを判別し、「｜」があった場合はステップＳ１２１で登録関数を「｜」の上の関数のＮｏ分岐後の関数として関連付け、図６に示したステップＳ１２７に進む。
一方、登録関数の上に「｜」がなかった場合、ＣＰＵ１０１はステップＳ１２１をパスしてステップＳ１２７に進む。
これにより、例えば図３における関数「isOver30」と関数「isOver20」の関係のように、一方の関数（「isOver20」）の上側の接続文字「｜」のさらに上側に判別関数（「isOver30」）が接続されている場合には、該一方の関数が該判別関数のＮｏ分岐後の関数として関連付けられる。
【００７４】
説明を図６に戻し、ｎ行目のｍ文字目のデータが「｜」、「空白」、又は「改行」であった場合の対応処理について説明する。
ステップＳ１０７において、ステップＳ１０３で取得したデータが「｜」であった場合、ＣＰＵ１０１はステップＳ１２２に進んで該「｜」の位置情報を保持した上で、ステップＳ１２３で該「｜」の上に関数があるか否かを判別する。
「｜」の上に関数がなかった場合、ＣＰＵ１０１はステップＳ１２４に進んで「｜」の上が「｜」であるか否かを判別し、「｜」の上が「｜」であった場合は、ステップＳ１２５でそれら「｜」を一体登録し、ステップＳ１２７に進む。
また、「｜」の上が「｜」でなかった場合（つまり「｜」の上が関数でも「｜」でもない場合）、ＣＰＵ１０１はステップＳ１２５をパスしてステップＳ１２７に進む。なお、テキストＶＰＬの記述ルールでは、このように「｜」の上が関数でも「｜」でもないことは許容されていない。
【００７５】
また、ステップＳ１２３において、「｜」の上に関数があった場合、ＣＰＵ１０１はステップＳ１２６に進んで「｜」とその上の関数を関連付け、ステップＳ１２７に進む。
【００７６】
続いて、ステップＳ１０８において、ステップＳ１０３で取得したデータが「改行」でなかった場合、すなわち該取得データが「空白」であった場合、ＣＰＵ１０１はステップＳ１２７に進む。このように取得データが「空白」であった場合は、該「空白」のデータについては特に位置情報の保持等の処理は実行されず、そのまま次の文字位置に処理が進められる。
【００７７】
一方、取得したデータが「改行」であった場合、ＣＰＵ１０１はステップＳ１２８に進んで行識別子ｎの値をインクリメント（＋１）した上で、ステップＳ１２９でｎ行目のデータが存在しないか否かを判別する。
ｎ行目にデータが存在する場合、ＣＰＵ１０１は先のステップＳ１０２に戻って文字位置識別子ｍの値を０リセットする。すなわち、処理が次の行の０文字目に移行する。
また、ｎ行目にデータが存在しなければ、ＣＰＵ１０１は図６及び図７に示した処理を終了する。
【００７８】
上記のような図６及び図７の処理により、テキストＶＰＬで記述されたプログラムについて、テキストエディタによる表示空間上での接続文字を基準とした各関数の位置関係に基づいた各関数の関連性の解釈が実現できる。
【００７９】
＜６．実施の形態のまとめ＞
上記のように本実施の形態の情報処理装置（制御端末３ｄ）は、文字データで構成された関数と接続文字とが組み合わされたテキストベースのプログラミング言語データ（テキストＶＰＬプログラム１３）であって、テキストエディタによる表示空間上での接続文字を基準とした各関数の位置関係によって各関数の関連性が定義されたプログラミング言語データを記憶する記憶部（記憶部１０８）と、前記プログラミング言語データにおける文字列から関数と接続文字とを切り分け、前記表示空間上の前記位置関係から各関数の関連性を解釈する解釈処理部（パース処理部１１）とを備えている。
【００８０】
本実施の形態で対象とするプログラミング言語データは、テキストベースでありながら、テキストエディタによる表示空間上における接続文字を基準とした各関数の位置関係によってそれら関数間の関連性が視覚的に理解し易く表される。つまり、ＶＰＬとして機能する。このようなテキストＶＰＬは、プログラムの作成・編集にあたり専用のソフトウェアを必要とせず、汎用性の高いプログラミング環境を実現できる。また、テキストベースであるため、プログラムデータサイズも比較的小さくできる。
本実施の形態の情報処理装置は、このようなテキストＶＰＬによるプログラミング環境を実現するべく、テキストＶＰＬの解釈を可能としたものである。
テキストＶＰＬの解釈を可能とすることで、テキストＶＰＬに従った処理をコンピュータ装置にて実行可能とでき、テキストＶＰＬを用いたプログラミング環境を実現できる。
すなわち、テキストＶＰＬを用いた汎用性の高いプログラミング環境を実現できると共に、プログラムデータサイズの縮小化を図ることができる。
【００８１】
また、本実施の形態においては、関数には、判別処理を表す判別関数があり、接続文字には、前記表示空間上における横方向に離間した関数間を接続する第一接続文字と縦方向に離間した関数間を接続する第二接続文字とがある。
この前提の下で、本実施の形態の情報処理装置においては、解釈処理部は、プログラミング言語データにおける各行ごとに文字データの種類を一文字ずつ識別して関数と接続文字の切り分けを行い、関数が判別関数であるか否かを判別し、判別関数としての関数については、該関数に対し第一接続文字を介して右側に接続された関数をＹｅｓ分岐又はＮｏ分岐のうち一方の分岐後の関数として関連付けし、該関数に対し第二接続文字を介して下側に接続された関数をＹｅｓ分岐又はＮｏ分岐のうち他方の分岐後の関数として関連付けしている。
【００８２】
これにより、テキストＶＰＬによって視覚的にフローチャートとして表されたプログラムの解釈を可能としている。
従って、フローチャートという視覚的により理解のし易い形態でプログラムを作成・編集することを許容でき、プログラムの作成・編集の容易性向上を図ることができる。
【００８３】
さらに、本実施の形態の情報処理装置においては、解釈処理部は、判別関数であるか否かを、関数内の所定文字の有無により判別している。
【００８４】
先の説明からも理解されるように、本実施の形態のテキストＶＰＬでは、「−」「｜」の双方の接続文字によって他の関数と接続されている関数は、判別関数のみである。よって、順当には、「−」「｜」の双方の接続関数で他の関数と接続されている関数を、判別関数と判別することが考えられる。
しかしながら、このように「−」「｜」の双方の接続関数で他の関数と接続されている関数であるか否かを判別しようとすると、判別関数か否かの判別にあたり、対象の関数の１行下までを読み込む必要があり、その結果、判別関数か否かの判別に要する処理負担の増大化を招いてしまう。
そこで、上記のように関数内の所定文字の有無で判別関数か否かの判別を行うようにすることで、判別関数か否かの判別にあたり対象関数の１行下までを読み込む必要がなくなるようにしている。
従って、判別関数か否かの判別に要する処理負担の増大化防止を図ることができる。
【００８５】
さらにまた、本実施の形態の情報処理装置においては、解釈処理部は、横方向に連続配置されている第一接続文字、縦方向に連続配置されている第二接続文字を一体として扱うようにしている。
【００８６】
これにより、テキストＶＰＬの記述ルールとして、第一接続文字、第二接続文字を連続配置することが許容される。
ここで、先の図３に示したように、プログラムをフローチャートとして記述する場合において、第一の判別関数（例えば図３中「isOver30」）のＹｅｓ分岐後に第二の判別関数（「isMan」）が配置され、第一の判別関数のＮｏ分岐後に第三の判別関数（「isOVER20」）が配置されているようなケースを想定する。この場合において、仮に接続文字の連続配置が許容されていないとすると、第二の判別関数のＮｏ分岐後の関数（「is14thFeb」）の配置位置と、第三の判別関数のＹｅｓ分岐後の関数（「isSweetsLover」）の配置位置とが重複し、当該第三の判別関数のＹｅｓ分岐後の関数を配置することが不能となる虞がある。
例えばこのようなケースにおいて、第二接続文字（「｜」）の連続配置が許容されることで、第三の判別関数を第一の判別関数の複数行下に配置することが可能となり、関数の配置位置重複を防止できる。従って、プログラムの作成・編集の自由度の向上を図ることができる。
また、第一接続文字（「−」）及び第二接続文字の連続配置が許容されることで、関数の横方向及び縦方向における配置位置を調整することが可能とされる。従って、視覚的に見易いフローチャートの作成が可能となり、プログラム内容の視覚的な理解し易さの向上を図ることができる。
【００８７】
また、本実施の形態の情報処理装置においては、解釈処理部は、各関数の関連性を解釈した結果に基づいて、機械語へ変換する前段階のコードとしての中間コード（中間コード１５）を生成している。
【００８８】
これにより、テキストＶＰＬは、例えばＣ言語等の所要のプログラミング言語による中間コードに変換される。
テキストＶＰＬから直接的に機械語に変換するのではなく、中間コードを介した変換とすることで、機械語の生成にあたり既存のインタープリタやコンパイラを用いることが可能となる。従って、この点でも汎用性の向上を図ることができる。
【００８９】
さらに、本実施の形態の情報処理装置は、中間コードに従った処理を関数の単位に基づく所定のモジュール単位で逐次実行させる制御を行う実行制御部（実行制御部１２）を備えている。
【００９０】
逐次実行型とされることで、プログラム修正に柔軟に対応可能となり、また、処理の実行にあたって中間コードの全てを機械語に変換する必要性がなくなる。
プログラム修正に柔軟に対応可能であることで、前述したＡ／Ｂテストや各種動作確認などに最適な環境を提供することができる。
また、中間コードの全てを機械語に変換する必要性がなくなることで、処理の実行開始までに要する時間の短縮化が図られると共に、機械語への変換に要する処理負担（本実施の形態ではショッピングサーバ３ａの処理負担）の軽減を図ることができる。
【００９１】
ここで、上記のように中間コードに従った処理を逐次実行する場合には、判別関数に基づく判別処理の結果を利用することで、機械語への変換を当該判別関数のＹｅｓ分岐後又はＮｏ分岐後の何れか一方のコードのみに限ることができ、処理負担の大幅な軽減を図ることができる。
この際、本実施の形態のようにテキストＶＰＬを用いたプログラム作成・編集を行う装置（制御端末３ｄ）とプログラムに基づく処理を実行する装置（ショッピングサーバ３ａ）とが異なる場合には、判別関数に基づく判別処理の結果がショッピングサーバ３ａから制御端末３ｄにフィードバックされるように構成しておき、実行制御部１２が該判別結果に基づき中間コード１５のうち必要とされるコードのみをショッピングサーバ３ａ（バーチャルマシン２０）に逐次送信し、機械語に変換させる。
なお、テキストＶＰＬを用いたプログラム作成・編集を行う装置とプログラムに基づく処理を実行する装置は同一装置であってもよく、その場合には、上記のように判別結果を別装置からフィードバックする構成は不要である。
【００９２】
＜７．プログラム及び記憶媒体＞
以上、本発明に係る情報処理装置の実施の形態としての制御端末３ｄを説明してきたが、本実施の形態のプログラムは、制御端末３ｄの処理を情報処理装置（ＣＰＵ等）に実行させるプログラムである。
【００９３】
実施の形態のプログラムは、文字データで構成された関数と接続文字とが組み合わされたテキストベースのプログラミング言語データであって、テキストエディタによる表示空間上での接続文字を基準とした各関数の位置関係によって各関数の関連性が定義されたプログラミング言語データを記憶する記憶部を備えた情報処理装置に処理を実行させるプログラムであって、前記プログラミング言語データにおける文字列から関数と接続文字とを切り分け、前記表示空間上の前記位置関係から各関数の関連性を解釈する解釈処理を情報処理装置に実行させる。
すなわち、このプログラムは、情報処理装置（制御端末３ｄ）に図６や図７で説明した処理を実行させるプログラムに相当する。
【００９４】
このようなプログラムにより、上述した制御端末３ｄとしての情報処理装置を実現できる。
そして、このようなプログラムはコンピュータ装置等の機器に内蔵されている記憶媒体としてのＨＤＤや、ＣＰＵを有するマイクロコンピュータ内のＲＯＭ等に予め記憶しておくことができる。或いはまた、半導体メモリ、メモリカード、光ディスク、光磁気ディスク、磁気ディスクなどのリムーバブル記憶媒体に、一時的あるいは永続的に格納（記憶）しておくことができる。またこのようなリムーバブル記憶媒体は、いわゆるパッケージソフトウェアとして提供することができる。
また、このようなプログラムは、リムーバブル記憶媒体からパーソナルコンピュータ等にインストールする他、ダウンロードサイトから、ＬＡＮ、インターネットなどのネットワークを介してダウンロードすることもできる。
【００９５】
＜８．変形例＞
本発明は上記により説明した具体例に限定されず、各種の変形例が考えられる。
例えば上記では、テキストＶＰＬによるプログラム（ソースコード）を中間コードに変換した上で機械語に変換する例を挙げたが、テキストＶＰＬによるプログラムから直接的に機械語に変換することもできる。
【００９６】
また、機械語への変換は、上記で例示した必要部分のみの逐次変換に限定されず、ＡＯＴコンパイラのように対象コードの全体を事前に変換する手法を採ることもできる。
【００９７】
また、接続文字については、「−」や「｜」に限定されず、他の文字データを割り当てることもできる。
さらに、判別関数か否かを判別する手法については、上記で例示したように関数内の所定文字の有無で判別する手法に限らず、対象とする関数が第一接続文字及び第二接続文字の双方で他の関数と接続されているか否かを判別するなど、他の手法で判別することもできる。
【符号の説明】
【００９８】
１  ネットワークシステム、２  ネットワーク、３  ショッピングサイト運営システム、３ａ  ショッピングサーバ、３ｂ  商品ＤＢ（データベース）、３ｃ  会員ＤＢ、３ｄ  制御端末、４  ユーザ端末、５  店舗端末、１０  プログラム作成・編集処理部、１１  パース処理部、１２  実行制御部、１３  テキストＶＰＬプログラム、１４  関数対応情報、１５  中間コード
【要約】
ビジュアルプログラミング言語についてより汎用性の高いプログラミング環境を提供すると共に、プログラムデータサイズの縮小化を図る。
文字データで構成された関数と接続文字とが組み合わされたテキストベースのプログラミング言語データであって、テキストエディタによる表示空間上での接続文字を基準とした各関数の位置関係によって各関数の関連性が定義されたプログラミング言語データ（テキストＶＰＬ）について、該プログラミング言語データにおける文字列から関数と接続文字とを切り分け、前記表示空間上の前記位置関係から各関数の関連性を解釈する。テキストＶＰＬの解釈を可能とすることで、テキストＶＰＬに従った処理をコンピュータ装置にて実行可能とでき、汎用性の高いプログラミング環境を実現できると共に、プログラムデータサイズの縮小化を図ることができる。【図１】
0005666758.tif 000002
【図２】
0005666758.tif 000003
【図３】
0005666758.tif 000004
【図４】
0005666758.tif 000005
【図５】
0005666758.tif 000006
【図６】
0005666758.tif 000007
【図７】
0005666758.tif 000008