JP5740349B2 - コンピュータ環境における式の変換 - Google Patents

コンピュータ環境における式の変換 Download PDF

Info

Publication number
JP5740349B2
JP5740349B2 JP2012121089A JP2012121089A JP5740349B2 JP 5740349 B2 JP5740349 B2 JP 5740349B2 JP 2012121089 A JP2012121089 A JP 2012121089A JP 2012121089 A JP2012121089 A JP 2012121089A JP 5740349 B2 JP5740349 B2 JP 5740349B2
Authority
JP
Japan
Prior art keywords
parameter
target
source
expression
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.)
Active
Application number
JP2012121089A
Other languages
English (en)
Other versions
JP2012160214A (ja
Inventor
クレイグ ダブリュ スタンフィル
クレイグ ダブリュ スタンフィル
Original Assignee
アビニシオ テクノロジー エルエルシー
アビニシオ テクノロジー エルエルシー
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 アビニシオ テクノロジー エルエルシー, アビニシオ テクノロジー エルエルシー filed Critical アビニシオ テクノロジー エルエルシー
Publication of JP2012160214A publication Critical patent/JP2012160214A/ja
Application granted granted Critical
Publication of JP5740349B2 publication Critical patent/JP5740349B2/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/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)
  • Machine Translation (AREA)

Description

本発明は、コンピュータ環境における式(エクスプレッション)の変換に関する。
発明の背景
シェルスクリプト言語(例えば、ksh)では、シェルスクリプト内のパラメータは、プレフィックス(例えば、$)を用いて参照される。kshでは、動的環境が、以前に定義されたパラメータの値を維持する。シェルスクリプトを実行するか、またはコマンドラインの式を評価する場合、参照されるパラメータは、動的環境内のパラメータ値にしたがってバインドされる。場合によっては、スクリプト言語でスクリプトを創成する場合、スクリプト言語に適した引用符シンタックスを用いて、リテラル値を維持するようにし、スクリプトを実行する時に引用符付きの式内のパラメータのバインドを無効にすることが有用である。マクロ展開のような、他のメカニズムを用いて、所定の値にパラメータをバインドすることもできる。
概要
一般的な態様では、本発明は式を変換するための方法、ならびに対応するソフトウエアおよびシステムを特徴とする。本方法は、第1シンタックスの第1式を受け取るステップであって、その式は、第1シンタックスを用いて文字列の値を表す第1文字シーケンスを含む;その式を表すための第2シンタックスを特定するステップ;および第2シンタックスで第1式を表す第2式を生成するステップであって、第2文字シーケンスが第2シンタックスを用いた文字列の値を表すように、第1文字シーケンスを用いて第2文字シーケンスを生成するステップを含む;を含む方法である。
本態様には、以下の特徴の内の一つ以上を含めることができる:
第1式は複数の実行可能ステートメントを含む。
第1式はコマンドライン入力を含む。
第1文字シーケンスは参照値へバインドされるパラメータを含む。
第1文字シーケンスを用いて第2文字シーケンスを生成するステップは、パラメータを参照値へバインドするステップ;および第2シンタックスの引用符シンタックスに基づいて参照値を含めるよう第2文字シーケンスを生成するステップ;を含む。
第1文字シーケンスはパラメータを囲む区切り文字を含む。
区切り文字は、引用符シンボルがそのあとに続くドルシンボルを含む所定のプレフィックスを含む。
区切り文字は引用符シンボルを含む所定のサフィックスを含む。
第1文字シーケンスは文字列の値の表現を囲む区切り文字を含む。
文字列の値は、パラメータ参照を示す、第1シンタックスで用いられる文字を含む。
第1文字シーケンスを用いて第2文字シーケンスを生成するステップは、文字列の値内のパラメータのバインドを無効にするステップを含む。
第2シンタックスは、ksh、Java(登録商標)、DML、C、またはSQL等の計算機言語と互換性をもつよう選定される。
第2シンタックスは、文字シーケンスを解釈するための規則を含む。
第2シンタックスを特定するステップは、第1文字シーケンスに先行するトークンに基づいてシンタックスを特定するステップを含む。
一般的な態様では、本発明は式を評価するための方法、ならびに対応するソフトウエアおよびシステムを特徴とする。本方法は、パラメータ定義を格納する一つ以上のデータ構造を受け取るステップ;式で参照される一つ以上のパラメータを特定するステップ;格納された定義に基づいて特定したパラメータそれぞれの値を決定するステップ;およびバインド環境に決定したパラメータ値を格納するステップを含む。
本態様には、以下の特徴の内の一つ以上を含めることができる:
バインド環境は、特定したパラメータの値、および特定したパラメータを評価するのに必要なパラメータの値を格納するが、一つ以上のデータ構造内にその定義を格納するパラメータ全ての値を格納するとは限らない。
本方法は、参照パラメータをバインド環境からの値へバインドさせた状態で、式を実行するステップを更に含む。
式はプログラムまたはスクリプトの一部である。
式はコマンドライン入力を含む。
本発明の態様には、以下の利点の内の一つ以上を含めることができる:
データ処理環境に、データ変換またはレコードフォーマットの定義(例えば、データ操作言語で記述された)等のメタデータを含めることができる。ランタイム時に取得されるリテラル値で定義できる動的メタデータを有することが有用である。特定したシンタックスに基づいてターゲットの式を変換すると、リテラル値を取得できるだけでなく、特定したシンタックスに適した方法でリテラル値を引用できるようになる。更に、特定したシンタックスに対する引用規則を順守することにより、ターゲットの式の評価に際して、幾つかのリテラル値を維持することができる。
コンピュータシステムは、バインド環境でパラメータの値を格納できる。式(例えば、シェルスクリプトまたはコマンドラインの式)を評価する場合、参照パラメータは、バインド環境におけるパラメータ値に基づいてバインドされる。バインド環境内のパラメータ値維持にはオーバーヘッドが存在する。定義パラメータ毎の値を(例えば、パラメータおよびそれらの定義のリスト内に)有するバインド環境を維持する必要性を避けるため、コンピュータシステムは式をスキャンして、その式で実際に参照されるパラメータ、および参照されるパラメータを評価するのにその値が必要なパラメータ、に対してだけ値を決定できる。他の特徴および利点は、以下の説明、およびクレームから明らかになる。
図1は、コンピュータ環境とターゲット環境との間の相互作用を表すブロック図である。 図2は、式を変換するためのコンピュータ環境のブロック図である。 図3は、データ収納庫内のパラメータ割り当てのための格納領域の内容を示すブロック図である。 図4は、ローカルメモリ内のバインド環境の内容を示すブロック図である。
説明
1 概要
図1を参照すると、コンピュータ環境100は、ソースシンタックスを用いて、ソース計算式102の仕様(例えば、スクリプト、プログラム、パス名等)をサポートし、次いで、そのソース式102を、幾つかの可能性のあるターゲット環境の内の一つにおける評価(例えば、実行、拡張等)に適したターゲットシンタックスを用いるターゲット式104へ変換する。コンピュータ環境100は、シェル環境またはコンピュータープログラミング言語環境等の、ターゲット式104を評価する特定のターゲット環境108を特定するためのプロセス106を含む。プロセス106は、ターゲット式104内の情報に基づくか、他のユーザ入力に基づくか、または既定の環境に基づいてターゲット環境を特定することができる。
この変換の一部として、幾つかのパラメータ参照は、変換の際にパラメータ割り当て101に基づいて解決できるように、その一方で、他のパラメータ参照は、変換式を後で評価する際に(例えば、シェル変数109に基づいて)解決できるように、選択可能なパラメータ代入を実行する。この変換プロセスは、ターゲットシンタックスの特性、特に、引用符付き文字列およびパラメータ参照に関するこれらの特性に依存する。
ターゲット式の評価に際して、リテラル値が維持されていることが望ましいことがある。一般に、ターゲットシンタックスそれぞれは、リテラル値を引用するための何らかの種類の規定を含み、演算子、パラメータ代入、または区切り文字に関するシンタックスの解釈等の、シンタックスの他の解釈に基づいてそれが評価されないようになっている。
ターゲット式内のリテラル値の幾つかは、ソース式内のシンボル値に基づいて、例えば、パラメータ代入に基づいて、変換している間に取り込むことができる。すなわち、ターゲット式内の所望するリテラル式の値は、ソース式を規定するときに既知でない可能性がある。
ソース式は、そのソース式を評価する時に引用される値の幾つかを取得することにより所望のターゲット式を生成することができる言語、例えば、パラメータ定義言語(PDL)で、定義することができる。このようなPDLは、多様な可能性のあるターゲット言語の内の一つの適切なシンタックスで、引用されるリテラルを生成するためのメカニズムを含む。「式」には、例えば、スクリプトもしくはプログラムの一部(スクリプトまたはプログラム全体を含む)、またはコマンドライン入力を含めることができる。
図2は、PDLの式を評価し、一つ以上のターゲット言語(例えば、シェル言語または他のスクリプト言語)のシンタックスで得られたターゲット式を実行するための例示のコンピュータ環境100を示す。コンピュータ環境100は、ローカルメモリ120(例えば、ランダムアクセスメモリ)およびデータ収納庫130(例えば、一つ以上の不揮発性格納媒体に常駐する)を含むコンピュータシステム110を含む。データ収納庫130は、スクリプト132、プログラム134、ならびに多様なスクリプト132および/またはプログラム134の何れかに用いることができるパラメーターセット内に編成することができるパラメータ割り当て136(例えば、パラメータ名、パラメータ値、およびオプションでパラメータ属性を含む)等の機能データを格納する。ユーザは、グラフィカルユーザーインターフェース(GUI)140および/またはコマンドラインインターフェース(CLI)150を介してコンピュータシステムと相互作用することができる。
パラメータ割り当て136には、多様なターゲットシンタックスの何れかに変換すべきパラメータ値をユーザが定義できる、整合性があるシンタックスを提供するソースPDLの式を用いて、定義されるパラメータを含めることができる。パラメータ定義は、他のパラメータの値を参照することができる。多様な規則の何れかを用いて、どのパラメータが他のどのパラメータを参照できるかを決定することができる(例えば、順序リストでは、パラメータ定義が、以前に定義したパラメータを参照でき;またはセットでは、一セットのパラメータが、別のセットのパラメータを参照できる)。
詳細に後述するソースPDLの式を評価するための手法は、PDLの式を受け取るステップ、PDLの式を表すためのターゲットシンタックスを特定するステップ、およびターゲットシンタックスに基づいてPDLの式の表現を生成するステップを含む。例えば、PDLの式を含むスクリプトには、PDLの式が続く一連のインライントークンを含めることができる。コンピュータシステム110は、続くPDLの式を解釈するのに用いられるターゲット言語を指示するスクリプト内の各トークンを読み取ることにより、ターゲットシンタックスを特定する。従って、スクリプトの異なる部分を解釈するために用いる異なるターゲット言語を指示する異なるトークンをスクリプト内に含めることにより、スクリプト内のターゲットシンタックスは変更し得る。
受け取ったPDLの式には、文字列の値を表す文字シーケンスを含めることができる。文字シーケンスは、(a)パラメータ参照(例えば、パラメータの値が文字列の値へバインドされるべきであると示すパラメータのプレフィックス)により、文字列の値を表すことができる。代替として、文字シーケンスは、(b)引用符付きリテラルの式(例えば、文字列の値の表現を囲む区切り文字)により、文字列の値を表すことができる。
PDLの式の文字シーケンスが、(a)パラメータ参照により文字列の値を表す場合、コンピュータシステム110は、パラメータ参照の形式を、例えば、参照のシンタックスに基づいて特定する。参照は、「直接代入」パラメータ参照とすることができ、その場合は、コンピュータシステム110はパラメータ参照をパラメータ値へバインドする。代替として、参照を「代入および引用」パラメータ参照とすることができ、その場合は、コンピュータシステム110は、詳細に後述するように(例えば、セクション2.2.3)、ターゲットシンタックスで引用符付きリテラルを生成するためのメカニズムを用いて、パラメータ参照をパラメータ値へバインドする。
PDLの式の文字シーケンスが、(b)引用符付きリテラルの式により文字列の値を表す場合、コンピュータシステム110は、代入を実行せずにリテラル式の文字列の値を維持する。コンピュータシステム110は、ターゲットシンタックスに基づいて何を引用符付きリテラルの式として解釈すべきかを決定する。通常であればパラメータ参照(例えば、直接代入パラメータ参照)を表す筈の文字シーケンスが、引用符付きリテラルの式内に組み込まれている場合、その文字シーケンスはパラメータ参照として扱われない(例えば、パラメータ値へバインドされない)。
コンピュータシステム110が、パラメータ参照を値にバインドする場合、定義されているパラメータ毎の値(例えば、パラメータおよびその定義のリスト内で)により、動的環境を設定する時間を費やす必要を避けるために、コンピュータシステム110は、式をスキャンして、その式の中で実際に参照されるパラメータに対する値だけを決定することができる。パラメータは他のパラメータで定義できるので、式で直接参照されないパラメータの幾つかも、直接参照されるパラメータを評価するプロセスで評価される可能性がある。直接または間接的に参照されるパラメータの値は、ローカルメモリ120内のバインド環境に格納される。コンピュータシステム110が、PDLの式を評価した後、コンピュータシステムは、対応するターゲットシンタックスでターゲットの式を生成する。次いで、コンピュータシステム110は、ターゲットの式を実行し、および/またはデータ収納庫130にターゲットの式を格納する。
2 式の変換
ソースシンタックスからターゲットシンタックスへの式の変換は、変換時に既知のパラメータ値を用いるパラメータ代入を伴うことがある。ソースのPDLシンタックスは、幾つかの「$代入」シンタックスを用いてパラメータを値で置換する。
ソースのPDLシンタックスは、「直接代入」パラメータ参照を用いる第1種の「$代入」シンタックスを用いる。このシンタックスは、$<名称>を、$fooのように使用し、文字列$fooの代わりにパラメータfooの値を直接代入する。注意すべきは、このような代入は、$が次のように文字列リテラル内で用いられる場合は、実行されないということである。
'the price is $12.00'
値1.00を有するパラメータfooによる直接代入の例示は、次のソース式を取ることにすると、
if($foo==3.14)
次のターゲット式が得られる。
if(1.00==3.14)
この場合、$文字をプレフィックスとして用いて、パラメータfooへ割り当てられている値を、直接代入パラメータ参照$fooに代入すべきであることを指示する。
しかし、場合によっては、パラメータ参照に代入される値が、ターゲットシンタックス(例えば、データ操作言語(DML)等のターゲット言語に基づく場合)で正当であるという保証はない。例えば、ソースパラメーターバインド環境でfooに値「(」(すなわち、左丸括弧文字を表す長さ1の文字列)が割り当てられている場合、上記のソース式により次のターゲット式が得られる。
if((==3.14)
これは、ターゲット言語がDMLの場合、ターゲットシンタックスで不当な式となる。
代わりに、ソース式が次式である場合、
if("$foo"==3.14)
このソース式に同一パラメータを代入すると、次の正当なターゲット式が得られる。
if("("==3.14)
(コンピュータシステム110が、後述するように、二重引用符が保護区切り文字である処理モードにないと仮定する)。
しかし、fooに値「"」を割り当てる場合(すなわち、二重引用符を表す長さ1の文字列)、上記のソース式のfooにこの値をパラメータ代入すると次のターゲット式が得られる。
if("""==3.14)
これは、ターゲット言語がDMLの場合、不当なシンタックスである。
ソースPDLシンタックスは、「代入および引用」パラメータ参照を用いる第2種の「$代入」シンタックスを用いる。コンピュータシステム110は、パラメータ参照をパラメータ値へバインドし、指定されたターゲットシンタックスで引用符付きリテラルを生成する。この種のパラメータ参照は、所定の区切り文字セットにより示すことができる。PDLでは、区切られた「代入および引用」パラメータ参照は、$"foo"により与えられる(または$'foo'としても等価である)。
この「代入および引用」パラメータ参照を用いると、fooに値「(」を割り当てる場合(すなわち、左丸括弧文字を表す長さ1の文字列)、次のソース式、
if($"foo"==3.14)
により、次のターゲット式を得る。
if("("==3.14)
これはターゲット言語がDMLの場合、正当なシンタックスである。
繰り返しになるが、この「代入および引用」パラメータ参照を用いると、fooに値「"」を割り当てる場合(すなわち、二重引用符を表す長さ1の文字列)、次のソース式、
if($"foo"==3.14)
により、例えば、ターゲット言語がDMLの場合、次のターゲット式を得る。
if("\""==3.14)
これは、DMLでは、引用符付きの引用符号にエスケープ文字\が先行する必要があるからである。異なるターゲット言語を用いる場合、ターゲット式は異なるシンタックスを用いることができる。例えば、次のソース式、
if($"foo"==3.14)
により、ターゲット言語がkshの場合、次のターゲット式を得る。
if('"'==3.14)
ターゲットシンタックスは、ターゲット言語がkshであることを示す「$-ksh」や、ターゲット言語がDMLであることを示す「$-dml」等の、ソース式内に組み込まれたトークンにより示すことができる。トークンによっては、対応するターゲット言語を持たないターゲットシンタックスを示すこともあるが(例えば、$−リテラル)、それでも一セットの規則により定義される良好な定義シンタックスをもっている。コンピュータシステム110がターゲットシンタックスのトークンを認識した後、式の評価は、そのターゲットシンタックスと対応する「処理モード」内に置かれる。
「代入および引用」パラメータ参照メカニズムは、ソースPDLの式が書かれ、引用された後に、ターゲットシンタックスに適した処理モードにより決定される方法でターゲットシンタックス値を取得する方法を提供する。ソースPDLの式を書いている時に既知であるターゲットシンタックスの値は、所定の「保護区切り文字」(「$」文字を先頭に付けない二重または一重の引用符等)の内側に閉じ込めることにより、ターゲットシンタックスと整合性がとれているリテラル値として維持することができる。すなわち、ソースシンタックスは区切り文字の付いた文字列内への代入を必要としない。
例えば、文字列$PIが、DMLターゲット言語でπ(パイ)の値を表す特殊文字列である場合、DML文字シーケンス内に含まれる時は、この文字列を二重引用符で囲む("$PI"のように)ことにより、例えば、"\$PI"として直接代入を「エスケープ」する必要なく、変更されないようにすることができる。異なるターゲット言語では、異なる保護区切り文字を用いて、kshターゲット言語の'$PI'のように文字シーケンスを保護することができる。PDL式を評価する場合、コンピュータシステム110は、保護区切り文字内の「直接代入」パラメータ参照、および「代入および引用」パラメータ参照をともにOFFにすることにより、保護区切り文字を順守する。コンピュータシステム110は、処理モードに基づいて保護区切り文字(それがある場合)が何であるかを判定する。
2.1 ターゲットシンタックス処理モード
異なるターゲットシンタックス処理モードは、PDLの式を評価するための異なる振る舞いを生み出す。コンピュータシステム110は組み込まれたトークンを読むことにより処理モードを認識できるが、しかし、トークンがない場合は、既定値の処理モードを仮定することができる。4つの例示の処理モードの式評価の振る舞いを下記のようにまとめる:
ターゲットシンタックス:ksh
トークン:$-ksh
処理モード振る舞い:コンピュータシステム110は、「代入および引用」に対するkshのターゲット言語と整合性がある引用符付きシンタックスを用いて、kshのターゲット言語が用いる保護区切り文字を認識する。
ターゲットシンタックス:DML
トークン:$-dml
処理モード振る舞い:コンピュータシステム110は、「代入および引用」に対するDMLのターゲット言語と整合性がある引用符付きシンタックスを用いて、DMLのターゲット言語が用いる保護区切り文字を認識する。
ターゲットシンタックス:テキスト
トークン:$-text
処理モード振る舞い:コンピュータシステム110は、「代入および引用」に対するDMLのターゲット言語と整合性がある引用符付きシンタックスを用いるが、どの区切り文字も保護区切り文字として認識しない。
ターゲットシンタックス:リテラル
トークン:$-literal
処理モード振る舞い:コンピュータシステム110は、「代入および引用」または「直接代入」パラメーターバインドを実行せず、$-literalトークンと、もしあれば、続くトークンとの間の全て(トークン直後のスペースを除く)を逐語的に出力する。
これらのインライントークンは、対応するターゲットの式へ変換されない。
2.2 PDL評価規則
PDLの式を用いて、パラメータ割り当てセット内に含まれる値を提供することができる。PDLの式の幾つかの部分は、PDLの式の変換に対してローカルの値を操作するステートメントを含むことができ、得られるターゲット式に直接反映されない。コンピュータシステム110は、PDL式内の文字を解釈する下記の例示の規則セットを用いる。
2.2.1 パラメータ割り当て
ソースのPDLの式で参照されるパラメータ値は、PDLの式とは別に割り当てることができ(例えば、一セットのパラメータ割り当てを含むファイル内で)、またはPDLの式とインラインで割り当てることができる(例えば、一つ以上のPDLの式を含むスクリプト内で)。このようなインラインパラメータ割り当ては、対応するターゲットの式へ変換されない。PDLの式で参照されるパラメータの値を決定するステップは、他のPDLの式を変換するステップ、および得られるターゲット式を評価するステップを含むことができる。
2.2.2 直接代入パラメータ参照
引用符なしでトークンに直接先行する「$」文字は、「直接代入」パラメータ参照を指示する。パラメータ参照は、パラメータ参照に代入される値とバインドされる。例えば、式中の文字シーケンス$BARが、文字シーケンスxxxを生成するよう評価されるとする。その場合、式中の文字シーケンスFOO$BARは、文字シーケンスFOOxxxを生成するよう評価されることになる。
区切り文字を用いて、参照されるパラメータを表す文字を区切ることができる。例えば、大括弧を用いることにより、文字シーケンスFOO${BAR}BAZが、文字シーケンスFOO$BARBAZではなく、FOOxxxBAZを生成すると評価することができる。
2.2.3 代入および引用のパラメータ参照
一重または二重の引用符と組み合わせて用いてトークンを区切る「$」文字は、「代入および引用」パラメータ参照を指示する。パラメータは、参照されるパラメータに代入される値にバインドされ、得られる文字シーケンスは、ターゲットシンタックスに基づいて引用される。例えば、式の文字シーケンス$"BAR"または文字シーケンス$'BAR'は、評価されて文字シーケンス'xxx'を生成する(一重引用符を用いるターゲットシンタックスについて、上記例示のようにBARに値xxxが割り当てられる場合)。同様に、パラメータ割り当てをTERMINATOR=|とした場合、式中の文字シーケンスstring($"TERMINATOR")が評価されて、文字シーケンスstring('|')が生成される。
別の実施例では、ターゲットシンタックスは、一本のリテラルバックスラッシュ文字「\」が、引用されるリテラル文字列内で2本のバックスラッシュ文字「\\」により指定されることを必要とする。この場合には、パラメータ割り当てをTERMINATOR=\とすると、式中の文字シーケンスstring($"TERMINATOR")が評価されて、文字シーケンスstring('\\')が生成される。
2.2.4 特殊文字のエスケープ
リテラル「$」文字は、文字をプレフィックスとして用いてパラメータ代入の振る舞いを「エスケープ」することにより、ソースPDLシンタックスで規定することができる。例えば、エスケープ文字がバックスラッシュの場合、式内の文字シーケンスFOO\$BARが評価されて文字シーケンスFOO$BARが生成される。
「$」文字の前にリテラル「\」文字を生成するために、二本のバックスラッシュ文字「\\」を用いることができる。例えば、式中の文字シーケンス\\$BARが評価されると、直接パラメータ代入が行われて文字シーケンス\xxxが生成される。一般に、「$」文字の前に偶数個の「\」文字がある場合、「\」文字は対にされ、「$」文字がパラメータ参照として解釈される。「$」文字の前に奇数個の「\」文字がある場合、隣接する「\」文字は、「$」文字をリテラルに解釈させ、残りの「\」文字は対にされる。従って、式中の文字シーケンス\\\$BARは文字シーケンス\$BARを生成するよう評価され、式中の文字シーケンス\\\\$BARは、文字シーケンス\\xxxを生成するよう評価される。
2.2.5 保護区切り文字
コンピュータシステム110は、保護区切り文字内側の「直接代入」パラメータ参照および「代入および引用」パラメータ参照をともにOFFにすることにより、保護区切り文字を順守することが好ましい。例えば、文字シーケンス$BARをリテラル文字として解釈するために、二重または一重引用符等の保護区切り文字を用いて、保護されたリテラル文字列"$BAR"を得ることができる。更に、特殊文字のエスケープは、保護されたリテラル文字列内側では不要である。
2.2.6 インライン実行
「インライン」で実行可能な計算またはスクリプトを、PDLの式を評価しながら実行することができる。このインライン実行は、別の種類の区切り文字を用いて示す。実行可能な計算またはスクリプトの名称、例えば、execを、式の中で$(exec)として区切り、execを実行した結果(例えば、計算またはスクリプトの出力を取得したもの)で置換する。
インラインスクリプトは、「透明」なパラメータ参照を含むことができる。パラメータPARMの透明な参照は、次の二つの形式、$PARMまたは${PARM}のどちらかの形式を取る。従って、式中の文字シーケンス$(echo$BAR)が評価されると文字シーケンスxxxが生成される。しかし、$(eval echo'$'FOO)または$(printenv FOO)のような他の種類の「不透明」なパラメータ参照の場合は、パラメータがそれらの割り当てられた値へバインドされることにはならない。
特定の種類の区切り文字を用いて、実行可能な計算またはスクリプトは特定言語で実行すべきであることを示すことができる。例えば、$(exec)はkshに基づいてexecを実行することを示し、$[exec]はDMLに基づいてexecを実行することを示すことができる。代替として、インライントークンを用いて特定言語での実行を指示することができる。例えば、$(ksh exec)は、kshに基づいてexecを実行することを示し、$(dml exec)は、DMLに基づいてexecを実行することを示すことができる。
3 パラメーターバインド手法
図3は、データ収納庫130内に格納される例示のパラメータ割り当て136を示す。パラメータ割り当て136は、パラメータ名称200、パラメータ値202、およびオプションで、パラメータ属性204を含む。パラメータ属性は、データ種類または記述等の、パラメータまたはその値と関係付けられる何らかの情報を含むことができる。本実施例では、パラメータに割り当てられた値は、$FOOの値を有するパラメータDATE等の、何らかの先行するパラメータへの参照を含むことができる。
図4を参照すると、例示のパラメーターバインド手法では、コンピュータシステム110は、評価中のソーススクリプト302と関係付けられるパラメータに対して、ローカルメモリ120内にバインド環境300を維持する。コンピュータシステム110がソーススクリプト302を評価する時、コンピュータシステム110は、バインド環境300内に、ソーススクリプト302内で参照されるそれぞれのパラメータのコピーを維持する。バインド環境300内に格納される情報は、パラメータ名称304およびそのパラメータの現在の値306を含む。それぞれのパラメータは適切なスコープ規則に基づいて値へバインドされる。場合により、コンピュータシステム110は、バインド環境300内の多数のコンテクストを維持して、異なるスコープを有するパラメータを格納する。
本実施例では、ソーススクリプト302は、文字シーケンス"$BASE/file.dml"を含むソースの第1式310を含む。この文字シーケンスは、引用符付きリテラルの式として文字列の値を表す(例えば、DML処理モードで)。コンピュータシステム110は、ソースシンタックス内の通常であればパラメータ参照$BASEとなる筈のもののバインドを無効にする。そして、パラメータ参照$BASEは、そのまま維持されて後でバインドされる(例えば、対応するターゲット式を評価するときに、値〜\dirへバインドされる)。
ソーススクリプト302は、文字シーケンス$"DATE"を含むソースの第2式312を含み、この文字シーケンスは、「代入および引用」のパラメータ参照により文字列の値を表す。参照されるパラメータDATEは、別のパラメータFOOで定義される(図3で)ので、コンピュータシステム110は、パラメータFOOをそれが割り当てられた値$TODAYへ最初にバインドして、
May 1, 2000
と解決し、バインド環境300にその結果を格納する。次いで、コンピュータシステム110は、次の値へパラメータDATEをバインドし、
May 1, 2000
バインド環境300にその結果を格納する。
ソーススクリプト302は、文字シーケンス$"BAR"を含むソースの第3式314を含み、この文字シーケンスは、「代入および引用」のパラメータ参照により文字列の値を表す。コンピュータシステム110は、パラメータBARを次の値へバインドし、
test 1
バインド環境300にその結果を格納する。
コンピュータシステム110は、ターゲットシンタックスでソースの第1式310を表す第1ターゲット式320を含むターゲットスクリプト308を生成する。ソース式310内の文字シーケンス"$BASE/file.dml"は、保護区切り文字(DML処理モードに基づく)を含むので、ターゲット式320は、同一の文字シーケンスを含む。
ターゲットスクリプト308は、引用される値"May 1, 2000"が、パラメータ参照$"DATE"の代わりに代入されている第2のターゲット式322、および引用される値"test 1"が、パラメータ参照$"BAR"の代わりに代入されている第3のターゲット式324を含む。
コンピュータシステム110は、ソーススクリプト302をパラメータ参照に対してスキャンし、その参照した値をバインド環境300内に格納した後に、ターゲット式を生成する。代替として、コンピュータシステムは、ソーススクリプト302をスキャンしているときにターゲット式を生成することができる。次いで、コンピュータシステム110は、生成したターゲットスクリプト308を実行でき、および/または後で実行するためにターゲットスクリプト308を格納することができる。
上記説明した式の評価技法は、コンピュータ上で実行するためのソフトウエアを用いて実装することができる。例えば、ソフトウエアは、一つ以上のプログラム済み、またはプログラム可能なコンピュータシステム(分散型、クライアント/サーバ型、またはグリッド型等の各種のアーキテクチャから構成される)を実行する、一つ以上のコンピュータープログラム内の手順を形成する。それぞれのシステムは、少なくとも一つのプロセッサ、少なくとも一つのデータ格納システム(揮発性メモリおよび不揮発性メモリおよび/または記憶素子を含む)、少なくとも一つの入力装置またはポート、および少なくとも一つの出力装置またはポートを含む。本ソフトウエアは、例えば、計算グラフの設計および構成と関連する他のサービスを提供する、規模の大きなプログラムの内の一つ以上のモジュールを形成してもよい。グラフのノードおよび要素は、コンピュータ可読媒体内に格納したデータ構造、またはデータ収納庫内に格納したデータモデルに準拠する他の体系化したデータ、として実装することができる。
本ソフトウエアは、汎用または専用プログラム可能なコンピュータにより読み込むことができるCD−ROMのような媒体上で提供するか、またはネットワークを介してソフトウエアが実行される場所であるコンピュータへ配布する(伝搬信号で符号化される)ことができる。機能全てを専用コンピュータ上で、またはコプロセッサ等の専用ハードウエアを用いて、実行することができる。本ソフトウエアは、ソフトウエアにより規定される異なる計算部分を異なるコンピュータで実行する分散型で実装できる。このようなコンピュータープログラムはそれぞれ、汎用もしくは専用のプログラム可能なコンピュータに可読の格納媒体または装置(例えば、固体メモリもしくは媒体、または磁気もしくは光学媒体)に格納するか、ダウンロードして、格納媒体または格納装置をコンピュータシステムが読み出す際に、本明細書で説明した手順を実行するようにコンピュータを構成し、動作させることが好ましい。本発明のシステムは、コンピュータープログラムで構成されたコンピュータ可読格納媒体として実装し、そのように構成される格納媒体が、コンピュータシステムを規定の方法、所定の方法で動作させて、本明細書で説明した機能を実行させると考えることもできる。
言うまでもなく、上記説明が説明を意図していて本発明の範囲を限定する意図はなく、本発明の範囲は、付帯のクレーム範囲により定義されるということである。例えば、上記説明の機能ステップの幾つかは、全体の処理に実質的に影響を与えることなく異なる順序で実行してもよい。他の実施の形態は以下のクレームの範囲内にある。

Claims (18)

  1. 式を評価するための方法であって、
    パラメータ定義を格納する一つ以上のデータ構造を受け取るステップと、
    第1ソース式及び第2ソース式を含むソーススクリプトを評価するステップと、を含み、
    前記評価するステップは、
    前記ソーススクリプトで参照される一つ以上のパラメータを特定するステップと、
    前記格納されたパラメータ定義に基づいて前記特定したパラメータそれぞれの値を決定するステップと、
    バインド環境内に前記決定したパラメータの値を格納するステップと、
    第1ターゲット式及び第2ターゲット式を含むターゲットスクリプトであって、前記第1ターゲット式は前記第1ソース式を表し、前記第2ターゲット式は前記第2ソース式を表し、前記第1ソース式で参照される第1パラメータに代用される前記バインド環境からの第1パラメータ値を含み、前記第2ソース式で参照される第2パラメータを維持し、前記第2パラメータに対して前記バインド環境からの第2パラメータ値を代用しない、ターゲットスクリプトを生成するステップと、を含み、
    前記ソーススクリプトは、ターゲット環境のシンタックスを用いて前記ターゲットスクリプトに変換される、方法。
  2. 前記バインド環境は、前記特定したパラメータの値、および前記特定したパラメータを評価するのに必要なパラメータの値を格納し、
    前記バインド環境は、前記一つ以上のデータ構造内にその定義を格納する前記パラメータ全ての値を格納しない、
    請求項1の方法。
  3. 前記第1ターゲット式及び前記第2ターゲット式を実行するステップを更に含む、請求項1の方法。
  4. 前記第1ターゲット式及び前記第2ターゲット式はプログラムまたはスクリプトの一部である、請求項1の方法。
  5. 前記第1ソース式及び前記第2ソース式はコマンドライン入力を含む、請求項1の方法。
  6. 式を評価するためのコンピュータ可読記憶媒体上に格納されるプログラムであって、
    前記プログラムは、コンピュータシステムに、
    パラメータの定義を格納する一つ以上のデータ構造を受け取るステップと、
    第1ソース式及び第2ソース式を含むソーススクリプトを評価するステップと、を実行させるための命令を含み、
    前記評価するステップは、
    前記ソーススクリプトで参照される一つ以上のパラメータを特定するステップと、
    格納されたパラメータ定義に基づいて前記特定したパラメータそれぞれの値を決定するステップと、
    バインド環境内に前記決定したパラメータの値を格納するステップと、
    第1ターゲット式及び第2ターゲット式を含むターゲットスクリプトであって、前記第1ターゲット式は前記第1ソース式を表し、前記第2ターゲット式は前記第2ソース式を表し、前記第1ソース式で参照される第1パラメータに代用される前記バインド環境からの第1パラメータ値を含み、前記第2ソース式で参照される第2パラメータを維持し、前記第2パラメータに対して前記バインド環境からの第2パラメータ値を代用しない、ターゲットスクリプトを生成するステップと、を含み、
    前記ソーススクリプトは、ターゲット環境のシンタックスを用いて前記ターゲットスクリプトに変換される、
    プログラム。
  7. 式を評価するためのシステムであって、
    パラメータ定義を格納する一つ以上のデータ構造を受け取るための手段と、
    第1ソース式及び第2ソース式を含むソーススクリプトを評価するための手段と、を含み、
    前記評価するための手段は、
    前記ソーススクリプトで参照される一つ以上のパラメータを特定するための手段と、
    格納されたパラメータ定義に基づいて前記特定したパラメータそれぞれの値を決定するための手段と、
    バインド環境内に前記決定したパラメータの値を格納するための手段と、
    第1ターゲット式及び第2ターゲット式を含むターゲットスクリプトであって、前記第1ターゲット式は前記第1ソース式を表し、前記第2ターゲット式は前記第2ソース式を表し、前記第1ソース式で参照される第1パラメータに代用される前記バインド環境からの第1パラメータ値を含み、前記第2ソース式で参照される第2パラメータを維持し、前記第2パラメータに対して前記バインド環境からの第2パラメータ値を代用しない、ターゲットスクリプトを生成するための手段と、を含み、
    前記ソーススクリプトは、ターゲット環境のシンタックスを用いて前記ターゲットスクリプトに変換される、システム。
  8. 前記ソーススクリプトで参照される一つ以上のパラメータを特定するステップは、前記格納された定義で参照される一つ以上のパラメータを特定するステップを含む、請求項1の方法。
  9. 前記バインド環境は、前記特定したパラメータの値、および前記特定したパラメータを評価するのに必要なパラメータの値を格納し、
    前記バインド環境は、前記一つ以上のデータ構造内にその定義を格納する前記パラメータ全ての値を格納しない、
    請求項6のプログラム。
  10. 前記第1ターゲット式及び前記第2ターゲット式を実行するステップを更に前記コンピュータシステムに実行させるための命令を含む、請求項6のプログラム。
  11. 前記第1ターゲット式及び前記第2ターゲット式はプログラムまたはスクリプトの一部である、請求項6のプログラム。
  12. 前記第1ソース式及び前記第2ソース式はコマンドライン入力を含む、請求項6のプログラム。
  13. 前記ソーススクリプトで参照される一つ以上のパラメータを特定するステップは、前記格納された定義で参照される一つ以上のパラメータを特定するステップを含む、請求項6のプログラム。
  14. 前記バインド環境は、前記特定したパラメータの値、および前記特定したパラメータを評価するのに必要なパラメータの値を格納し、
    前記バインド環境は、前記一つ以上のデータ構造内にその定義を格納する前記パラメータ全ての値を格納しない、
    請求項7のシステム。
  15. 前記第1ターゲット式及び前記第2ターゲット式を実行するための手段を更に含む、請求項7のシステム。
  16. 前記第1ターゲット式及び前記第2ターゲット式はプログラムまたはスクリプトの一部である、請求項7のシステム。
  17. 前記第1ソース式及び前記第2ソース式はコマンドライン入力を含む、請求項7のシステム。
  18. 前記ソーススクリプトで参照される一つ以上のパラメータを特定するための手段は、前記格納された定義で参照される一つ以上のパラメータを特定するための手段を含む、請求項7のシステム。
JP2012121089A 2005-06-27 2012-05-28 コンピュータ環境における式の変換 Active JP5740349B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/169,247 US7822615B2 (en) 2005-06-27 2005-06-27 Translating expressions in a computing environment
US11/169,247 2005-06-27

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2008519475A Division JP2008547133A (ja) 2005-06-27 2006-06-27 コンピュータ環境における式の変換

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015015507A Division JP6162733B2 (ja) 2005-06-27 2015-01-29 コンピュータ環境における式の変換

Publications (2)

Publication Number Publication Date
JP2012160214A JP2012160214A (ja) 2012-08-23
JP5740349B2 true JP5740349B2 (ja) 2015-06-24

Family

ID=37568656

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2008519475A Pending JP2008547133A (ja) 2005-06-27 2006-06-27 コンピュータ環境における式の変換
JP2012121089A Active JP5740349B2 (ja) 2005-06-27 2012-05-28 コンピュータ環境における式の変換
JP2015015507A Active JP6162733B2 (ja) 2005-06-27 2015-01-29 コンピュータ環境における式の変換

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2008519475A Pending JP2008547133A (ja) 2005-06-27 2006-06-27 コンピュータ環境における式の変換

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2015015507A Active JP6162733B2 (ja) 2005-06-27 2015-01-29 コンピュータ環境における式の変換

Country Status (8)

Country Link
US (1) US7822615B2 (ja)
EP (2) EP2357557A1 (ja)
JP (3) JP2008547133A (ja)
KR (1) KR101356676B1 (ja)
CN (1) CN101208690B (ja)
AU (1) AU2006261754B2 (ja)
CA (1) CA2612455C (ja)
WO (1) WO2007002652A2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8521760B2 (en) * 2008-12-30 2013-08-27 Oracle America, Inc. Dynamic translator for requests for system resources
US8856750B2 (en) * 2010-09-28 2014-10-07 International Business Machines Corporation Task-based evaluation of user interfaces
US10620956B2 (en) 2017-03-03 2020-04-14 International Business Machines Corporation Search string processing via inline decode-based micro-operations expansion
US10564965B2 (en) 2017-03-03 2020-02-18 International Business Machines Corporation Compare string processing via inline decode-based micro-operations expansion
US10564967B2 (en) 2017-03-03 2020-02-18 International Business Machines Corporation Move string processing via inline decode-based micro-operations expansion
US10789069B2 (en) 2017-03-03 2020-09-29 International Business Machines Corporation Dynamically selecting version of instruction to be executed
US10255068B2 (en) 2017-03-03 2019-04-09 International Business Machines Corporation Dynamically selecting a memory boundary to be used in performing operations
US10324716B2 (en) 2017-03-03 2019-06-18 International Business Machines Corporation Selecting processing based on expected value of selected character
US10613862B2 (en) 2017-03-03 2020-04-07 International Business Machines Corporation String sequence operations with arbitrary terminators

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57113147A (en) * 1980-12-31 1982-07-14 Fujitsu Ltd Compiling system for incorporated instruction
US5201042A (en) * 1986-04-30 1993-04-06 Hewlett-Packard Company Software process and tools for development of local language translations of text portions of computer source code
JPS63138425A (ja) * 1986-12-01 1988-06-10 Hitachi Ltd プロフアイルによるjclの自動変換方式
JPS63271636A (ja) * 1987-04-30 1988-11-09 Fujitsu Ltd 言語用マクロプロセツサ
JPH02195438A (ja) * 1989-01-24 1990-08-02 Nec Corp マクロ展開における回帰的呼び出し検出方式
JPH02236732A (ja) * 1989-03-10 1990-09-19 Fujitsu Ltd ソースプログラム作成方式
JPH03282935A (ja) * 1990-03-30 1991-12-13 Pfu Ltd コンパイル処理装置及びコンパイル処理方式
EP0501613A3 (en) 1991-02-28 1993-09-01 Hewlett-Packard Company Heterogeneous software configuration management apparatus
US6400996B1 (en) 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US5701400A (en) 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US6006242A (en) 1996-04-05 1999-12-21 Bankers Systems, Inc. Apparatus and method for dynamically creating a document
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
JPH1063511A (ja) * 1996-08-14 1998-03-06 Fuji Xerox Co Ltd ジョブスクリプト実行装置
US6088716A (en) 1997-04-28 2000-07-11 Ab Initio Software Corporation Method for preventing buffer deadlock in dataflow computations
US6173276B1 (en) 1997-08-21 2001-01-09 Scicomp, Inc. System and method for financial instrument modeling and valuation
JP3110367B2 (ja) * 1998-01-30 2000-11-20 日本電気アイシーマイコンシステム株式会社 ソースコンバータの処理方法及びソースコンバータ処理プログラムを記録したコンピュータ読み取り可能な記録媒体
US6208345B1 (en) 1998-04-15 2001-03-27 Adc Telecommunications, Inc. Visual data integration system and method
US6625624B1 (en) * 1999-02-03 2003-09-23 At&T Corp. Information access system and method for archiving web pages
US6538651B1 (en) 1999-03-19 2003-03-25 John Hayman Parametric geometric element definition and generation system and method
US6816825B1 (en) 1999-06-18 2004-11-09 Nec Corporation Simulation vector generation from HDL descriptions for observability-enhanced statement coverage
US6681386B1 (en) 2000-05-22 2004-01-20 International Business Machines Corporation Method, system, and program for parameter expansion, generation, and execution of scripts in a networked environment
US7164422B1 (en) 2000-07-28 2007-01-16 Ab Initio Software Corporation Parameterized graphs with conditional components
CA2364645A1 (en) 2001-03-07 2002-09-07 Spektor Leonid Query filter for querying a multitude of databases
EP1402728A1 (en) * 2001-06-19 2004-03-31 Koninklijke Philips Electronics N.V. Method for generatng blocks of data, method for processing of the same, television broadcasting system employing such methods, and teletext receiver arrangement for use in the system
AU2002366158A1 (en) * 2001-11-21 2003-06-10 Enterasys Networks, Inc. Translating configuration files among network devices
JP2003296137A (ja) * 2002-03-29 2003-10-17 Denso Corp 実行履歴記録装置、ラベル置換装置、及びプログラム
US7496892B2 (en) 2003-05-06 2009-02-24 Andrew Nuss Polymorphic regular expressions
JP2005141393A (ja) * 2003-11-05 2005-06-02 Nippon Telegr & Teleph Corp <Ntt> コンテンツ提供方法及びそのシステム並びにそのコンピュータプログラム及びコンピュータ読み取り可能な情報記録媒体

Also Published As

Publication number Publication date
WO2007002652A3 (en) 2007-05-31
JP6162733B2 (ja) 2017-07-12
CN101208690B (zh) 2016-12-21
JP2008547133A (ja) 2008-12-25
EP1899859B1 (en) 2018-03-21
KR20080021071A (ko) 2008-03-06
AU2006261754A1 (en) 2007-01-04
EP2357557A1 (en) 2011-08-17
JP2012160214A (ja) 2012-08-23
US7822615B2 (en) 2010-10-26
EP1899859A2 (en) 2008-03-19
WO2007002652A2 (en) 2007-01-04
EP1899859A4 (en) 2008-12-24
CN101208690A (zh) 2008-06-25
US20060293875A1 (en) 2006-12-28
AU2006261754B2 (en) 2013-03-28
CA2612455A1 (en) 2007-01-04
CA2612455C (en) 2015-06-23
KR101356676B1 (ko) 2014-01-28
JP2015084256A (ja) 2015-04-30

Similar Documents

Publication Publication Date Title
JP6162733B2 (ja) コンピュータ環境における式の変換
EP2092424B1 (en) Locating security vulnerabilities in source code
US11349816B2 (en) Obfuscating source code sent, from a server computer, to a browser on a client computer
EP3379443A1 (en) Method and computer device to deobfuscate a source code
US20150186666A1 (en) System and method for specification and enforcement of a privacy policy in online services
CN110245467A (zh) 基于Dex2C与LLVM的Android应用程序保护方法
US6625807B1 (en) Apparatus and method for efficiently obtaining and utilizing register usage information during software binary translation
JP6133409B2 (ja) プログラムのリバースエンジニアリング及び/又は改竄に対する保護のための方法、システム及び装置
JP2013186647A (ja) 難読化装置、難読化方法、及び難読化プログラム、並びに難読化されたソースコード
JP2006236327A (ja) コードモーフィング
Karlsson et al. Extending scala with records: design, implementation, and evaluation
AU2013203830B2 (en) Translating expressions in a computing environment
JP5404944B1 (ja) 情報処理装置およびコンパイラプログラム
JP7059757B2 (ja) Api処理方法、端末、api処理プログラム
WO2017095257A1 (en) Automatic code virtualization for a compiler
US7565646B2 (en) Method for compression of object code interpreted by tree-structured expression factorization
JP2014149810A (ja) 情報処理装置およびコンパイラプログラム
Juhlin Developing a Compiler for a Regular Expression Based Policy Specification Language

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120613

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120613

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131024

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140123

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140128

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140224

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140227

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140324

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140424

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150129

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150323

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: 20150407

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150427

R150 Certificate of patent or registration of utility model

Ref document number: 5740349

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250