JP5666758B1 - 情報処理装置、情報処理方法、プログラム、記憶媒体 - Google Patents

情報処理装置、情報処理方法、プログラム、記憶媒体 Download PDF

Info

Publication number
JP5666758B1
JP5666758B1 JP2014547205A JP2014547205A JP5666758B1 JP 5666758 B1 JP5666758 B1 JP 5666758B1 JP 2014547205 A JP2014547205 A JP 2014547205A JP 2014547205 A JP2014547205 A JP 2014547205A JP 5666758 B1 JP5666758 B1 JP 5666758B1
Authority
JP
Japan
Prior art keywords
function
character
connection
programming language
discriminant
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
JP2014547205A
Other languages
English (en)
Other versions
JPWO2015198419A1 (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.)
Rakuten Group Inc
Original Assignee
Rakuten Inc
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 Rakuten Inc filed Critical Rakuten Inc
Application granted granted Critical
Publication of JP5666758B1 publication Critical patent/JP5666758B1/ja
Publication of JPWO2015198419A1 publication Critical patent/JPWO2015198419A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

ビジュアルプログラミング言語についてより汎用性の高いプログラミング環境を提供すると共に、プログラムデータサイズの縮小化を図る。
文字データで構成された関数と接続文字とが組み合わされたテキストベースのプログラミング言語データであって、テキストエディタによる表示空間上での接続文字を基準とした各関数の位置関係によって各関数の関連性が定義されたプログラミング言語データ(テキストVPL)について、該プログラミング言語データにおける文字列から関数と接続文字とを切り分け、前記表示空間上の前記位置関係から各関数の関連性を解釈する。テキストVPLの解釈を可能とすることで、テキストVPLに従った処理をコンピュータ装置にて実行可能とでき、汎用性の高いプログラミング環境を実現できると共に、プログラムデータサイズの縮小化を図ることができる。

Description

本発明は、情報処理装置とその方法、情報処理装置を実現するプログラム、及びプログラムを記憶した記憶媒体に係るものであり、特に、ビジュアルプログラミング言語を解釈するための技術分野に関する。
特開2005−309593号公報 特開2005−242682号公報
例えばフローチャートやファンクションブロックダイアグラム等によりプログラム内容を視覚的に理解し易く表すビジュアルプログラミング言語(以下「VPL(Visual Programming Language)」と表記)が知られている(例えば上記特許文献1,2を参照)。
VPLによるプログラム作成は、プログラムエディタにより提供される表示空間上にてプログラムオブジェクトを配置し、プログラムオブジェクト間を接続線により接続する等によりプログラムオブジェクト間の関係を関連付けることで行われる。
VPLは、例えばC言語等の他の非VPLプログラミング言語と比較して、プログラム内容を直感的に理解し易く、編集もし易いという利点がある。
しかしながら、既存のVPLでは、例えばフローチャートにおけるひし形ボックス(判別処理)などそれぞれに意味を持たせた「箱」が複数種類用意された環境の下で、箱の配置・箱内への文字入れ・箱間を接続線で繋ぐ等の作業を行ってプログラムの作成が行われている。そのため、プログラムの作成や編集を行うにあたっては、単純な作図ソフトではなく専用のソフトを用いる必要がある。
また、テキストデータ以外に、例えば上記の「箱」のようなプログラムオブジェクトである旨を視覚的に分かり易く表すための特殊な属性によるデータも用いるため、C言語等のテキストデータのみで作成可能なプログラミング言語と比較してプログラムのデータサイズが大きくなってしまうという問題もある。
そこで、本発明では上記した問題を克服し、ビジュアルプログラミング言語についてより汎用性の高いプログラミング環境を提供すると共に、プログラムデータサイズの縮小化を図ることを目的とする。
発明に係る情報処理装置は、文字データで構成された関数と接続文字とが組
み合わされたテキストベースのプログラミング言語データであって、テキストエ
ディタによる表示空間上での前記接続文字を基準とした各前記関数の位置関係に
よって各前記関数の関連性が定義され、前記関数には、判別処理を表す判別関数
があり、前記接続文字には、前記表示空間上における横方向に離間した前記関数
間を接続する第一接続文字と縦方向に離間した前記関数間を接続する第二接続文
字とがあるプログラミング言語データを記憶する記憶部を備える。
また、前記プログラミング言語データにおける文字列から前記関数と前記接続
文字とを切り分け、前記表示空間上の前記位置関係から各前記関数の関連性を解
釈する処理として、前記プログラミング言語データにおける各行ごとに文字デー
タの種類を一文字ずつ識別して前記関数と前記接続文字の切り分けを行い、前記
関数が前記判別関数であるか否かを判別し、前記判別関数としての関数について
は、該関数に対し前記第一接続文字を介して右側に接続された関数をYes分岐
又はNo分岐のうち一方の分岐後の関数として関連付けし、該関数に対し前記第
二接続文字を介して下側に接続された関数をYes分岐又はNo分岐のうち他方
の分岐後の関数として関連付けする処理を行う解釈処理部備えるものである。
本発明で対象とするプログラミング言語は、テキストベースでありながら、テ
キストエディタによる表示空間上における接続文字を基準とした各関数の位置関
係によってそれら関数間の関連性が視覚的に理解し易く表される。つまり、ビジ
ュアルプログラミング言語(以下「VPL(Visual Programming Language)」と表
記する)として機能する。このようなテキストベースのVPL(以下「テキスト
VPL」と表記)は、プログラムの作成・編集にあたり専用のソフトウェアを必
要とせず、汎用性の高いプログラミング環境を実現できる。また、テキストベー
スであるため、プログラムデータサイズも比較的小さくできる。
本発明の情報処理装置は、このようなテキストVPLを用いたプログラミング
環境を実現するべく、テキストVPLの解釈を可能としたものである。特に、視
覚的にフローチャートとして表されたプログラムの解釈を可能としたものである。
また、上記した本発明に係る情報処理装置においては、前記解釈処理部は、前
記判別関数であるか否かを、前記関数内の所定文字の有無により判別することが
望ましい。
関数内の所定文字の有無で判別関数か否かの判別を行うようにすることで、判別関数か否かの判別にあたり対象関数の1行下までを読み込む必要がなくなるようにしている。
また、上記した本発明に係る情報処理装置においては、前記解釈処理部は、前
記横方向に連続配置されている前記第一接続文字、前記縦方向に連続配置されて
いる前記第二接続文字を一体として扱うことが望ましい。
これにより、テキストVPLの記述ルールとして、第一接続文字、第二接続文字を連続配置することが許容される。
また、上記した本発明に係る情報処理装置においては、前記解釈処理部は、各
前記関数の関連性を解釈した結果に基づいて、機械語へ変換する前段階のコード
としての中間コードを生成することが望ましい。
これにより、テキストVPLは、例えばC言語等の所要のプログラミング言語による中間コードに変換される。
また、上記した本発明に係る情報処理装置は、前記中間コードに従った処理を
前記関数の単位に基づく所定のモジュール単位で逐次実行させる制御を行う実行
制御部を備えることが望ましい。
逐次実行型とされることで、プログラム修正に柔軟に対応可能となり、また、処理の実行にあたって中間コードの全てを機械語に変換する必要性がなくなる。
また、本発明に係る情報処理方法は、文字データで構成された関数と接続文字
とが組み合わされたテキストベースのプログラミング言語データであって、テキ
ストエディタによる表示空間上での前記接続文字を基準とした各前記関数の位置
関係によって各前記関数の関連性が定義され、前記関数には、判別処理を表す判
別関数があり、前記接続文字には、前記表示空間上における横方向に離間した前
記関数間を接続する第一接続文字と縦方向に離間した前記関数間を接続する第二
接続文字とがあるプログラミング言語データを記憶する記憶部を備えた情報処理
装置における情報処理方法であって、前記プログラミング言語データにおける文
字列から前記関数と前記接続文字とを切り分け、前記表示空間上の前記位置関係
から各前記関数の関連性を解釈する処理として、前記プログラミング言語データ
における各行ごとに文字データの種類を一文字ずつ識別して前記関数と前記接続
文字の切り分けを行い、前記関数が前記判別関数であるか否かを判別し、前記判
別関数としての関数については、該関数に対し前記第一接続文字を介して右側に
接続された関数をYes分岐又はNo分岐のうち一方の分岐後の関数として関連
付けし、該関数に対し前記第二接続文字を介して下側に接続された関数をYes
分岐又はNo分岐のうち他方の分岐後の関数として関連付けする処理を行う解釈
手順を有する情報処理方法である。
本発明に係る情報処理方法としても、上記した本発明に係る情報処理装置と同
様に、テキストVPLを用いたプログラミング環境を実現するべく、テキストV
PLの解釈を可能としたものである。特に、視覚的にフローチャートとして表さ
れたプログラムの解釈を可能としたものである。
さらに、本発明に係るプログラムは、上記情報処理方法として実行する処理を情報処理装置に実行させるプログラムである。
さらにまた、本発明に係る記憶媒体は、上記プログラムを記憶したプログラムである。これらのプログラムや記憶媒体により上記の情報処理装置を実現する。
本発明によれば、テキストVPLの解釈を可能とすることで、テキストVPL
に従った処理をコンピュータ装置にて実行可能とでき、テキストVPLを用いた
プログラミング環境を実現できる。
従って、汎用性の高いプログラミング環境を実現できると共に、プログラムデ
ータサイズの縮小化を図ることができる。
また、フローチャートという視覚的により理解のし易い形態でプログラムを作
成・編集することを許容でき、プログラムの作成・編集の容易性向上を図ること
ができる。
実施の形態のネットワークシステムの例を示した図である。 実施の形態のコンピュータ装置のブロック図である。 テキストVPLの説明図である。 テキストVPLで記述されたプログラムに従った処理をコンピュータ装置に実行させるための構成について説明するための図である。 図3に示したテキストVPLによるプログラムを中間コードに変換した例を示した図である。 テキストVPLを解釈するにあたって実行する具体的な処理の手順を示したフローチャートである。 同じく、テキストVPLを解釈するにあたって実行する具体的な処理の手順を示したフローチャートである。
以下、実施の形態を次の順序で説明する。
<1.ネットワークシステム>
<2.コンピュータ装置のハードウェア構成>
<3.テキストVPL>
<4.テキストVPLの解釈及び処理の実行制御について>
<5.処理手順>
<6.実施の形態のまとめ>
<7.プログラム及び記憶媒体>
<8.変形例>
<1.ネットワークシステム>

図1に、本実施の形態で前提とするネットワークシステム1の例を示す。このネットワークシステム1はEC(EC:electronic commerce(電子商取引))システムとして機能する。
ネットワークシステム1は、例えばインターネットとしてのネットワーク2を介して、ショッピングサイト管理システム3、複数のユーザ端末4,4…、複数の店舗端末5,5…が互いに通信可能に構成されている。
ユーザ端末4は、ウェブブラウザを備えたコンピュータ装置である。ユーザ端末4としては、例えば高機能携帯電話機(スマートフォン)や携帯電話機、携帯情報端末(PDA)、携帯型又は据置型のパーソナルコンピュータ(PC)などが挙げられるが、ユーザ端末4の種類はこれらに限定されない。
ユーザ端末4は、HTTP(Hypertext Transfer Protocol)リクエストをショッピングサイト運営システム3に送信することでウェブページや所定の処理を要求する。またユーザ端末4は、HTTPリクエストに応じて送られてきたウェブページを受信してウェブブラウザ上に表示する。これにより、ユーザは所望のウェブページを閲覧したり操作したりすることができる。
ショッピングサイト運営システム3は、それぞれコンピュータ装置で構成されたショッピングサーバ3a、商品DB(データベース)3b、会員DB3c、及び制御端末3dを備えている。これらの各装置は、例えばLAN(Local Area Network)等のネットワークを介して互いに通信可能とされている。
ショッピングサーバ3aは、ユーザ端末4から送られてきたHTTPリクエストに基づいて様々な処理を行う。例えば、各種ウェブページ(例えば商品ウェブページ、買い物かごウェブページ、注文ウェブページなど)の生成及び送信や、ユーザによる注文確定操作に応じた購入処理等を実行する。
ネットワークシステム1では、ショッピングサーバ3aにより仮想商店街のウェブサイト(ECサイト)がユーザ(ユーザ端末4のユーザ)に提供される。ECサイト内には複数の店舗(仮想商店街の加盟店)が存在する。各店舗のスタッフが自店舗の商品を店舗端末5としてのコンピュータ装置を介して登録することで、様々な店舗の様々な商品がECサイト上にアップロードされる。ユーザはユーザ端末4によりECサイトにアクセスして所望の商品を購入することができる。
商品DB3bには、店舗端末5を介して登録された商品に係る情報が記憶されている。具体的には、商品を識別するための識別子である商品IDに対応づけられて、商品名、種類、商品の画像、スペック、商品紹介の要約文等の商品情報や、広告情報等が記憶されている。また、商品DB3bには、HTML(HyperText Markup Language)、XML(Extensible Markup Language)等のマークアップ言語等により記述された商品ウェブページのファイル等も記憶されている。
このような商品DB3bにより、例えば入力キーワード等に基づいた商品検索等を行うことが可能とされている。
ここで、ユーザは、ECサイトを利用するにあたり、ショッピングサイト管理システム3に会員登録を行うことができる。会員登録の際にユーザは、ユーザID(ユーザ識別情報)や商品の送付先情報(住所情報)、クレジットカード番号等の必要情報を登録する。ユーザは、登録したユーザIDによりECサイトにログインすることで、ECサイトでの商品の購入の際に必要情報を再度入力する手間が省かれる。
会員DB3cには、上記の会員登録時に登録されたユーザID等の情報など、会員ごとに管理されるべき情報が記憶されている。会員DB3cに記憶される情報としては、例えば会員の個人情報(氏名、年齢、生年月日、性別、住所等)などがある。また、特に本例の場合、会員DB3cには、会員ごとの商品ウェブページ閲覧履歴情報や商品購入履歴情報なども記憶されている。
また、ショッピングサーバ3aは、ECサイトにおける所定のウェブページ(例えばトップページ等)に広告データを表示させる処理も実行する。この際、ショッピングサーバ3aは、表示させる広告データが会員DB3cに記憶されている情報やそれら情報から分析された会員の属性情報(例えば趣味・趣向など)等に基づいて出し分けられるようにしている。
制御端末3dは、本発明情報処理装置の一実施形態であり、本実施の形態においては、ショッピングサーバ3aについての各種動作テストを行う場合において、ショッピングサーバ3aが実行する処理の制御を行うために用いられる。
本例の場合、動作テストとしては、前述した広告データの出し分けにあたって表示候補の広告データのうち何れの広告データを表示すべきかをテストする比較テスト(いわゆるA/Bテスト)の形式で行われる。具体的に、この場合のA/Bテストとしては、例えば「男性」に対応する広告データの候補として「車」「時計」の広告データが存在する場合において、ウェブページを閲覧する会員が「男性」であった場合に当該ウェブページに「車」の広告データを表示させてその反応の評価結果を得ると共に、「時計」の広告データを表示させてその反応の評価結果を得、評価結果が良好であった方の広告データを表示すべき広告データとして選定するなどといった形態で行われる。このとき、「評価結果」としては、例えば表示広告についてのCTR(Click Through Rate)を挙げることができる。或いは、当該広告データに商品ウェブページへのリンクが貼られている場合等には、該当商品についてのCVR(Conversion Rate)とすることもできる。
本例における制御端末3dは、例えば上記のような動作テスト時にショッピングサーバ3aが実行する処理を規定するためのプログラムの作成装置として機能すると共に、作成されたプログラムに従った処理をショッピングサーバ3aに実行させるための制御装置として機能する。
なお、制御端末3dが実行する具体的な処理については後に改めて説明する。
なお図1において、ネットワーク2の構成は多様な例が想定される。例えば、インターネットを始めとして、イントラネット、エキストラネット、LAN(Local Area Network)、CATV(Community Antenna TeleVision)通信網、仮想専用網(Virtual Private Network)、電話回線網、移動体通信網、衛星通信網等が想定される。
またネットワーク2の全部又は一部を構成する伝送媒体についても多様な例が想定される。例えばIEEE(Institute of Electrical and Electronics Engineers)1394、USB(Universal Serial Bus)、電力線搬送、電話線等の有線でも、IrDA(Infrared Data Association)のような赤外線、ブルートゥース(登録商標)、802.11無線、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。
<2.コンピュータ装置のハードウェア構成>

図2に、図1で示した制御端末3dをはじめとした各装置(ショッピングサーバ3a、商品DB3b、会員DB3c、ユーザ端末4、店舗端末5)を構成するコンピュータ装置のハードウェア構成を示す。
図2において、コンピュータ装置のCPU(Central Processing Unit)101は、ROM( Read Only Memory)102に記憶されているプログラム、または記憶部108からRAM( Random Access Memory )103にロードされたプログラムに従って各種の処理を実行する。RAM103にはまた、CPU101が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU101、ROM102、及びRAM103は、バス104を介して相互に接続されている。このバス104には、入出力インターフェース105も接続されている。
入出力インターフェース105には、キーボード、マウス、タッチパネルなどよりなる入力装置106、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、有機EL(Electroluminescence)パネルなどよりなるディスプレイ(表示装置)、並びにスピーカなどよりなる出力装置107、HDD(Hard Disk Drive)やフラッシュメモリ装置などより構成される記憶部108、外部装置との間で相互通信を行うための通信部109が接続されている。
入出力インターフェース105にはまた、必要に応じてメディアドライブ110が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア111が適宜装着され、リムーバブルメディア111に対する情報の書込や読出が行われる。
このようなコンピュータ装置では、通信部109による通信によりデータやプログラムのアップロード、ダウンロードが行われたり、リムーバブルメディア111を介したデータやプログラムの受け渡しが可能である。
CPU101が各種のプログラムに基づいて処理動作を行うことで、特に制御端末3dとしてのコンピュータ装置においては以降で説明する情報処理や通信が実行される。
<3.テキストVPL>

本実施の形態においては、例えば前述した表示広告についてのA/Bテスト時などにショッピングサーバ3aに所定の処理を実行させる際に、そのためのプログラムが制御端末3dを用いて作成される。
A/Bテスト時には、表示広告を切り替えるためにプログラムの該当箇所の編集を要するが、テスト時にプログラム作成を専門職とするエンジニアが同席しているとは限らず、エンジニア以外のスタッフがプログラムの編集を容易に行うことのできる環境が望まれている。
この点に鑑み、本実施の形態では、制御端末3dにおけるプログラムの作成時に用いるプログラミング言語としていわゆるビジュアルプログラミング言語(以下「VPL(Visual Programming Language)」と表記する)を採用している。
しかしながら、前述のように既存のVPLは、プログラムの作成や編集を行うにあたって専用のソフトウェアを用いる必要があり、また、C言語等の非VPLプログラミング言語と比較してプログラムのデータサイズが大きくなってしまうという問題もある。
そこで、本実施の形態では、VPLとして以下のようなテキストベースのVPL(以下「テキストVPL」と表記)を採用し、そのようなテキストVPLの解釈を可能とすることにより、汎用性の高いプログラミング環境を提供すると共に、プログラムデータサイズの縮小化を図る。
図3は、テキストVPLについての説明図であり、テキストVPLにより作成されたプログラムをテキストエディタで表示した際の様子を示している。
テキストVPLは、文字データで構成された関数と接続文字とが組み合わされたテキストベースのプログラミング言語データであって、テキストエディタによる表示空間上での接続文字を基準とした各関数の位置関係によって各関数の関連性が定義されたものである。
本実施の形態の場合、プログラムは視覚的にフローチャートとして表されるように作成するため、関数には判別処理を表す判別関数とそれ以外の通常関数とが定義されている。判別関数には、関数内の所定の文字位置に所定の文字データを挿入することが定められている。本例の場合、判別関数には関数内の文頭位置に「is」の2文字を挿入することが定められている。
関数が表す処理の内容については、例えば図中「isOver30」と表記される判別関数としては年齢が30歳以上であるか否かの判別処理を表しており、図中「giveCarnation」の通常関数としてはカーネーションに関する広告データを表示させるための処理を表している。
接続文字としては、関数に用いる文字データ以外の文字データが割り当てられており、本例においては「−」「|」の文字データが割り当てられている。接続文字「−」は、テキストエディタによる表示空間上において横方向に離間して配置された関数間を接続するための接続文字(第一接続文字)とされ、接続文字「|」は同表示空間上において縦方向に離間して配置された関数間を接続するための接続文字(第二接続文字)とされている。
接続文字「−」「|」を用いた関数間の「接続」は、

・「−」:同一の行内において、二つの関数の間に配置する
・「|」:縦方向において、異なる行に配置される二つの関数の間の行に配置すると共に、それら二つの関数と該「|」が縦方向において重なるように配置する

ことで行う。
このような「接続」が行われるように、プログラムの作成・編集者は、「空白」としての文字データや「改行」としての制御文字データを用いて接続文字や関数の位置を調整することになる。
なお、「空白」については、スペースキーによる1文字分の空白、Tabキー等による複数文字分の空白の何れが用いられてもよい。
ここで、本例のテキストVPLにおいては、接続文字「−」「|」の連続配置が許容されている。ここで言う連続配置とは、「−」については「−」が横方向に連続して配置されていることを意味し、「|」については「|」が縦方向に連続して配置されていることを意味する。
後述するように、連続配置された接続文字は、プログラムの解釈時においてそれら複数の接続文字が一体として扱われ、単体の接続文字と等価なものとして扱われる。例えば、図中「isOver30」と「isMan」の関数間を接続する「−」「−」は一体として扱われるので、「isMan」と「Car」の関数間を接続する単体の「−」と等価に扱われる。また、例えば図中「isOver30」と「isOver20」の関数間を接続する連続した「|」も一体として扱われるため、「is14thFeb」と「giveRose」の関数間を接続する単体の「|」と等価に扱われる。
本実施の形態のテキストVPLでは、接続文字を基準とした各関数の位置関係により、各関数間の関連性が以下のように定義されている。

・判別関数に対し「−」を介して右側に接続された関数は、該判別関数のYes分岐後の関数である
・判別関数に対し「|」を介して下側に接続された関数は、該判別関数のNo分岐後の関数である
・通常関数に対し「−」を介して右側に接続された関数は、該通常関数の処理に続けて実行される関数である
このように各関数間の関連性が定義された本例のテキストVPLによれば、図3を参照して分かるように、テキストベースでありながら処理の流れをフローチャートにより視覚的に理解し易く表すプログラムを作成することができる。
<4.テキストVPLの解釈及び処理の実行制御について>

図4は、テキストVPLで記述されたプログラムに従った処理をショッピングサーバ3aに実行させるための構成について説明するための図であり、制御端末3d内のCPU101及び記憶部108と、ショッピングサーバ3a内のCPU101とを示している。
図4では、制御端末3d、ショッピングサーバ3aのそれぞれにおけるCPU101が有する機能をブロック図により表している。図のように制御端末3dのCPU101は、プログラム作成・編集処理部10、パース処理部11、実行制御部12としての機能を有し、ショッピングサーバ3aのCPU101はバーチャルマシン20、処理実行部21としての機能を有している。
プログラム作成・編集処理部10としての機能は、操作入力に応じてテキストVPLによるプログラムの作成・編集を行って、テキストVPLプログラム13としてのテキストファイルを作成(更新)する機能である。このプログラム作成・編集処理部10としての機能は、制御端末3dにインストールされているテキストエディタとしてのソフトウェアアプリケーションにより実現される。
パース処理部11としての機能は、記憶部108に記憶されている関数対応情報14に基づき、テキストVPLプログラム13のパーシング(Parsing)を行って、機械語への変換の前段階のコードとしての中間コード15を生成する。
ここで、関数対応情報14は、先の図3で説明したテキストVPLで用いられる関数を中間コード15で用いられる関数に変換するための変換テーブルとして機能するもので、テキストVPLで用いられる関数ごとに、それに対応する中間コード15での関数の情報が格納されている。
図5は、図3に示したテキストVPLによるプログラムを中間コード15に変換した例を示している。
この図5に示すように、本例では、中間コード15としてC言語によるコードを生成している。
パース処理部11は、テキストVPLプログラム13について、関数と接続文字の切り分け、及び接続文字に基づく関数間の関連性の解釈処理を行い、該解釈処理の結果と関数対応情報15とに基づいて中間コード15を生成する。
なお、中間コード15としては、C言語によるコードに限定されるものではなく、VPL以外のプログラミング言語であれば他のプログラミング言語によるコードを生成することもできる。
ここで、パース処理部101が行う上記の解釈処理は、テキストエディタによる表示空間上での接続文字を基準とした各関数の位置関係に基づいて行われるが、該解釈処理の詳細ついては後に改めて説明する。
パース処理部101は、生成した中間コード15を、図4に示されるように記憶部108に記憶させる。
また、図4において、実行制御部12としての機能は、中間コード15に基づく処理をショッピングサーバ3aのCPU101に実行させるための制御を行う機能である。
ここで、本例において、機械語への変換は、いわゆるAOT(Ahead Of Time)コンパイラのように処理の実行前に対象コード全体を機械語に変換する手法ではなく、JIT(Just-In-Time Compiler)コンパイラやインタープリタのように処理の実行時に対象コードの必要部分のみを逐次機械語に変換する手法を採っている。
本例における実行制御部12は、中間コード15を関数の単位に基づく所定のモジュール単位で逐次ショッピングサーバ3aのバーチャルマシン20に送信する。具体的には、中間コード15を例えば関数と同単位の区切りで逐次ショッピングサーバ3aのバーチャルマシン20に送信する。
バーチャルマシン20は、送信されたコードを機械語に逐次変換して処理実行部21に受け渡す。処理実行部21は、機械語に従った処理を逐次実行する。
上記のような構成により、ショッピングサーバ3aにおいて、テキストVPLにより作成されたプログラムに従った処理が実行される。
ここで、前述したA/Bテスト時には、表示広告を少なくとも2パターン表示させ、それぞれの評価結果を得る。例えば、図3のプログラム例において、テストを施行するスタッフは、例えば「isPinkLover」の判別関数のYes分岐後の通常関数(広告表示処理)を、図示している通常関数「giveCarnation」としたプログラムによりショッピングサーバ3aに広告表示処理を実行させ、その評価結果を得、その後、当該通常関数「giveCarnation」を他の通常関数(例えば「givePinkRose」など)に書き替えたプログラムにより再度、ショッピングサーバ3aに広告表示処理を実行させ、その評価結果を得る。
このようにプログラムの該当箇所を逐次書き替えるA/Bテスト施行時において、仮にAOTコンパイラのように対象コード全体を機械語に変換する手法を採ってしまうと、該プログラムに従った処理の開始までに長時間を要してしまい、テストをスムーズに行えず望ましくない。このため、本実施の形態では、JITコンパイラやインタープリタのように処理の実行時に対象コードの必要部分のみを逐次機械語に変換する手法を採っている。これにより、プログラム修正に柔軟に対応可能とでき、A/Bテストやその他動作確認などに最適な環境を提供できる。
<5.処理手順>

続いて、パース処理部11がテキストVPLを解釈するにあたって実行する具体的な処理の手順を図6及び図7のフローチャートを参照して説明する。
なお、図6及び図7に示す処理は、制御端末3dのCPU101が例えばROM102等の所要の記憶部に記憶されたプログラムに従って実行するものである。
先ず、図6において、CPU101は、ステップS101で行識別子nを0リセットし、続くステップS102で文字位置識別子mを0リセットする。行識別子nは、テキストエディタによる表示空間上での「行」を識別するための数値であり、文字位置識別子mは各行における文字位置(各行の文頭からの文字数)を識別するための数値である。
ステップS101及びステップS102のリセット処理を実行したことに応じ、CPU101はステップS103でn行目のm文字目のデータを取得し、続くステップS104で取得したデータが「空白」「−」「|」「改行」以外であるか否かを判別する。
ステップS104において、取得したデータが「空白」「−」「|」「改行」以外であった場合、CPU101はステップS105に進んでデータとその位置情報(n行目のm文字目)を保持し、ステップS127で文字位置識別子mをインクリメント(+1)した上で、ステップS103に戻る。
このように取得したデータが「空白」「−」「|」「改行」以外であった場合は、該データとその位置情報が保持された上で、n行目における次の文字位置のデータが取得される。
一方、ステップS104において、取得したデータが「空白」「−」「|」「改行」以外でなかった場合、CPU101はステップS106に進んで該取得したデータが「−」であるか否かを判別する。
「−」でなかった場合、CPU101はステップS107で該取得したデータが「|」であるか否かを判別し、「|」でなかった場合は、ステップS108で該取得したデータが「改行」であるか否かを判別する。
つまり、これらステップS106〜S108によっては、ステップS103で取得したデータが「空白」「−」「|」「改行」の何れであるかが判定される。
先ずは、ステップS106の判別処理により取得データが「−」であったとされた場合に対応して実行される処理を、図7のフローチャートを参照して説明する。
図7において、CPU101はステップS109で、取得した「−」のデータの位置情報を保持した上で、続くステップS110で該「−」の左側も「−」であるか否かを判別する。左側も「−」であれば、CPU101はステップS111に進んで取得した「−」とその左側の「−」とを一体登録し、図6に示したステップS127に進む。
つまり、連続配置された「−」が一体登録された後、次の文字位置のデータ取得が為される。
一方、左側が「−」でなかった場合、CPU101はステップS112に進んで左側の文字列を関数として抽出し、続くステップS113で該抽出した関数が判別関数であるか否かを判別する。すなわち、本例においては、ステップS112で抽出した関数としての文字列の文頭に「is」の2文字が挿入されているか否かを判別する。
ステップS113において、抽出した関数が判別関数でなかった場合、CPU101はステップS114で該関数を通常関数として登録し、ステップS116に進む。
一方、抽出した関数が判別関数であった場合、CPU101はステップS115で該関数を判別関数として登録し、ステップS116に進む。
ステップS116でCPU101は、該関数(ステップS114又はS115で登録した関数)の左側に「−」があるか否かを判別する。
左側に「−」がなかった場合、CPU101はステップS120に進む。
一方、左側に「−」があった場合、CPU101はステップS117で該「−」の左側の関数が判別関数であるか否かを判別し、判別関数であった場合は、ステップS118で登録関数(ステップS114又はS115で登録した関数)を上記左側の関数(判別関数)のYes分岐後の関数として関連付け、ステップS120に進む。
また、該「−」の左側の関数が判別関数でなかった場合、CPU101はステップS119で登録関数を上記左側の関数(通常関数)の次の実行する関数として関連付け、ステップS120に進む。
上記の処理により、例えば図3における関数「isMan」と関数「Car」の関係のように、一方の関数(「Car」)の左側の接続文字「−」のさらに左側に接続された関数(「isMan」)が判別関数であった場合には、該一方の関数が該判別関数のYes分岐後の関数として関連付けられる。また、例えば図3における関数「giveCarnation」と関数「bookRestaurant」の関係のように、一方の関数(「giveCarnation」)の左側の接続文字「−」のさらに左側に接続された関数(「bookRestaurant」)が通常関数であった場合には、該一方の関数が該通常関数の次に実行されるべき関数として関連付けられる。
ステップS120でCPU101は、登録関数の上に「|」があるか否かを判別し、「|」があった場合はステップS121で登録関数を「|」の上の関数のNo分岐後の関数として関連付け、図6に示したステップS127に進む。
一方、登録関数の上に「|」がなかった場合、CPU101はステップS121をパスしてステップS127に進む。
これにより、例えば図3における関数「isOver30」と関数「isOver20」の関係のように、一方の関数(「isOver20」)の上側の接続文字「|」のさらに上側に判別関数(「isOver30」)が接続されている場合には、該一方の関数が該判別関数のNo分岐後の関数として関連付けられる。
説明を図6に戻し、n行目のm文字目のデータが「|」、「空白」、又は「改行」であった場合の対応処理について説明する。
ステップS107において、ステップS103で取得したデータが「|」であった場合、CPU101はステップS122に進んで該「|」の位置情報を保持した上で、ステップS123で該「|」の上に関数があるか否かを判別する。
「|」の上に関数がなかった場合、CPU101はステップS124に進んで「|」の上が「|」であるか否かを判別し、「|」の上が「|」であった場合は、ステップS125でそれら「|」を一体登録し、ステップS127に進む。
また、「|」の上が「|」でなかった場合(つまり「|」の上が関数でも「|」でもない場合)、CPU101はステップS125をパスしてステップS127に進む。なお、テキストVPLの記述ルールでは、このように「|」の上が関数でも「|」でもないことは許容されていない。
また、ステップS123において、「|」の上に関数があった場合、CPU101はステップS126に進んで「|」とその上の関数を関連付け、ステップS127に進む。
続いて、ステップS108において、ステップS103で取得したデータが「改行」でなかった場合、すなわち該取得データが「空白」であった場合、CPU101はステップS127に進む。このように取得データが「空白」であった場合は、該「空白」のデータについては特に位置情報の保持等の処理は実行されず、そのまま次の文字位置に処理が進められる。
一方、取得したデータが「改行」であった場合、CPU101はステップS128に進んで行識別子nの値をインクリメント(+1)した上で、ステップS129でn行目のデータが存在しないか否かを判別する。
n行目にデータが存在する場合、CPU101は先のステップS102に戻って文字位置識別子mの値を0リセットする。すなわち、処理が次の行の0文字目に移行する。
また、n行目にデータが存在しなければ、CPU101は図6及び図7に示した処理を終了する。
上記のような図6及び図7の処理により、テキストVPLで記述されたプログラムについて、テキストエディタによる表示空間上での接続文字を基準とした各関数の位置関係に基づいた各関数の関連性の解釈が実現できる。
<6.実施の形態のまとめ>

上記のように本実施の形態の情報処理装置(制御端末3d)は、文字データで構成された関数と接続文字とが組み合わされたテキストベースのプログラミング言語データ(テキストVPLプログラム13)であって、テキストエディタによる表示空間上での接続文字を基準とした各関数の位置関係によって各関数の関連性が定義されたプログラミング言語データを記憶する記憶部(記憶部108)と、前記プログラミング言語データにおける文字列から関数と接続文字とを切り分け、前記表示空間上の前記位置関係から各関数の関連性を解釈する解釈処理部(パース処理部11)とを備えている。
本実施の形態で対象とするプログラミング言語データは、テキストベースでありながら、テキストエディタによる表示空間上における接続文字を基準とした各関数の位置関係によってそれら関数間の関連性が視覚的に理解し易く表される。つまり、VPLとして機能する。このようなテキストVPLは、プログラムの作成・編集にあたり専用のソフトウェアを必要とせず、汎用性の高いプログラミング環境を実現できる。また、テキストベースであるため、プログラムデータサイズも比較的小さくできる。
本実施の形態の情報処理装置は、このようなテキストVPLによるプログラミング環境を実現するべく、テキストVPLの解釈を可能としたものである。
テキストVPLの解釈を可能とすることで、テキストVPLに従った処理をコンピュータ装置にて実行可能とでき、テキストVPLを用いたプログラミング環境を実現できる。
すなわち、テキストVPLを用いた汎用性の高いプログラミング環境を実現できると共に、プログラムデータサイズの縮小化を図ることができる。
また、本実施の形態においては、関数には、判別処理を表す判別関数があり、接続文字には、前記表示空間上における横方向に離間した関数間を接続する第一接続文字と縦方向に離間した関数間を接続する第二接続文字とがある。
この前提の下で、本実施の形態の情報処理装置においては、解釈処理部は、プログラミング言語データにおける各行ごとに文字データの種類を一文字ずつ識別して関数と接続文字の切り分けを行い、関数が判別関数であるか否かを判別し、判別関数としての関数については、該関数に対し第一接続文字を介して右側に接続された関数をYes分岐又はNo分岐のうち一方の分岐後の関数として関連付けし、該関数に対し第二接続文字を介して下側に接続された関数をYes分岐又はNo分岐のうち他方の分岐後の関数として関連付けしている。
これにより、テキストVPLによって視覚的にフローチャートとして表されたプログラムの解釈を可能としている。
従って、フローチャートという視覚的により理解のし易い形態でプログラムを作成・編集することを許容でき、プログラムの作成・編集の容易性向上を図ることができる。
さらに、本実施の形態の情報処理装置においては、解釈処理部は、判別関数であるか否かを、関数内の所定文字の有無により判別している。
先の説明からも理解されるように、本実施の形態のテキストVPLでは、「−」「|」の双方の接続文字によって他の関数と接続されている関数は、判別関数のみである。よって、順当には、「−」「|」の双方の接続関数で他の関数と接続されている関数を、判別関数と判別することが考えられる。
しかしながら、このように「−」「|」の双方の接続関数で他の関数と接続されている関数であるか否かを判別しようとすると、判別関数か否かの判別にあたり、対象の関数の1行下までを読み込む必要があり、その結果、判別関数か否かの判別に要する処理負担の増大化を招いてしまう。
そこで、上記のように関数内の所定文字の有無で判別関数か否かの判別を行うようにすることで、判別関数か否かの判別にあたり対象関数の1行下までを読み込む必要がなくなるようにしている。
従って、判別関数か否かの判別に要する処理負担の増大化防止を図ることができる。
さらにまた、本実施の形態の情報処理装置においては、解釈処理部は、横方向に連続配置されている第一接続文字、縦方向に連続配置されている第二接続文字を一体として扱うようにしている。
これにより、テキストVPLの記述ルールとして、第一接続文字、第二接続文字を連続配置することが許容される。
ここで、先の図3に示したように、プログラムをフローチャートとして記述する場合において、第一の判別関数(例えば図3中「isOver30」)のYes分岐後に第二の判別関数(「isMan」)が配置され、第一の判別関数のNo分岐後に第三の判別関数(「isOVER20」)が配置されているようなケースを想定する。この場合において、仮に接続文字の連続配置が許容されていないとすると、第二の判別関数のNo分岐後の関数(「is14thFeb」)の配置位置と、第三の判別関数のYes分岐後の関数(「isSweetsLover」)の配置位置とが重複し、当該第三の判別関数のYes分岐後の関数を配置することが不能となる虞がある。
例えばこのようなケースにおいて、第二接続文字(「|」)の連続配置が許容されることで、第三の判別関数を第一の判別関数の複数行下に配置することが可能となり、関数の配置位置重複を防止できる。従って、プログラムの作成・編集の自由度の向上を図ることができる。
また、第一接続文字(「−」)及び第二接続文字の連続配置が許容されることで、関数の横方向及び縦方向における配置位置を調整することが可能とされる。従って、視覚的に見易いフローチャートの作成が可能となり、プログラム内容の視覚的な理解し易さの向上を図ることができる。
また、本実施の形態の情報処理装置においては、解釈処理部は、各関数の関連性を解釈した結果に基づいて、機械語へ変換する前段階のコードとしての中間コード(中間コード15)を生成している。
これにより、テキストVPLは、例えばC言語等の所要のプログラミング言語による中間コードに変換される。
テキストVPLから直接的に機械語に変換するのではなく、中間コードを介した変換とすることで、機械語の生成にあたり既存のインタープリタやコンパイラを用いることが可能となる。従って、この点でも汎用性の向上を図ることができる。
さらに、本実施の形態の情報処理装置は、中間コードに従った処理を関数の単位に基づく所定のモジュール単位で逐次実行させる制御を行う実行制御部(実行制御部12)を備えている。
逐次実行型とされることで、プログラム修正に柔軟に対応可能となり、また、処理の実行にあたって中間コードの全てを機械語に変換する必要性がなくなる。
プログラム修正に柔軟に対応可能であることで、前述したA/Bテストや各種動作確認などに最適な環境を提供することができる。
また、中間コードの全てを機械語に変換する必要性がなくなることで、処理の実行開始までに要する時間の短縮化が図られると共に、機械語への変換に要する処理負担(本実施の形態ではショッピングサーバ3aの処理負担)の軽減を図ることができる。
ここで、上記のように中間コードに従った処理を逐次実行する場合には、判別関数に基づく判別処理の結果を利用することで、機械語への変換を当該判別関数のYes分岐後又はNo分岐後の何れか一方のコードのみに限ることができ、処理負担の大幅な軽減を図ることができる。
この際、本実施の形態のようにテキストVPLを用いたプログラム作成・編集を行う装置(制御端末3d)とプログラムに基づく処理を実行する装置(ショッピングサーバ3a)とが異なる場合には、判別関数に基づく判別処理の結果がショッピングサーバ3aから制御端末3dにフィードバックされるように構成しておき、実行制御部12が該判別結果に基づき中間コード15のうち必要とされるコードのみをショッピングサーバ3a(バーチャルマシン20)に逐次送信し、機械語に変換させる。
なお、テキストVPLを用いたプログラム作成・編集を行う装置とプログラムに基づく処理を実行する装置は同一装置であってもよく、その場合には、上記のように判別結果を別装置からフィードバックする構成は不要である。
<7.プログラム及び記憶媒体>

以上、本発明に係る情報処理装置の実施の形態としての制御端末3dを説明してきたが、本実施の形態のプログラムは、制御端末3dの処理を情報処理装置(CPU等)に実行させるプログラムである。
実施の形態のプログラムは、文字データで構成された関数と接続文字とが組み合わされたテキストベースのプログラミング言語データであって、テキストエディタによる表示空間上での接続文字を基準とした各関数の位置関係によって各関数の関連性が定義されたプログラミング言語データを記憶する記憶部を備えた情報処理装置に処理を実行させるプログラムであって、前記プログラミング言語データにおける文字列から関数と接続文字とを切り分け、前記表示空間上の前記位置関係から各関数の関連性を解釈する解釈処理を情報処理装置に実行させる。
すなわち、このプログラムは、情報処理装置(制御端末3d)に図6や図7で説明した処理を実行させるプログラムに相当する。
このようなプログラムにより、上述した制御端末3dとしての情報処理装置を実現できる。
そして、このようなプログラムはコンピュータ装置等の機器に内蔵されている記憶媒体としてのHDDや、CPUを有するマイクロコンピュータ内のROM等に予め記憶しておくことができる。或いはまた、半導体メモリ、メモリカード、光ディスク、光磁気ディスク、磁気ディスクなどのリムーバブル記憶媒体に、一時的あるいは永続的に格納(記憶)しておくことができる。またこのようなリムーバブル記憶媒体は、いわゆるパッケージソフトウェアとして提供することができる。
また、このようなプログラムは、リムーバブル記憶媒体からパーソナルコンピュータ等にインストールする他、ダウンロードサイトから、LAN、インターネットなどのネットワークを介してダウンロードすることもできる。
<8.変形例>

本発明は上記により説明した具体例に限定されず、各種の変形例が考えられる。
例えば上記では、テキストVPLによるプログラム(ソースコード)を中間コードに変換した上で機械語に変換する例を挙げたが、テキストVPLによるプログラムから直接的に機械語に変換することもできる。
また、機械語への変換は、上記で例示した必要部分のみの逐次変換に限定されず、AOTコンパイラのように対象コードの全体を事前に変換する手法を採ることもできる。
また、接続文字については、「−」や「|」に限定されず、他の文字データを割り当てることもできる。
さらに、判別関数か否かを判別する手法については、上記で例示したように関数内の所定文字の有無で判別する手法に限らず、対象とする関数が第一接続文字及び第二接続文字の双方で他の関数と接続されているか否かを判別するなど、他の手法で判別することもできる。
1 ネットワークシステム、2 ネットワーク、3 ショッピングサイト運営システム、3a ショッピングサーバ、3b 商品DB(データベース)、3c 会員DB、3d 制御端末、4 ユーザ端末、5 店舗端末、10 プログラム作成・編集処理部、11 パース処理部、12 実行制御部、13 テキストVPLプログラム、14 関数対応情報、15 中間コード

Claims (8)

  1. 文字データで構成された関数と接続文字とが組み合わされたテキストベースの
    プログラミング言語データであって、テキストエディタによる表示空間上での前
    記接続文字を基準とした各前記関数の位置関係によって各前記関数の関連性が定
    義され、前記関数には、判別処理を表す判別関数があり、前記接続文字には、前
    記表示空間上における横方向に離間した前記関数間を接続する第一接続文字と縦
    方向に離間した前記関数間を接続する第二接続文字とがあるプログラミング言語
    データを記憶する記憶部と、
    前記プログラミング言語データにおける文字列から前記関数と前記接続文字と
    を切り分け、前記表示空間上の前記位置関係から各前記関数の関連性を解釈する
    処理として、前記プログラミング言語データにおける各行ごとに文字データの種
    類を一文字ずつ識別して前記関数と前記接続文字の切り分けを行い、前記関数が
    前記判別関数であるか否かを判別し、前記判別関数としての関数については、該
    関数に対し前記第一接続文字を介して右側に接続された関数をYes分岐又はN
    o分岐のうち一方の分岐後の関数として関連付けし、該関数に対し前記第二接続
    文字を介して下側に接続された関数をYes分岐又はNo分岐のうち他方の分岐
    後の関数として関連付けする処理を行う解釈処理部とを備える
    情報処理装置。
  2. 前記解釈処理部は、
    前記判別関数であるか否かを、前記関数内の所定文字の有無により判別する
    請求項1に記載の情報処理装置。
  3. 前記解釈処理部は、
    前記横方向に連続配置されている前記第一接続文字、前記縦方向に連続配置さ
    れている前記第二接続文字を一体として扱う
    請求項1に記載の情報処理装置。
  4. 前記解釈処理部は、
    各前記関数の関連性を解釈した結果に基づいて、機械語へ変換する前段階のコ
    ードとしての中間コードを生成する
    請求項1に記載の情報処理装置。
  5. 前記中間コードに従った処理を前記関数の単位に基づく所定のモジュール単位
    で逐次実行させる制御を行う実行制御部を備える
    請求項4に記載の情報処理装置。
  6. 文字データで構成された関数と接続文字とが組み合わされたテキストベースの
    プログラミング言語データであって、テキストエディタによる表示空間上での前
    記接続文字を基準とした各前記関数の位置関係によって各前記関数の関連性が定
    義され、前記関数には、判別処理を表す判別関数があり、前記接続文字には、前
    記表示空間上における横方向に離間した前記関数間を接続する第一接続文字と縦
    方向に離間した前記関数間を接続する第二接続文字とがあるプログラミング言語
    データを記憶する記憶部を備えた情報処理装置における情報処理方法であって、
    前記プログラミング言語データにおける文字列から前記関数と前記接続文字と
    を切り分け、前記表示空間上の前記位置関係から各前記関数の関連性を解釈する
    処理として、前記プログラミング言語データにおける各行ごとに文字データの種
    類を一文字ずつ識別して前記関数と前記接続文字の切り分けを行い、前記関数が
    前記判別関数であるか否かを判別し、前記判別関数としての関数については、該
    関数に対し前記第一接続文字を介して右側に接続された関数をYes分岐又はN
    o分岐のうち一方の分岐後の関数として関連付けし、該関数に対し前記第二接続
    文字を介して下側に接続された関数をYes分岐又はNo分岐のうち他方の分岐
    後の関数として関連付けする処理を行う解釈手順を有する
    情報処理方法。
  7. 文字データで構成された関数と接続文字とが組み合わされたテキストベースの
    プログラミング言語データであって、テキストエディタによる表示空間上での前
    記接続文字を基準とした各前記関数の位置関係によって各前記関数の関連性が定
    義され、前記関数には、判別処理を表す判別関数があり、前記接続文字には、前
    記表示空間上における横方向に離間した前記関数間を接続する第一接続文字と縦
    方向に離間した前記関数間を接続する第二接続文字とがあるプログラミング言語
    データを記憶する記憶部を備えた情報処理装置に処理を実行させるプログラムで
    あって、
    前記プログラミング言語データにおける文字列から前記関数と前記接続文字と
    を切り分け、前記表示空間上の前記位置関係から各前記関数の関連性を解釈する
    処理として、前記プログラミング言語データにおける各行ごとに文字データの種
    類を一文字ずつ識別して前記関数と前記接続文字の切り分けを行い、前記関数が
    前記判別関数であるか否かを判別し、前記判別関数としての関数については、該
    関数に対し前記第一接続文字を介して右側に接続された関数をYes分岐又はN
    o分岐のうち一方の分岐後の関数として関連付けし、該関数に対し前記第二接続
    文字を介して下側に接続された関数をYes分岐又はNo分岐のうち他方の分岐
    後の関数として関連付けする処理を行う解釈処理
    を前記情報処理装置に実行させる
    プログラム。
  8. 文字データで構成された関数と接続文字とが組み合わされたテキストベースの
    プログラミング言語データであって、テキストエディタによる表示空間上での前
    記接続文字を基準とした各前記関数の位置関係によって各前記関数の関連性が定
    義され、前記関数には、判別処理を表す判別関数があり、前記接続文字には、前
    記表示空間上における横方向に離間した前記関数間を接続する第一接続文字と縦
    方向に離間した前記関数間を接続する第二接続文字とがあるプログラミング言語
    データを記憶する記憶部を備えた情報処理装置に処理を実行させるプログラムを
    記憶した記憶媒体であって、
    前記プログラミング言語データにおける文字列から前記関数と前記接続文字と
    を切り分け、前記表示空間上の前記位置関係から各前記関数の関連性を解釈する
    処理として、前記プログラミング言語データにおける各行ごとに文字データの種
    類を一文字ずつ識別して前記関数と前記接続文字の切り分けを行い、前記関数が
    前記判別関数であるか否かを判別し、前記判別関数としての関数については、該
    関数に対し前記第一接続文字を介して右側に接続された関数をYes分岐又はN
    o分岐のうち一方の分岐後の関数として関連付けし、該関数に対し前記第二接続
    文字を介して下側に接続された関数をYes分岐又はNo分岐のうち他方の分岐
    後の関数として関連付けする処理を行う解釈処理
    を前記情報処理装置に実行させるプログラムを記憶した
    記憶媒体。
JP2014547205A 2014-06-25 2014-06-25 情報処理装置、情報処理方法、プログラム、記憶媒体 Active JP5666758B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/066823 WO2015198419A1 (ja) 2014-06-25 2014-06-25 情報処理装置、情報処理方法、プログラム、記憶媒体

Publications (2)

Publication Number Publication Date
JP5666758B1 true JP5666758B1 (ja) 2015-02-12
JPWO2015198419A1 JPWO2015198419A1 (ja) 2017-04-20

Family

ID=52569488

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014547205A Active JP5666758B1 (ja) 2014-06-25 2014-06-25 情報処理装置、情報処理方法、プログラム、記憶媒体

Country Status (4)

Country Link
US (1) US10073680B2 (ja)
JP (1) JP5666758B1 (ja)
TW (1) TWI528289B (ja)
WO (1) WO2015198419A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017022041A1 (ja) * 2015-07-31 2017-02-09 楽天株式会社 木構造データ編集装置、木構造データ編集方法、及びプログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109800020B (zh) * 2019-02-02 2023-02-10 北京字节跳动网络技术有限公司 一种程序开发的代码自动调整方法、装置、设备和介质
CN109992263B (zh) * 2019-04-05 2022-09-13 腾讯科技(深圳)有限公司 一种执行可视化编程的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60100226A (ja) * 1983-10-17 1985-06-04 Fujitsu Ltd 木構造チヤ−ト・テキスト処理装置
JPH06282420A (ja) * 1993-03-29 1994-10-07 Nippon Telegr & Teleph Corp <Ntt> プロセス起動制御方法
US20020007483A1 (en) * 1997-01-29 2002-01-17 Lopez Luis R. Interactive flow visualization, graphical editing and analysis of textual languages

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410331A (en) * 1992-05-20 1995-04-25 Carmex, Inc. Process for generating and/or using a look-up table
US5537630A (en) * 1994-12-05 1996-07-16 International Business Machines Corporation Method and system for specifying method parameters in a visual programming system
US7661096B2 (en) * 2004-02-13 2010-02-09 Microsoft Corporation Interaction with nested and non-nested streams
US7937694B2 (en) * 2004-02-13 2011-05-03 Microsoft Corporation Fast flattening of nested streams
JP3805776B2 (ja) 2004-02-26 2006-08-09 三菱電機株式会社 グラフィカルプログラミング装置及びプログラマブル表示器
JP2005309593A (ja) 2004-04-19 2005-11-04 Mitsubishi Electric Corp プログラム作成装置及びプログラム作成方法
EP1610219A1 (de) * 2004-06-23 2005-12-28 Renner, Peter Programmiersystem
US7797739B2 (en) * 2004-12-14 2010-09-14 International Business Machines Corporation Automated verification of correctness of aspects of an information technology system
US20080271001A1 (en) * 2006-09-11 2008-10-30 Yo Nonomura Method of generating program, information processing device and microcomputer
US20090037876A1 (en) * 2007-07-31 2009-02-05 Microsoft Corporation Visible white space in program code
US8468511B2 (en) * 2008-12-31 2013-06-18 International Business Machines Corporation Use of name mangling techniques to encode cross procedure register assignment
US8327321B2 (en) * 2009-01-31 2012-12-04 Ted J. Biggerstaff Synthetic partitioning for imposing implementation design patterns onto logical architectures of computations
GB0908913D0 (en) * 2009-05-26 2009-07-01 Univ Dundee Software development tool
US9250925B2 (en) * 2010-04-13 2016-02-02 Sybase, Inc. Adding inheritance support to a computer programming language
US9182962B2 (en) * 2010-12-09 2015-11-10 Todd Bradley KNEISEL Method for translating a cobol source program into readable and maintainable program code in an object oriented second programming language
WO2013018204A1 (ja) * 2011-08-03 2013-02-07 株式会社日立製作所 画像処理ソフトウェア開発方法、画像処理ソフトウェア開発装置、および、画像処理ソフトウェア開発プログラム
US9342277B2 (en) * 2013-03-14 2016-05-17 Oracle International Corporation Method of searching data associated with nodes of a graphical program
US11061539B2 (en) * 2013-03-15 2021-07-13 The Mathworks, Inc. Reference nodes in a computational graph

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60100226A (ja) * 1983-10-17 1985-06-04 Fujitsu Ltd 木構造チヤ−ト・テキスト処理装置
JPH06282420A (ja) * 1993-03-29 1994-10-07 Nippon Telegr & Teleph Corp <Ntt> プロセス起動制御方法
US20020007483A1 (en) * 1997-01-29 2002-01-17 Lopez Luis R. Interactive flow visualization, graphical editing and analysis of textual languages

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017022041A1 (ja) * 2015-07-31 2017-02-09 楽天株式会社 木構造データ編集装置、木構造データ編集方法、及びプログラム
JP6162909B2 (ja) * 2015-07-31 2017-07-12 楽天株式会社 木構造データ編集装置、木構造データ編集方法、及びプログラム
JPWO2017022041A1 (ja) * 2015-07-31 2017-08-03 楽天株式会社 木構造データ編集装置、木構造データ編集方法、及びプログラム
US11055069B2 (en) 2015-07-31 2021-07-06 Rakuten, Inc. Tree structure data editing device, tree structure data editing method, and program

Also Published As

Publication number Publication date
TW201545066A (zh) 2015-12-01
JPWO2015198419A1 (ja) 2017-04-20
WO2015198419A1 (ja) 2015-12-30
TWI528289B (zh) 2016-04-01
US20170046133A1 (en) 2017-02-16
US10073680B2 (en) 2018-09-11

Similar Documents

Publication Publication Date Title
US11294968B2 (en) Combining website characteristics in an automatically generated website
US9081769B2 (en) Providing translation assistance in application localization
CN101743544A (zh) 跨语言信息检索
CN103827857A (zh) 个人化内容递送系统和方法
WO2012176507A1 (ja) 情報提供装置、情報提供方法、情報提供プログラム、情報表示プログラム、及び情報提供プログラムを記憶するコンピュータ読取可能な記録媒体
US20170109442A1 (en) Customizing a website string content specific to an industry
CN106951495A (zh) 用于呈现信息的方法和装置
CN102141868A (zh) 快捷操作信息交互页面的方法、输入法系统和浏览器插件
CN104679642A (zh) 日志分析系统中的日志的与语言无关的处理方法和系统
JP5666758B1 (ja) 情報処理装置、情報処理方法、プログラム、記憶媒体
WO2016016994A1 (ja) 情報処理装置、情報処理方法、プログラム、記憶媒体
KR101585755B1 (ko) 그루핑 지원 프로그램을 저장하는 컴퓨터 판독 가능한 기억 매체, 그루핑 지원 방법 및 그루핑 지원 서버
JP2009282745A (ja) ウェブページの入力項目への入力を支援する方法、コンピュータ・プログラム及び端末
US20190005405A1 (en) Identifying a product in a document
JP5749876B1 (ja) 情報処理装置、情報処理方法、プログラム、記憶媒体
JP2013008208A (ja) 情報提供装置、情報提供方法、情報提供プログラム、情報表示プログラム、及び情報提供プログラムを記憶するコンピュータ読取可能な記録媒体
KR102277240B1 (ko) 키워드 관계 구조를 이용한 동의어 추출 방법 및 시스템
JP5788240B2 (ja) 情報提供装置、情報提供方法、情報提供プログラム、情報表示プログラム、及び情報提供プログラムを記憶するコンピュータ読取可能な記録媒体
US11048707B2 (en) Identifying a product in a document
TW201508505A (zh) 多字集字碼輸入與即時顯示方法、系統與裝置
EP4002126A1 (en) Computer program, recording device, recording system, analysis device, and recording method
JP2014207019A (ja) 情報処理装置、その制御方法、及びプログラム、並びに情報処理システム、その制御方法、及びプログラム
JP6578693B2 (ja) 情報抽出装置、情報抽出方法、及び、表示制御システム
Rachovski et al. Models and methodologies for automated creating of webpage mobile versions
JP6973132B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム

Legal Events

Date Code Title Description
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: 20141111

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141210

R150 Certificate of patent or registration of utility model

Ref document number: 5666758

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250