JP2007179153A - スクリプトプログラム実行装置、スクリプトプログラム実行方法及び光ディスク装置 - Google Patents

スクリプトプログラム実行装置、スクリプトプログラム実行方法及び光ディスク装置 Download PDF

Info

Publication number
JP2007179153A
JP2007179153A JP2005374601A JP2005374601A JP2007179153A JP 2007179153 A JP2007179153 A JP 2007179153A JP 2005374601 A JP2005374601 A JP 2005374601A JP 2005374601 A JP2005374601 A JP 2005374601A JP 2007179153 A JP2007179153 A JP 2007179153A
Authority
JP
Japan
Prior art keywords
script program
intermediate code
function
execution
script
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.)
Abandoned
Application number
JP2005374601A
Other languages
English (en)
Inventor
Hideyuki Tsutsumitake
秀行 堤竹
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2005374601A priority Critical patent/JP2007179153A/ja
Priority to US11/644,482 priority patent/US20080270984A1/en
Publication of JP2007179153A publication Critical patent/JP2007179153A/ja
Abandoned legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells

Abstract

【課題】スクリプト言語で記述されたアプリケーションの起動および切り替えを高速化する。
【解決手段】スクリプトプログラムの実行が指示される前に、予め前記スクリプトプログラムを読み込み、前記スクリプトプログラムの構文を解析する解析手段102、S201、S202と、前記解析手段の構文解析結果を保存する保存手段104と、前記スクリプトプログラムの実行が指示されると、前記保存手段に保存された前記構文解析結果を用いて、前記スクリプトプログラムから中間コードを生成する生成手段105と、前記生成手段により生成された中間コードを実行する実行手段107とを具備する。
【選択図】図2

Description

本発明は、HDDVD(High Definition DVD)等に用られ、スクリプト言語で記述されたスクリプトプログラムの実行方法に関する。
従来、特定のプラットフォーム(CPU等のハードウェアやOSといった基礎部分)に依存しないプログラム言語として、スクリプト言語がある。CやC++などのコンパイル方式の言語では、ソースコードから各プラットフォームに特化したオブジェクトコードを生成するコンパイルという処理が必要とされるのに対し、スクリプト言語では、インタープリタと呼ばれる処理系上でソースコードが読み込まれ実行される。
コンパイル方式の言語と異なり、スクリプト言語では、インタープリタ上でソースコードが直接実行される仕組みとなっているため、プラットフォームに依存しないプログラミングが可能となっている。そのようなスクリプト言語として、Webブラウザで広く利用されているJava(登録商標)Script (Netscape社), JScript (Microsoft社), ActionScript (Macromedia社) などがある。
スクリプト言語を実行するインタープリタの一般的な構成は、ソースコードを読み取り構文構造を解析し、内部表現に変換する構文解析部と、その構文解析結果である構文木を利用して中間コード(もしくは仮想コードと呼ばれる)を生成するコード生成部、および生成したコードを実行する実行エンジン(仮想マシンと呼ばれる)からなる。インタープリタの実装方式によっては、中間コードを生成せずに構文木を直接実行する方式もある。ただし、この場合には実行速度が中間コードを生成する場合に比較して遅いという欠点があるため、多くの処理系では中間コードを生成する方式が一般的となっている。
下記特許文献1には、ソースプログラムを翻訳し、中間言語ファイルを保存しておくインタープリタ方式のプログラム実行方法が開示されている。
特開平1−144127号公報
HDDVDプレーヤにおいても、コンテンツの動的な動作記述などにスクリプト言語を採用している。ここで動的な動作記述とは、例えばリモコンのスキップボタンが押下された場合の動作として、あるコンテンツでは再生のスキップ動作を実行する記述とし、他のコンテンツでは例えばカーソル移動というような動作を実行するようにプログラムを記述することを示す。HDDVDで採用されているスクリプト言語はECMA262と呼ばれる標準規格(以下ECMAScriptと呼ぶ)をベースにしている。
ECMAScriptでは、CやC++などのコンパイラ言語で一般に用いられるオブジェクトファイルに相当するものがないため、新たなアプリケーションを実行する度に、ソースファイルからスクリプトを読み込んで実行するまでの、前述した構文解析および中間コードの生成といった一連の処理が必要となる。
上記特許文献1では、インタープリタで一意な名前をソースプログラムに付けておき、ソースプログラムの実行要求があると、中間言語ファイルがあるか調べる。あった場合は、当該中間言語ファイルを用いてソースプログラムを実行する。
上記ECMAScriptにはライブラリ化機能がないために、複数のアプリケーションで共通の関数を利用している場合であっても、アプリケーション毎に構文解析、中間コード生成などの処理が必要となる。また、ECMAScriptでは、同じ関数名を使用して、実際には異なる関数を定義できる。従って、複数のソースプログラムで同じ関数名の関数を利用している場合であっても、それら関数が異なることがある。
そのため、従来のスクリプト言語の処理系では、アプリケーションを実行する際に、ソースファイルの読み込み、構文解析、中間コード生成など一連の処理が必要になるため、アプリケーションの起動、切り替え処理に時間がかかり、さらに同じ関数を別々のアプリケーションが利用する場合でも個別の処理が行われるため必要以上のメモリを消費するという問題があった。
本発明は以上の問題を解決するために鑑みられたものである。すなわち、スクリプト言語で記述されたアプリケーションの起動および切り替えを高速化することを目的とする。
本発明の1実施形態に係るスクリプトプログラム実行装置は、スクリプトプログラムの実行が指示される前に、予め前記スクリプトプログラムを読み込み、前記スクリプトプログラムの構文を解析する解析手段と、前記解析手段の構文解析結果を保存する保存手段と、前記スクリプトプログラムの実行が指示されると、前記保存手段に保存された前記構文解析結果を用いて、前記スクリプトプログラムから中間コードを生成する生成手段と、前記生成手段により生成された中間コードを実行する実行手段とを具備する。これにより、スクリプト言語で記述されたアプリケーションの起動および切り替えが高速化される。
前記スクリプトプログラムは複数の関数を含み、前記中間コード生成手段は、前記関数の中間コードを生成し、前記関数の等価性を判定する判定手段を更に具備し、前記実行手段は、前記判定手段により互いに等価な関数が前記スクリプトプログラム中に存在すると判定された場合、一方の関数の実行において生成された関数の中間コードを、他方の関数の実行において共用する。これにより、同じ関数を複数のアプリケーションで利用する場合などのメモリ使用効率が改善される。
本発明によれば、スクリプト言語で記述されたアプリケーションの起動および切り替えの高速化が実現される。
以下、図面を参照して本発明の実施の形態を説明する。
図1は本発明によるスクリプトプログラム実行装置100の概要構成を示すブロック図である。このスクリプトプログラム実行装置100は、ソフトウェアとしてメモリ上に展開する形式でもよいし、ハードウェアとして各製品に個別に構成してもよい。
スクリプトファイル101は、通常はアスキーテキストファイルとして与えられる。このスクリプトファイルは構文解析手段102に与えられ、構文木と呼ばれるツリー状のデータ構造が構築される。構文木110はプログラムの文法的要素を木構造に変換したものである。生成された構文木110は構文木保存手段104に保持され、その構文木は構文木管理手段103により管理される。スクリプトファイル101から構文木110を生成する処理は、スクリプト自身の実行とは無関係であり、スクリプトファイルが与えられた時点でスクリプトの実行指示とは関係なく構文木110に変換され、構文木保存手段104に保持される。
次に、この構文木110から中間コード生成手段105により、仮想マシン上の命令コードである中間コード111が生成される。中間コード111は中間コード管理手段108により各関数と対応付けて、中間コード保存手段109に保存される。生成された中間コード111は中間コード実行手段(仮想マシン)107により実行される。スクリプトの実行とはこの中間コードを実行することである。
HDDVDプレーヤで採用しているECMAScriptでは、スクリプトは関数定義とグローバルコードと呼ばれる関数の外に記述されたコードから構成される。スクリプトにおいて最初に実行される部分はこのグローバルコードである。グローバルコードはどの関数にも属さないコードであるが、仮想的にGlobalという関数のコードであると解釈される。関数等価性判定手段106は別々の関数が等価なものであるかどうかを判定する手段である。
図2は以上述べた構成を利用して、スクリプトファイルすなわちスクリプトプログラムを読み込んでから実行するまでの処理の流れを示したフローチャートである。
先ず、構文解析手段102は、スクリプトのソースファイル101を読み込み(S201)、構文木110を生成する(S202)。生成された構文木は構文木管理手段103により構文木保存手段104に保存される。これらの処理(S201、S202)は、スクリプトプログラムの実行が指示される前(起動前)に予め行われる。構文木110を生成することにより、スクリプトプログラム中でどの部分が関数でどれがグローバルコードであるかを判定できる。グローバルコードは、図1に示すスクリプトファイル101中の100aとして示されている。
プログラムの実行が指示されると、中間コード生成手段105は、グローバルコードを中間コードに変換する(S203)。この中間コードは中間コード実行手段107に転送されると共に、中間コード管理手段108により中間コード保存手段109に保存される。中間コード実行手段107は、中間コードに変換されたグローバルコードをステップ実行する(S204)。ここでステップ実行とは、中間コードを解釈しながら逐次実行することを意味する。解釈した中間コードが関数呼び出しかどうか調べ(S205)、関数呼び出しではない場合、中間コード実行手段107は、その中間コードを単純に実行する(S209)。もし、関数呼び出しの場合、関数等価性判定手段106は、その関数本体が既に中間コードに変換されているか調べる(S206)。関数本体が変換されていない場合、中間コード生成手段105は関数本体を中間コードに変換し(S207)、中間コード実行手段107は、変換された中間コードを実行する(S208)。この中間コードの実行は、その実行中にさらに別の関数呼び出しを伴う場合があり、再帰的な処理となる。
次に、ステップS208における関数の中間コードを実行する再帰的な処理について説明する。図3はこの処理を示すフローチャートである。
ステップS302において、グローバルコードの処理と同様に、中間コード実行手段107は関数の中間コードをステップ実行する。中間コードが関数呼び出しかどうか調べ(S303)、その中間コードが関数呼び出しでない場合、中間コード実行手段107はその中間コードを実行する(S307)。そしてそのコードがリターン命令かどうか調べ(S308)、リターン命令なら、中間コード実行手段107は処理を終了する(S309)。
一方、関数呼び出しの場合、関数等価性判定手段106は関数が中間コードに変換されているかどうかを調べる(S304)。変換されていない場合、中間コード生成手段105は関数を中間コードに変換する(S305)。そして、中間コード実行手段107は、関数の中間コードを再帰的に実行する(S306)。
ここでは図示していないが、一旦、中間コードに変換された関数の構文木はメモリ中から削除してもよい。図4にその動作を概念的に示す。ここでは、アプリケーション(program)は関数func1と関数func2から構成されている(状態401)。まず、func1が中間コードに変換され、func1に相当する構文木が削除される(状態402)。次にfunc2が呼び出され中間コードを生成し、対応する構文木を削除する(状態403)。
次に、別々のアプリケーションで共通の関数が利用されている場合、その関数をアプリケーション間で共有する方式について説明する。ECMAScriptではCやC++などのプログラム言語と異なり、同じ関数名であっても実行時に別の関数として再定義することができる。そのため、関数の等価性を関数名だけでは判断できず、関数本体のコードを調べる必要がある。ここでは関数の等価性判定として、変数名の置き換え、ブロック文の統一化、および予約語の置き換えを行い、その結果の文字列の等価性で判定している。
図5に関数の等価性判定の具体的な例を示す。
program1(501)とprogram2(502)をそれぞれ本手法を用いて文字列に変換したものが文字列503となり、関数func1とfunc4が同一であることがわかる。ここで、program1では関数名func1をv0、変数a、b、cをそれぞれv1、v2、v3に置き換え、program2では関数名func4をv0、変数x、a、dをそれぞれv1、v2、v3に置き換えている。また予約語であるfunction、if、else、returnをそれぞれ%F、%I、%E、%Rに置き換えている。他の予約語についても同様の変換を行う。また、if文などにおける文は必ず‘{’と‘}’のついたブロック文とし、複数の連続した空白は1つにするなどの正規化を行っている。以下では、このように変換された文字列表現を関数の標準正規化文字列と呼ぶ。
関数等価性判定手段106は、このようにして得られた標準正規化文字列を、その関数名と共にレジスタ106aに格納しておく。関数等価性判定手段106はまた、後のアプリケーション実行時に関数呼び出しが発生した場合、呼び出した関数の標準正規化文字列と、レジスタ106aに格納されている関数の標準正規化文字列とを比較し、関数の等価性を判定する。
program1とprogram2中でfunc1とfunc4が共通の関数であることが判定されると、中間コードが共用できる。図6は、その様子を概念的に示す図である。program1のfunc1が中間コードに変換され、実行中にprogram2のfunc4が呼び出される。func4はその時点ではまだ中間コードに変換されていない。関数等価性判定手段106により、func4がfunc1と等価であると判定された時点で、func4の中間コードを生成する代わりに、func1の中間コードを中間コード保持手段109から読出し共用する。
図7は関数を中間コードに変換する中間コード生成手段105及び等価性判定手段106の動作を示すフローチャートである。
先ず、図5で説明したように関数等価性判定手段106は、関数の標準正規化文字列を求める(S702)。次に、求めた標準正規化文字列と等価な関数があるかどうか、レジスタ106aを調べる(S703)。等価な関数がない場合、中間コード生成手段105は本関数の構文木から中間コードを生成し(S705)、その中間コードと関数を関連づけて中間コード保存手段109に保存する(S706)。また生成された中間コードは、中間コード実行手段107に転送されて実行される。
中間コードを中間コード保存手段109に保存するには、比較的大きなメモリ容量を必要とする。従って、メモリ容量制限の関係から、中間コードは一度実行されると、消去される場合がある。従って、標準正規化文字列と等価な関数がある場合には、その関数が中間コードに変換されているか(中間コード保存手段109に保存されているか)否か調べ(S704)、変換されていない場合には構文木から中間コードに変換する(S705)。ステップS704で、変換されている場合には、変換されている中間コードと本関数とを関連づける(S706)。つまり、本関数に対応する中間コードを中間コード保存手段109から読出し、中間コード実行手段107に転送する。
一般に、構文木から中間コードを生成する処理は、大きなメモリ容量及び処理時間が必要になるため、コストが非常に高くなる。従って、本発明のように、等価の関数で既に中間コードが生成されている場合には、その中間コードを共用するという処理を実行することにより、無駄な処理を大幅に省略することができる。関数の等価性は文字列の比較で行うことにより、ハッシュ検索などの高速な従来手法を利用することができる。なお、関数の等価性判定として、標準正規化文字列を直接比較するのではなく、その文字列からMD5などの一方向ハッシュ関数を利用して数値同士の比較などに置き換えてもよい。
次に、本発明を光ディスク装置に適用したときの実施例について説明する。図8は本発明が適用される光ディスク装置1の概略構成を示すブロック図である。
光ディスク装置1は、DVDあるいはHDDVD等の光ディスクに対して映像、音声及び他の情報(以下単に情報あるいは映像情報という)の記録及び再生を行う。光ディスク装置1は、映像情報を所定の光ディスクに記録し、光ディスクに既に記録されている映像情報を再生する記録再生部204と、本発明によるスクリプトプログラム実行装置100と、本光ディスク装置1の各部の動作を制御するマイクロコンピュータ(MPU)205とを含む。MPU205は各種制御プログラムを含むROM及び該制御プログラムを実行する際にワークエリアとして使用されるRAMを含む。
記録再生部204は、光ビームを用いてディスクDに情報の記録及び再生が可能なディスクドライブユニット204b、ディスクドライブユニット204bにセットされたディスクDに記録される情報、あるいはディスクDから再生された情報の一定量を一時的に保持する一時記録部204a、大容量データを記録可能なHDD204d、及びデータプロセッサ204cを含んでいる。
データプロセッサ204cは、MPU205の制御に従って、エンコーダ203から出力された記録データをディスクドライブ204bに供給したり、ディスクDの再生信号をディスクドライブ204bから取り込み、デコーダ206に供給する。又データプロセッサ204cは、MPU205の制御に従って、エンコーダ203から出力された記録データをHDD204aに供給したり、HDD204aからの再生信号をデコーダ206に供給する。
エンコーダ203は入力された映像信号をエンコード(圧縮)する。エンコーダ203には、記録対象である映像信号を外部から入力するためのAV入力端子201、及び例えば放送事業者等に代表される情報配信者から配信される映像情報を受信可能なチューナ202が接続されている。
デコーダ206は記録再生部204から出力された映像情報をデコード(伸長)する。デコーダ206には、デコードした再生情報をテレビ等のモニタ装置に供給するためのAV出力端子207が接続されている。
MPU205には、ユーザからの指示(操作入力)を受け付ける操作入力部120が接続されている。操作入力部210は、図示しないリモコン(リモートコントロール端末)から送信された制御信号を受け入れるデータ受信部210a、ユーザから直接入力を受付け、制御信号をMPU205へ出力可能な操作パネル210bを含む。
以下の説明では、ディスクDは映画などの映像コンテンツが予め複数記録されたHDDVDディスクとする。
図9はHDDVDで用いられるスクリプトに関わるデータ構造を示した図である。これらのデータはディスクの他の管理情報と共にHDDVDの内周側に記録され、ディスクDが装置に挿入された直後、最初に読み出される。
HDDVDではコンテンツに関する情報はプレイリスト901と呼ばれるXML形式のファイルで記述される。プレイリスト中には、複数のアプリケーション902、903を指定する記述があり、個々のアプリケーションはマニフェストと呼ばれるXML形式のデータで表現される。図9では、プレイリスト901の例えば最初に記述されたタイトル(Title)すなわち映像コンテンツでは”man1.xml”というマニフェストが指定され、このマニフェストが902のアプリケーション1(app1.xml)にリンクされていることを示している。このアプリケーションには、例えばメニューを表示するようなプログラムが含まれる。
各マニフェストファイル(アプリケーション)中には1以上のスクリプトファイル904、905、906を指定することができる。これらの複数のスクリプトファイルは、まとめて1つのアプリケーションとして実行される。すなわち、スクリプトファイル1(904)とスクリプトファイル2(905)をまとめて1つのアプリケーション(902)が構成され、それとは別に、スクリプトファイル1(904)とスクリプトファイル3(906)をまとめてもう1つのアプリケーション(903)が構成される。
光ディスク装置1のディスクドライブ204bにディスクDが挿入された時点で、MPU205はプレイリストファイルを読み込み、構文解析手段102に提供することができる。従って、映像コンテンツを再生する前に必要なスクリプトファイル(ここでは、script1.js、script2.js、script3.js)を全て知ることができる。各スクリプトファイルには、例えばリモコンのスキップボタン(図示されず)が押下されたときの処理がプログラムとして記述されている。
このように、ディスクドライブ204bにディスクDが挿入されると、MPU205はディスクDからスクリプトファイルを含む管理情報を読み込み、スクリプトプログラム実行装置100の構文解析手段102を用いてスクリプトファイルを構文木に変換する。つまりここでは、図2のステップS201及びS202が実行され、作成された構文木が構文木保存手段104に保存される。ディスクの管理情報が読み込まれ、装置各部の設定が完了すると、ユーザからの入力が可能となる。ユーザから操作入力部210を介してアプリケーション実行指示が入力されると、図2のステップS203〜S209の処理が実行される。
このように、アプリケーション起動前にスクリプトの構文解析を行うことにより、アプリケーション起動・切替の際の処理が中間コード生成だけになり、より高速な処理が実現される。また、構文解析結果を保持しておき、初めて関数が呼ばれたときに逐次的に中間コードに変換することにより、最初の関数を高速に起動できるようになる。
光ディスク装置1はレジューム機能を有している。ユーザがディスクDに記録された複数タイトル中の1つのタイトルを再生し、該タイトルの再生を途中で中断して、装置1の電源を切った場合、該タイトル(最後に再生したタイトル)の情報は保存される。その後、ユーザが光ディスク装置1の電源を入れ、リモコンの再生ボタンを押下すると、最後に再生したタイトルの情報が読み出され、該タイトルの中断位置から再生が再開される。このように、最後に再生したタイトルの情報を保存しておき、再生指示に応じて、最後に再生したタイトルの再生を再開させる機能をレジューム機能という。このレジューム機能はMPU205内に設けられたレジューム手段205aにより実行される。
光ディスク装置1に挿入されたディスクDに、多量のスクリプトファイルが存在する場合には、最初に実行されると予想されるスクリプトを優先的に選択して構文木に変換してもよい。そのようなスクリプトとして、上記最後に再生したタイトルのスクリプトを優先的に予め構文解析しておくことにより、アプリケーションの起動時間が短縮される。最後に再生したタイトルの情報は、上記レジューム機能により保存された情報を用いる。これは、最後に再生したタイトルを次の起動でも再生するという利用シーンが多いことから有効な手段である。
図9の説明に戻る。スクリプトファイル1はアプリケーション1とアプリケーション2の双方から参照されている。これは、実際のファイル名が同一(script.js)ということから判断できる。アプリケーション1を実行した時点で、スクリプトファイル1中の関数func11とfunc12は中間コードに変換されメモリ(中間コード保持手段109)中に保持される。
次にアプリケーション2を実行する時点でアプリケーション1と同一のファイルscript1.jsが読み込まれる。このとき、関数func11の中間コードは共有できるが、関数func12の中間コードは単純には共有できない。何故なら、関数func12はスクリプトファイル3(script3.js)中で再定義されてしまうからである。すなわち、異なるファイル中の同一名の関数が常に等価なものとして実行されるとは限らない。また、同じファイル中の同一名の関数が常に等価なものとして実行されるとは限らない。更に、異なる関数名の関数が、実際には同一の機能であることもある。そこで、本発明のスクリプト実行手段の一つである関数の等価性判定手段106を用いて、図5のようにスクリプトファイル1中の関数func12とスクリプトファイル3中の関数func12が等価なものかどうかを調べ、等価なものでれば、中間コードを共用し、等価でなければ新に中間コードを生成する。
一方、スクリプトファイル2とスクリプトファイル3は別のファイルであるから、上記したように関数名が異なっても関数本体の動作は同一である可能性がある。いま、関数func21と関数func32のそれぞれの標準正規化文字列が同一であれば、両者の関数は同一であると判断される。既にアプリケーション1が実行され、関数func21が中間コードに変換されていれば、アプリケーション2を実行する際に、関数func32を中間コードに変換する必要はなく、関数func21の中間コードを再利用することができる。
関数等価性判定手段106により同一の関数と判断された関数が、複数のアプリケーションで利用されている場合には、生成された中間コードを共用することにより、処理コストの非常に高い中間コード生成処理を省略することができ、関数起動の高速化、メモリ使用量の削減効果がある。
以上の説明はこの発明の実施の形態であって、この発明の装置及び方法を限定するものではなく、様々な変形例を容易に実施することができる。
本発明によるスクリプトプログラム実行装置100の概要構成を示すブロック図である。 スクリプトファイルを読み込んでから実行するまでの処理の流れを示したフローチャートである。 関数の中間コードを実行する再帰的な処理を示すフローチャートである。 中間コードに変換された関数の構文木をメモリ中から削除する動作を概念的に示す図である。 関数の等価性判定処理の具体的な例を示す図である。 プログラム間で中間コードを共用する様子を概念的に示す図である。 中間コード生成手段105及び等価性判定手段106の動作を示すフローチャートである。 本発明が適用される光ディスク装置1の概略構成を示すブロック図である。 HDDVDで用いられるスクリプトに関わるデータ構造を示した図である。
符号の説明
102…構文解析手段、103…構文木管理手段、104…構文木保存手段、105…中間コード生成手段、106…関数等価性判定手段、107…中間コード実行手段、108…中間コード管理手段、109…中間コード保存手段。

Claims (10)

  1. スクリプト言語で記載されたスクリプトプログラムを実行する装置であって、
    前記スクリプトプログラムの実行が指示される前に、予め前記スクリプトプログラムを読み込み、前記スクリプトプログラムの構文を解析する解析手段と、
    前記解析手段の構文解析結果を保存する保存手段と、
    前記スクリプトプログラムの実行が指示されると、前記保存手段に保存された前記構文解析結果を用いて、前記スクリプトプログラムから中間コードを生成する生成手段と、
    前記生成手段により生成された中間コードを実行する実行手段と、
    を具備することを特徴とするスクリプトプログラム実行装置。
  2. 前記スクリプトプログラムは複数の関数を含み、前記中間コード生成手段は、前記関数の中間コードを生成し、
    前記関数の等価性を判定する判定手段を更に具備し、
    前記実行手段は、前記判定手段により互いに等価な関数が前記スクリプトプログラム中に存在すると判定された場合、一方の関数の実行において生成された関数の中間コードを、他方の関数の実行において共用することを特徴とする請求項1記載のスクリプトプログラム実行装置。
  3. 前記スクリプトプログラムは、ECMAScriptにより記述されたプログラムであることを特徴とする請求項1又は2記載のスクリプトプログラム実行装置。
  4. 複数のスクリプトプログラムを含むアプリケーションが記録された光ディスクを再生する光ディスク装置であって、
    前記光ディスクに記録された情報を、光ビームを用いて再生するディスクドライブと、
    前記ディスクドライブに前記光ディスクが挿入されたとき、予め前記光ディスクから前記スクリプトプログラムを読み込む読み込み手段と、
    前記読み込み手段により読み込まれたスクリプトプログラムの構文を解析する解析手段と、
    前記解析手段の構文解析結果を保存する保存手段と、
    前記アプリケーションの実行が指示されると、前記保存手段に保存された前記構文解析結果を用いて、前記スクリプトプログラムから中間コードを生成する生成手段と、
    前記生成手段により生成された中間コードを実行する実行手段と、
    を具備することを特徴とする光ディスク装置。
  5. 前記複数のスクリプトプログラムはそれぞれ関数を含み、前記中間コード生成手段は、前記関数の中間コードを生成し、
    前記関数の等価性を判定する判定手段を更に具備し、
    前記実行手段は、前記判定手段により互いに異なるアプリケーションで等価な関数が存在すると判定された場合、一方のアプリケーションの実行において変換された関数の中間コードを、前記互いに異なるアプリケーションにおいて共用することを特徴とする請求項4記載の光ディスク装置。
  6. 前記解析手段は、前記光ディスクの電源投入時、最後に再生したタイトルのスクリプトプログラムを優先的に構文解釈することを特徴とする請求項4記載の光ディスク装置。
  7. 前記スクリプトプログラムは、ECMAScriptにより記述されたプログラムであること特徴とする請求項4乃至6のうち1項に記載の光ディスク装置。
  8. スクリプト言語で記載されたスクリプトプログラムを実行する方法であって、
    前記スクリプトプログラムの実行が指示される前に、前記スクリプトプログラムを予め読み込み、前記スクリプトプログラムの構文を解析するステップと、
    前記スクリプトプログラムの構文解析結果を保存するステップと、
    前記スクリプトプログラムの実行が指示されると、前記保存された構文解析結果を用いて、前記スクリプトプログラムから中間コードを生成するステップと、
    前記生成された中間コードを実行するステップと、
    を具備することを特徴とするスクリプトプログラム実行方法。
  9. 前記スクリプトプログラムは複数の関数を含み、前記中間コードを生成するステップは、前記関数の中間コードを生成し、
    前記関数の等価性を判定するステップを更に具備し、
    前記中間コードを実行するステップは、互いに等価な関数が前記スクリプトプログラム中に存在すると判定された場合、一方の関数の実行において生成された関数の中間コードを、他方の関数の実行において共用することを特徴とする請求項8記載のスクリプトプログラム実行方法。
  10. 前記スクリプトプログラムは、ECMAScriptにより記述されたプログラムであること特徴とする請求項8又は9記載のスクリプトプログラム実行方法。
JP2005374601A 2005-12-27 2005-12-27 スクリプトプログラム実行装置、スクリプトプログラム実行方法及び光ディスク装置 Abandoned JP2007179153A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005374601A JP2007179153A (ja) 2005-12-27 2005-12-27 スクリプトプログラム実行装置、スクリプトプログラム実行方法及び光ディスク装置
US11/644,482 US20080270984A1 (en) 2005-12-27 2006-12-21 Script program execution device, script program execution method, and optical disk device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005374601A JP2007179153A (ja) 2005-12-27 2005-12-27 スクリプトプログラム実行装置、スクリプトプログラム実行方法及び光ディスク装置

Publications (1)

Publication Number Publication Date
JP2007179153A true JP2007179153A (ja) 2007-07-12

Family

ID=38304302

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005374601A Abandoned JP2007179153A (ja) 2005-12-27 2005-12-27 スクリプトプログラム実行装置、スクリプトプログラム実行方法及び光ディスク装置

Country Status (2)

Country Link
US (1) US20080270984A1 (ja)
JP (1) JP2007179153A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013516720A (ja) * 2010-01-12 2013-05-13 クアルコム,インコーポレイテッド メタデータ抽出による動的言語の実行
EP2945057A1 (en) 2014-05-15 2015-11-18 Fujitsu Limited Process execution method and information processing apparatus

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8566823B2 (en) * 2010-02-05 2013-10-22 Tripwire, Inc. Systems and methods for triggering scripts based upon an alert within a virtual infrastructure
EP2802989A1 (en) * 2012-01-12 2014-11-19 Thomson Licensing Method and device for compiling a source program
CN103412754A (zh) * 2013-08-15 2013-11-27 优视科技有限公司 动态语言代码执行方法和装置
CN104408023B (zh) * 2014-11-05 2017-11-03 中国农业银行股份有限公司 一种指标计算的方法及指标计算器

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6413629A (en) * 1987-07-07 1989-01-18 Nec Corp Intermediate language reuse type translating system for language processing system
JPH05173798A (ja) * 1991-12-20 1993-07-13 Yokogawa Electric Corp Sスクリプトファイル実行装置
JPH0689183A (ja) * 1992-09-09 1994-03-29 Hokkaido Nippon Denki Software Kk インタプリタ処理方式
JPH08263299A (ja) * 1995-03-27 1996-10-11 Sanyo Electric Co Ltd プログラム変換方法
JP2000089965A (ja) * 1998-09-09 2000-03-31 Toshiba Corp 言語処理システム、その方法および言語処理プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003162416A (ja) * 2001-11-27 2003-06-06 Matsushita Electric Ind Co Ltd プログラム変換装置、プログラム変換方法、及び当該プログラム変換装置を実現するためのコンピュータプログラム
WO2005036544A1 (ja) * 2003-10-10 2005-04-21 Sharp Kabushiki Kaisha 再生装置、再生装置の制御方法、コンテンツ記録媒体、データ構造、制御プログラム、制御プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2005151147A (ja) * 2003-11-14 2005-06-09 Toshiba Corp 再生装置及び再生方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6413629A (en) * 1987-07-07 1989-01-18 Nec Corp Intermediate language reuse type translating system for language processing system
JPH05173798A (ja) * 1991-12-20 1993-07-13 Yokogawa Electric Corp Sスクリプトファイル実行装置
JPH0689183A (ja) * 1992-09-09 1994-03-29 Hokkaido Nippon Denki Software Kk インタプリタ処理方式
JPH08263299A (ja) * 1995-03-27 1996-10-11 Sanyo Electric Co Ltd プログラム変換方法
JP2000089965A (ja) * 1998-09-09 2000-03-31 Toshiba Corp 言語処理システム、その方法および言語処理プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003162416A (ja) * 2001-11-27 2003-06-06 Matsushita Electric Ind Co Ltd プログラム変換装置、プログラム変換方法、及び当該プログラム変換装置を実現するためのコンピュータプログラム
WO2005036544A1 (ja) * 2003-10-10 2005-04-21 Sharp Kabushiki Kaisha 再生装置、再生装置の制御方法、コンテンツ記録媒体、データ構造、制御プログラム、制御プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2005151147A (ja) * 2003-11-14 2005-06-09 Toshiba Corp 再生装置及び再生方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013516720A (ja) * 2010-01-12 2013-05-13 クアルコム,インコーポレイテッド メタデータ抽出による動的言語の実行
US9003380B2 (en) 2010-01-12 2015-04-07 Qualcomm Incorporated Execution of dynamic languages via metadata extraction
EP2945057A1 (en) 2014-05-15 2015-11-18 Fujitsu Limited Process execution method and information processing apparatus
JP2015219637A (ja) * 2014-05-15 2015-12-07 富士通株式会社 処理実行プログラム、処理実行方法、及び情報処理装置
US9672016B2 (en) 2014-05-15 2017-06-06 Fujitsu Limited Process execution method and information processing apparatus

Also Published As

Publication number Publication date
US20080270984A1 (en) 2008-10-30

Similar Documents

Publication Publication Date Title
CN100437552C (zh) 执行标记文档applet的设备和方法
JP4868535B2 (ja) ソフトウェア・アプリケーションを自動的に選択する方法
JP2000066902A (ja) 動的トランスレ―タにおけるマルチブランチ修正処理システム
JP2007179153A (ja) スクリプトプログラム実行装置、スクリプトプログラム実行方法及び光ディスク装置
WO2010044150A1 (ja) プログラム変更管理装置、プログラム変更管理プログラムおよびプログラム変更管理方法
US7831964B2 (en) Program automatic converting method and program automatic converting device
KR100329228B1 (ko) 다양한 포맷의 오디오/비디오 기록/재생장치 및기록/재생방법
JP5171627B2 (ja) ディスクオーサリングのテンプレート化コマンド
JP2007503067A (ja) インタラクティブグラフィックストリームを記録した情報記録媒体、その再生装置及び方法
KR20050017571A (ko) Av 데이터를 enav 모드로 재생하는 방법, 그 장치및 그 정보저장매체
JP2006318493A (ja) マルチメディアシステム
WO2015176009A1 (en) Systems and methods for selecting digital data for archival
US6675231B1 (en) System of program objects and program components with external interface
KR100544180B1 (ko) 마크업 문서를 사용하여 av 데이터를 인터랙티브 모드로 재생하는 장치
KR102046250B1 (ko) 프로그래밍 언어 학습을 위한 전자책 뷰어 및 구동 방법, 상기 방법을 수행하기 위한 저장 매체
JP2004206501A (ja) エラーメッセージ出力制御システムと方法およびコンパイラ
KR101177107B1 (ko) 재생 제어 정보 데이터 구조 및 재생 장치
KR100546672B1 (ko) 프로그램에서의 형식 문자열을 이용한 문자 출력 내용의 기록 및 번역 방법
JP4805594B2 (ja) プログラム開発管理装置
JP3604936B2 (ja) 最適化方法,最適化装置及び記録媒体
JP2005339539A (ja) 保存装置の保存情報の自動再生の構造及びその方法
JP2001175453A (ja) 音声応答装置及びその制御方法
KR20060023399A (ko) 멀티미디어 데이터의 재생 방법
JP2010191734A (ja) 画像再生装置及び中間語プログラム実行方法
KR20050001847A (ko) 광디스크 장치에서의 전자사전 기능 수행방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080626

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100126

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110111

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20110121