JP2015219637A - 処理実行プログラム、処理実行方法、及び情報処理装置 - Google Patents
処理実行プログラム、処理実行方法、及び情報処理装置 Download PDFInfo
- Publication number
- JP2015219637A JP2015219637A JP2014101437A JP2014101437A JP2015219637A JP 2015219637 A JP2015219637 A JP 2015219637A JP 2014101437 A JP2014101437 A JP 2014101437A JP 2014101437 A JP2014101437 A JP 2014101437A JP 2015219637 A JP2015219637 A JP 2015219637A
- Authority
- JP
- Japan
- Prior art keywords
- function
- intermediate representation
- stored
- source code
- code
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
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)
Abstract
Description
図1は、情報処理装置の機能構成の一例を示す図である。図1の例に示す情報処理装置10は、記憶部11と、読み込み部の一例としてのロード部12と、解析部の一例としてのパーズ部13と、実行部14と、関数定義抽出部15と、関数コール抽出部16と、関数情報管理部17と、中間表現管理部の一例としての中間コード管理部18とを有する。
次に、情報処理装置10のハードウェア構成例について、図を用いて説明する。図2は、情報処理装置のハードウェア構成の一例を示す図である。図2の例において、情報処理装置10は、入力装置41と、出力装置42と、ドライブ装置43と、補助記憶装置44と、主記憶装置45と、CPU46と、ネットワーク接続装置47とを有し、これらはシステムバスBで相互に接続されている。
次に、本実施形態におけるスクリプト実行処理の一例についてフローチャートを用いて説明する。
図3は、第1実施形態におけるスクリプト実行処理の一例を示すフローチャートである。図3の例において、ロード部12は、記憶部11等からJavaScriptのソースコード21を読み込む(S01)、また、パーズ部13は、スクリプトを解析(パーズ)する(S02)。
次に、上述したS13におけるメモリ管理処理の一例についてフローチャートを用いて説明する。図4は、メモリ管理処理の一例を示すフローチャートである。図4に示すメモリ管理処理において、中間コード管理部18は、中間コードのメモリ使用量を算出し(S21)、全中間コードによるメモリ使用量を取得する(S22)。
次に、第2実施形態におけるスクリプト実行処理について説明する。第2実施形態では、Web技術によって接続される情報処理装置(デバイス)10の一例として、センサ等を備えた小型デバイスを想定する。小型デバイスが、センサの情報等を消費電力の観点から効率的に処理するためには、センサ等からの情報を受けて情報処理装置10のCPU等がが動作し、処理終了後にはCPU等がスリープすることが望ましい。
ここで、図5に対応させたイベント抽出処理についてフローチャートを用いて説明する。図6は、イベント抽出処理の一例を示すフローチャートである。図6の例において、情報処理装置10は、所定のイベントを抽出すると(S51)、イベントに対応するコールバックを取得し(S52)、記憶部11等に登録されたコールバックデータから対応するコールバック関数を呼び出す(S53)。
次に、上述した本実施形態における情報処理装置10を用いて、スクリプト関数の実行を効率化するためのアーキテクチャと実装例について、具体的に図を用いて説明する。図7は、本実施形態におけるアーキテクチャと実装例を示す図である。図7(A)は、関数の実行を効率化するためのアーキテクチャ例を示し、図7(B)は、アーキテクチャーを実装するJavaScriptエンジンの実施例を示している。なお、図7(A),(B)の例では、本実施形態における情報処理装置10の機能構成の一部を概略的に示している。
次に、上述した本実施形態における中間コードの生成とオブジェクト管理ツリーについて、具体的に図を用いて説明する。
var x;
x = 1;
JavaScriptエンジンは上記のソースコードを与えられた場合、例えばパーズ部13等による字句解析、構文解析により、以下のような表現として解析する。
<変数宣言(x)><名前(x)>
<割り当て><左辺><名前(x)>
<右辺><整数(1)>
上述した表現の1行目は、JavaScriptの変数宣言のステートメントであり、これを1つの木構造として表現している。また、上述した表現の2行目は割り当てのステートメントであり、左辺、右辺両方を解析した上で1つの木構造として表現する。そして、これらをリスト化したものを中間コードとしてメモリ上に記憶する。なお、上述した内容は、説明の便宜上、言葉で表現しているが、実際にはそれぞれの表現に値を割り当てたバイナリデータで表現される。
var x = 1;
function func1(y) {
return y + 1;
}
このソースを実行した結果、オブジェクト管理ツリー52に対して、変数オブジェクトxに整数1が追加され、関数オブジェクトfunc1に引数「y」とソースコード「return y+1;」が追加される。そのオブジェクト管理ツリーのイメージを図8(B)(斜線部分以外)に示す。
var a = 1;
のようなソースコードがあった場合、「<変数の宣言><代入><整数>」といったようにその意味を理解して、その意味に基づいて変数のaと整数の1とを結び付ける。このような処理を繰り返すことになる。そこで、本実施形態では、関数の呼び出し時に中間表現を作成することで、実行を高速化する。また、例えば、図9に示すように、
function func1(param) {
return param + 1;
}
var result1 = func1(10);
var result2 = func1(20);
のようなスクリプトプログラムがある場合、図9(B)に示すように、最初の3行である関数定義部分において、関数名とソースコードの対応付けのみを記憶しておき、4行目の関数(var result1 = func1(10);)の呼び出し時には、その関数名に対応するソースコードについてパーズして中間表現を作成して対応付けに追加し、対応する処理を実行する。また、5行目の関数(var result2 = func1(20);)の呼び出し時には、パーズの代わりに(パーズせずに)、対応付けから得られるすでに作成された中間表現を使って対応する処理を実行することができる。
JavaScriptエンジンでは、グローバルソースと呼ばれる関数内ではない部分が、パーズ及び実行される。したがって、例えば上述した図9に示すJavaScriptソースコードの最初の行「var a=1;」を解釈する。この場合は、<変数(a)><代入(=)><整数(1)>ということを意味する。次の行は、関数の定義をしていることを意味する。<関数(func1)><引数(param)><ソース(<return param+1;>)>と解釈される。これら(変数(a)及び関数(func1))のオブジェクトは、後から使用される可能性がある。そのため、後から呼び出し時に見つけることができるように管理する必要がある。そのため、例えば上述した図8(B)のようなツリー構造で管理する。これにより、もし後から変数aの値を使用しようとした場合は、このオブジェクト管理ツリーを辿ることで値を取得することができる。関数func1を呼びだそうとした場合は、オブジェクト管理ツリーを辿ることで関数func1のソースコードを取得することができる。そして、上述した例の最後の行のように実際に呼ばれた場合には、func1のソースコードを取得して、その後、ソースコード内を実行する。
次に、上述した中間コード管理部18におけるメモリ使用量削減例について説明する。なお、以下の各実施例では、中間コードの作成時又は削除時におけるメモリ使用量削減例を示している。
上述したように、中間コードを作成していくと時間の経過と共に多くのメモリを使用することになる。そこで、実施例1では、中間コードを記憶するための使用可能メモリを決定し、記憶した中間コードのメモリ量を管理する。また、実施例1では、作成された中間コードを記憶した場合のメモリ量を計算し、上限を超えていた場合、記憶されている中間コードのどれかを削除する。
実施例2では、作成された中間コードを記憶した場合のメモリ量を計算し、上限を超えていた場合、記憶されている中間コードのどれかをファイルに書き出し、メモリキャッシュから消す。次回同じ関数が呼び出された時、その中間コードを使用することで、一部の処理を削減できる。また、次回ファイルに書きだされた関数が呼び出された場合、中間コードをメモリキャッシュに読み込んでから実行する。上述したファイルの書き出しとメモリキャッシュからの削除を行う。
実施例3では、中間コード作成時に作成時間を測定し、記憶した中間コードのメモリ量を管理する。また、作成された中間コードを記憶した場合のメモリ量を計算し、上限を超えていた場合、作成時間に基づいて記憶されている中間コードの少なくとも1つを削除する。
実施例4では、デバイス(情報処理装置10)のCPU負荷を用いて中間コードの作成や削除の対象を管理する。JavaScriptの関数は、ユーザ操作があった場合や通信によりデータを受け取った場合、センサから情報を受け取った場合等、何かのイベントを受けて呼び出されることが多く、またイベントの発生は複数で連動することが多い。例えば、ユーザがデバイスを操作しているときはタッチやスワイプといった操作のイベント等と連続して発生することが考えられる。逆に、1分に一回しか呼ばれないタイマイベント等も考えられる。
例えば、中間コードを作るのに時間がかかるので、あまり呼び出されない場合は作るほうが遅くなる。そのため、実施例5では、関数に所定のコメント情報を付けておき、そのコメント情報に基づいて中間コードを作成するか否かを決定する。例えば、実施例5では、例えばソースコード中にコメントで決まりを作ったり(例えば関数の前に「//@nogen」を付与する等)、関数名に決まりを作る(例えば関数名の最後に「nogen」を付与する等)。
// @nogen
function func1(param) {
return param + 1;
}
function func2(param) {
return param + 2;
}
function func3_nogen(param) {
return param + 3;
}
上述した例は、「@nogen」とついたコメントが付いているfunc1は中間コードを記憶せず、関数名に「_nogen」が付いているfunc3_nogenも中間コードにしないことを意味する。実施例5の処理は、例えば中間コードを作成しないことを示す情報を、オブジェクト管理ツリーを拡張して管理することで実現できる。また、実施例5は、ユーザ(開発者等)が設定することでより効果的な方法を設定することができる。これにより、無駄な中間コードを作成しないため、実行が速くなると共にメモリ使用量も減らすことができる。
また、使われないコードの中間表現をとるのは無駄であるため、例えばほとんど実行される可能性のないエラー処理等については、何からの処理が必要となる。そこで、実施例6では、中間コード作成時に、実行しながら中間コードを作成する。その中間コードを作成する際は、実行時に通らなかった部分は、中間コードにしない(例えばif文で分岐した場合等)。
function func4(a) {
if (a > 0) {
return a;
} else {
return -a;
}
var result = func4(-1);
この場合、最後の行「var result = func4(-1);」で引数−1を持って関数呼び出しがされ、関数func4のソースコードを取得する。そして、最初の行を解釈し<分岐><条件<変数(a)><比較(>)><整数(0)>>となり、これを中間表現とする。次に、実行中なので、この結果も算出できる。aには−1が入っているため、else側のみ中間表現とする。<条件付き実行(else)><戻り値><計算(−)><変数(a)>と解釈し、これだけの中間表現を作成する。そして、実行としては、1を返却することになる。このように、部分のみを作ることが可能になる。関数の中には、ほとんど使われない部分がある。そのような部分を中間コードにすることを防止し、メモリを有効利用できる。なお、もし、a=1だった場合等、逆の条件の実行が必要な場合は、そのときにその部分のみ中間コードを作成して追加することで対応することができる。これにより、無駄な中間コードを作成しないため、実行が速くなると同時にメモリ使用量も減る。
(付記1)
読み込んだソースコードの解析と実行とを繰り返してプログラム処理を行う際、
前記ソースコード内に関数の定義が含まれる場合に、前記関数を識別する関数名と、前記関数に対応するソースコードの中間表現とを対応付けて記憶し、
前記関数を呼び出す場合に、前記関数に対応する前記中間表現が記憶されているか否かを判断し、
対応する前記中間表現が記憶されている場合は、記憶された前記中間表現を用いて前記関数に対応する処理を実行し、
対応する前記中間表現が記憶されていない場合は、前記関数に対応するソースコードを解析して中間表現を作成する、
処理をコンピュータに実行させるための処理実行プログラム。
(付記2)
前記中間表現により使用される記憶部の使用量を管理し、
作成した前記中間表現を記憶した場合の前記使用量が所定の閾値以上である場合に、記憶された少なくとも1つの中間表現を削除することを特徴とする付記1に記載の処理実行プログラム。
(付記3)
前記中間表現の利用状況を管理し、
前記利用状況に応じて前記記憶部から削除する中間表現を選択することを特徴とする付記2に記載の処理実行プログラム。
(付記4)
前記中間表現の作成時間を管理し、
前記作成時間に応じて前記記憶部から削除する中間表現を選択することを特徴とする付記2に記載の処理実行プログラム。
(付記5)
前記ソースコード内に含まれる関数の実行時における情報処理装置のCPU負荷に基づいて、前記中間表現を作成するか否かを判断することを特徴とする付記1乃至4の何れか1項に記載の処理実行プログラム。
(付記6)
前記ソースコードに含まれるコメント情報に基づいて前記中間表現を作成するか否かを判断することを特徴とする付記1乃至5の何れか1項に記載の処理実行プログラム。
(付記7)
前記中間表現の作成時に、前記関数の全体ではなく、初回の実行時に使った部分のみの中間表現を作成し、
次回の呼び出し以降で別の部分を実行した場合に、前記別の部分の中間表現を作成することを特徴とする付記1乃至6の何れか1項に記載の処理実行プログラム。
(付記8)
前記ソースコードに含まれる関数をコールバック関数として登録し、所定のイベントに対応させて登録した関数を呼び出して処理を実行することを特徴とする付記1乃至7の何れか1項に記載の処理実行プログラム。
(付記9)
情報処理装置が、
読み込んだソースコードの解析と実行とを繰り返してプログラム処理を行う際、
前記ソースコード内に関数の定義が含まれる場合に、前記関数を識別する関数名と、前記関数に対応するソースコードの中間表現とを対応付けて記憶し、
前記関数を呼び出す場合に、前記関数に対応する前記中間表現が記憶されているか否かを判断し、
対応する前記中間表現が記憶されている場合は、記憶された前記中間表現を用いて前記関数に対応する処理を実行し、
対応する前記中間表現が記憶されていない場合は、前記関数に対応するソースコードを解析して中間表現を作成する、
ことを特徴とする処理実行方法。
(付記10)
読み込んだソースコードの解析と実行とを繰り返してプログラム処理を行う際、前記ソースコード内に関数の定義が含まれる場合に、前記関数を識別する関数名と、前記関数に対応するソースコードの中間表現とを対応付けて管理する関数情報管理部と、
前記関数を呼び出す場合に、前記関数に対応する前記中間表現が記憶されているか否かを判断し、対応する前記中間表現が記憶されている場合は、記憶された前記中間表現を用いて前記関数に対応する処理を実行し、対応する前記中間表現が記憶されていない場合は、前記関数に対応するソースコードを解析して中間表現を作成する中間表現管理部とを有することを特徴とする情報処理装置。
11 記憶部
12 ロード部(読み込み部)
13 パーズ部(解析部)
14 実行部
15 関数定義抽出部
16 関数コール抽出部
17 関数情報管理部
18 中間コード管理部(中間表現管理部)
21 ソースコード
31 中間コード作成部
32 中間コード削除部
33 メモリ管理部
34 利用状況管理部
41 入力装置
42 出力装置
43 ドライブ装置
44 補助記憶装置
45 主記憶装置
46 CPU
47 ネットワーク接続装置
48 記録媒体
51 ライブラリ
52 オブジェクト管理ツリー
Claims (8)
- 読み込んだソースコードの解析と実行とを繰り返してプログラム処理を行う際、
前記ソースコード内に関数の定義が含まれる場合に、前記関数を識別する関数名と、前記関数に対応するソースコードの中間表現とを対応付けて記憶し、
前記関数を呼び出す場合に、前記関数に対応する前記中間表現が記憶されているか否かを判断し、
対応する前記中間表現が記憶されている場合は、記憶された前記中間表現を用いて前記関数に対応する処理を実行し、
対応する前記中間表現が記憶されていない場合は、前記関数に対応するソースコードを解析して中間表現を作成する、
処理をコンピュータに実行させるための処理実行プログラム。 - 前記中間表現により使用される記憶部の使用量を管理し、
作成した前記中間表現を記憶した場合の前記使用量が所定の閾値以上である場合に、記憶された少なくとも1つの中間表現を削除することを特徴とする請求項1に記載の処理実行プログラム。 - 前記中間表現の利用状況を管理し、
前記利用状況に応じて前記記憶部から削除する中間表現を選択することを特徴とする請求項2に記載の処理実行プログラム。 - 前記中間表現の作成時間を管理し、
前記作成時間に応じて前記記憶部から削除する中間表現を選択することを特徴とする請求項2に記載の処理実行プログラム。 - 前記ソースコード内に含まれる関数の実行時における情報処理装置のCPU負荷に基づいて、前記中間表現を作成するか否かを判断することを特徴とする請求項1乃至4の何れか1項に記載の処理実行プログラム。
- 前記ソースコードに含まれるコメント情報に基づいて前記中間表現を作成するか否かを判断することを特徴とする請求項1乃至5の何れか1項に記載の処理実行プログラム。
- 情報処理装置が、
読み込んだソースコードの解析と実行とを繰り返してプログラム処理を行う際、
前記ソースコード内に関数の定義が含まれる場合に、前記関数を識別する関数名と、前記関数に対応するソースコードの中間表現とを対応付けて記憶し、
前記関数を呼び出す場合に、前記関数に対応する前記中間表現が記憶されているか否かを判断し、
対応する前記中間表現が記憶されている場合は、記憶された前記中間表現を用いて前記関数に対応する処理を実行し、
対応する前記中間表現が記憶されていない場合は、前記関数に対応するソースコードを解析して中間表現を作成する、
ことを特徴とする処理実行方法。 - 読み込んだソースコードの解析と実行とを繰り返してプログラム処理を行う際、前記ソースコード内に関数の定義が含まれる場合に、前記関数を識別する関数名と、前記関数に対応するソースコードの中間表現とを対応付けて管理する関数情報管理部と、
前記関数を呼び出す場合に、前記関数に対応する前記中間表現が記憶されているか否かを判断し、対応する前記中間表現が記憶されている場合は、記憶された前記中間表現を用いて前記関数に対応する処理を実行し、対応する前記中間表現が記憶されていない場合は、前記関数に対応するソースコードを解析して中間表現を作成する中間表現管理部とを有することを特徴とする情報処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014101437A JP6379654B2 (ja) | 2014-05-15 | 2014-05-15 | 処理実行プログラム、処理実行方法、及び情報処理装置 |
EP15158074.3A EP2945057B1 (en) | 2014-05-15 | 2015-03-06 | Process execution method and information processing apparatus |
US14/660,526 US9672016B2 (en) | 2014-05-15 | 2015-03-17 | Process execution method and information processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014101437A JP6379654B2 (ja) | 2014-05-15 | 2014-05-15 | 処理実行プログラム、処理実行方法、及び情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015219637A true JP2015219637A (ja) | 2015-12-07 |
JP6379654B2 JP6379654B2 (ja) | 2018-08-29 |
Family
ID=52824002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014101437A Active JP6379654B2 (ja) | 2014-05-15 | 2014-05-15 | 処理実行プログラム、処理実行方法、及び情報処理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9672016B2 (ja) |
EP (1) | EP2945057B1 (ja) |
JP (1) | JP6379654B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021071784A (ja) * | 2019-10-29 | 2021-05-06 | 株式会社Shift | 実行プログラム、入力支援プログラム、及びコード読込式ロボット |
WO2023233630A1 (ja) * | 2022-06-02 | 2023-12-07 | 日本電気株式会社 | 演算装置、演算方法、および、記録媒体 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3540596B1 (en) * | 2016-12-19 | 2021-05-19 | Nippon Telegraph and Telephone Corporation | Determination device, determination method, and determination program |
CN107908407B (zh) * | 2017-12-11 | 2021-09-07 | 北京奇虎科技有限公司 | 编译方法、装置及终端设备 |
JP6705848B2 (ja) * | 2018-02-16 | 2020-06-03 | ファナック株式会社 | 制御装置及び制御システム |
US20200218584A1 (en) * | 2019-01-03 | 2020-07-09 | International Business Machines Corporation | Identifying and demarcating application transactions in an event loop based runtime |
US11537093B2 (en) * | 2019-03-08 | 2022-12-27 | Citizen Watch Co., Ltd. | Mobile device and mobile device system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004259252A (ja) * | 2003-02-24 | 2004-09-16 | Samsung Electronics Co Ltd | Java(登録商標)プログラムでのバイトコードのコンパイル時間短縮システム及び方法 |
JP2006521597A (ja) * | 2003-02-25 | 2006-09-21 | インテル コーポレイション | 優先度に基づくコードキャッシュ管理 |
JP2007179153A (ja) * | 2005-12-27 | 2007-07-12 | Toshiba Corp | スクリプトプログラム実行装置、スクリプトプログラム実行方法及び光ディスク装置 |
JP2007213490A (ja) * | 2006-02-13 | 2007-08-23 | Fujitsu Ltd | アプリケーションサーバシステムおよび仮想マシンプログラム |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5822591A (en) * | 1996-08-29 | 1998-10-13 | Hewlett-Packard Company | Virtual code system |
US6842894B1 (en) * | 1999-04-05 | 2005-01-11 | Gateway, Inc. | Dynamic Compiling |
US6457176B1 (en) * | 1999-06-25 | 2002-09-24 | International Business Machines Corporation | System and method for source code processing |
JP2002163115A (ja) | 2000-11-29 | 2002-06-07 | Toshiba Corp | 仮想機械用プログラムのコンパイル対象指定方法、同プログラムのコンパイル対象判定方法、仮想機械実行方法、事前コンパイル方法、コンピュータ、記録媒体、及びプログラム製品 |
FI20002720A (fi) * | 2000-12-12 | 2002-06-13 | Nokia Corp | Menetelmä konversioiden suorittamiseksi |
US7406687B1 (en) * | 2004-03-17 | 2008-07-29 | Sun Microsystems, Inc. | Sharing runtime representation of software component methods across component loaders |
US7617495B2 (en) * | 2004-03-24 | 2009-11-10 | Intel Corporation | Resource-aware scheduling for compilers |
US8464207B2 (en) * | 2007-10-12 | 2013-06-11 | Novell Intellectual Property Holdings, Inc. | System and method for tracking software changes |
US8181167B2 (en) * | 2008-01-09 | 2012-05-15 | Kan Zhao | Method and system for presenting and analyzing software source code through intermediate representation |
JP2009187285A (ja) * | 2008-02-06 | 2009-08-20 | Panasonic Corp | プログラム変換方法、プログラム変換装置およびプログラム |
JP2009211190A (ja) | 2008-02-29 | 2009-09-17 | Hitachi Ltd | 情報処理装置 |
US8397225B2 (en) * | 2008-04-24 | 2013-03-12 | International Business Machines Corporation | Optimizing just-in-time compiling for a java application executing on a compute node |
US9250938B2 (en) * | 2008-10-15 | 2016-02-02 | Microsoft Technology Licensing, Llc | Caching runtime generated code |
US8375377B2 (en) * | 2009-03-06 | 2013-02-12 | International Business Machines Corporation | Controlling java virtual machine component behavior on a per-classloader basis |
US8683319B2 (en) * | 2009-10-06 | 2014-03-25 | Telefonaktiebolaget L M Ericsson (Publ) | Shared script files in multi-tab browser |
JP4912452B2 (ja) * | 2009-11-27 | 2012-04-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 動的型付け言語で記述されたソースコードを静的型付け言語で記述されたターゲットコードに変換し、実行する方法、並びにそのコンピュータ・プログラム及びコンピュータ・システム |
JP2013514569A (ja) * | 2009-12-18 | 2013-04-25 | シダンスク ユニバーシティ | 静的に型付けされたクラスベースのオブジェクト指向ソフトウェアのノンブロッキング動的更新の方法、コンピュータ・プログラム製品、およびシステム |
US9003380B2 (en) | 2010-01-12 | 2015-04-07 | Qualcomm Incorporated | Execution of dynamic languages via metadata extraction |
US8924924B2 (en) * | 2010-03-29 | 2014-12-30 | Microsoft Corporation | Representing the structure of a data format using a class-based representation |
US20110265069A1 (en) * | 2010-04-21 | 2011-10-27 | Salesforce.Com | Methods and systems for execution of tenant code in an on-demand service environment including utilization of shared resources and inline governor limit enforcement |
US9038038B1 (en) * | 2010-06-01 | 2015-05-19 | Google Inc. | Just in time cloud compilation |
US20120072891A1 (en) * | 2010-09-17 | 2012-03-22 | Joseph Raymond Hewitt | Computer Language Syntax for Automatic Callback Function Generation |
US8555264B2 (en) * | 2011-01-14 | 2013-10-08 | Oracle International Corporation | System and method for efficient compilation and invocation of function type calls |
US20150212803A1 (en) * | 2013-05-24 | 2015-07-30 | Google Inc. | Systems and methods for optimizing source code compiling |
-
2014
- 2014-05-15 JP JP2014101437A patent/JP6379654B2/ja active Active
-
2015
- 2015-03-06 EP EP15158074.3A patent/EP2945057B1/en active Active
- 2015-03-17 US US14/660,526 patent/US9672016B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004259252A (ja) * | 2003-02-24 | 2004-09-16 | Samsung Electronics Co Ltd | Java(登録商標)プログラムでのバイトコードのコンパイル時間短縮システム及び方法 |
JP2006521597A (ja) * | 2003-02-25 | 2006-09-21 | インテル コーポレイション | 優先度に基づくコードキャッシュ管理 |
JP2007179153A (ja) * | 2005-12-27 | 2007-07-12 | Toshiba Corp | スクリプトプログラム実行装置、スクリプトプログラム実行方法及び光ディスク装置 |
JP2007213490A (ja) * | 2006-02-13 | 2007-08-23 | Fujitsu Ltd | アプリケーションサーバシステムおよび仮想マシンプログラム |
Non-Patent Citations (1)
Title |
---|
ブラウン グレゴリー, RUBYベストプラクティス プロフェッショナルによるコードとテクニック, vol. 第1版, JPN6017043383, 25 March 2010 (2010-03-25), pages 第245-250頁 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021071784A (ja) * | 2019-10-29 | 2021-05-06 | 株式会社Shift | 実行プログラム、入力支援プログラム、及びコード読込式ロボット |
WO2023233630A1 (ja) * | 2022-06-02 | 2023-12-07 | 日本電気株式会社 | 演算装置、演算方法、および、記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
US9672016B2 (en) | 2017-06-06 |
US20150331678A1 (en) | 2015-11-19 |
JP6379654B2 (ja) | 2018-08-29 |
EP2945057B1 (en) | 2019-02-27 |
EP2945057A1 (en) | 2015-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6379654B2 (ja) | 処理実行プログラム、処理実行方法、及び情報処理装置 | |
JP7324831B2 (ja) | ディープラーニングフレームワークにおける演算子の展開方法、展開装置及び電子機器 | |
US8997070B2 (en) | Extension mechanism for scripting language compiler | |
US11474797B2 (en) | Generating closures from abstract representation of source code | |
US8627298B2 (en) | Using appropriate level of code to be executed in runtime environment using metadata describing versions of resources being used by code | |
US9684493B2 (en) | R-language integration with a declarative machine learning language | |
US9292446B2 (en) | Speculative prefetching of remote data | |
CA2901042C (en) | Non-precise garbage collection in non-cooperative systems | |
US20090328016A1 (en) | Generalized expression trees | |
Garbervetsky et al. | Toward full elasticity in distributed static analysis: The case of callgraph analysis | |
US20110276983A1 (en) | Automatic return to synchronization context for asynchronous computations | |
JP7389246B2 (ja) | 依存グラフ生成方法、装置、機器、記憶媒体、及びプログラム製品 | |
US11689630B2 (en) | Request processing method and apparatus, electronic device, and computer storage medium | |
US11429358B2 (en) | Representing asynchronous state machine in intermediate code | |
US20120324457A1 (en) | Using compiler-generated tasks to represent programming elements | |
US20120174078A1 (en) | Smart cache for a server test environment in an application development tool | |
CN112882698A (zh) | 开发环境的生成方法及装置、计算机存储介质及电子设备 | |
EP4083785B1 (en) | Profiling and optimization of compiler-generated code | |
JP2013105349A (ja) | 動的リンクライブラリの更新、実行方法 | |
Ramanujam et al. | Floo: automatic, lightweight memoization for faster mobile apps | |
CN117573277A (zh) | 微信小程序页面动态化方法、系统、设备及储存介质 | |
CN118409756A (zh) | 深度学习模型的编译方法、装置、电子设备和存储介质 | |
CN105723336B (zh) | 用于构建时解析和类型检查引用的方法和系统 | |
CN118860842A (zh) | 数据处理方法、装置、设备及可读存储介质 | |
CN114625377A (zh) | 框架项目转换方法、框架项目转换装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170206 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171108 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171114 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180403 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180514 |
|
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: 20180703 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180716 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6379654 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |