TOP特許意匠商標
特許ウォッチ Twitter
10個以上の画像は省略されています。
公開番号2025166295
公報種別公開特許公報(A)
公開日2025-11-06
出願番号2024070202
出願日2024-04-24
発明の名称中間言語生成装置、中間言語生成方法及びプログラム
出願人日本電気株式会社
代理人個人,個人
主分類G06F 8/41 20180101AFI20251029BHJP(計算;計数)
要約【課題】一連の処理の一部の中間言語を実行して、その結果に基づいて後続の処理についても中間言語を生成する技術を提供する。
【解決手段】中間言語生成装置は、繰り返し処理が記述されたプログラムの中間言語を生成するにあたり、第2のコンパイラによって第2の中間言語を生成する手段と、前記第2の中間言語に基づいて、前記繰り返し処理を削減できるかどうかを判断し、削減できる場合、第1のコンパイラによって、前記プログラムから前記繰り返し処理を削減したプログラムの第1の中間言語を前記第2の中間言語に基づいて生成する手段と、を備える。
【選択図】図2
特許請求の範囲【請求項1】
繰り返し処理が記述されたプログラムの中間言語を生成するにあたり、第2のコンパイラによって前記プログラムから第2の中間言語を生成する手段と、
前記第2の中間言語に基づいて、前記繰り返し処理を削減できるかどうかを判断し、削減できる場合、前記プログラムから前記繰り返し処理を削減したプログラムの第1の中間言語を、第1のコンパイラによって、前記第2の中間言語に基づいて生成する手段と、
を備える中間言語生成装置。
続きを表示(約 1,000 文字)【請求項2】
前記第1のコンパイラは、define-by-run方式で前記第1の中間言語を生成し、
前記第2のコンパイラは、ahead-of-time方式で前記第2の中間言語を生成する、
請求項1に記載の中間言語生成装置。
【請求項3】
前記プログラムが前記繰り返し処理の中で表形式のデータに関し、当該表形式のデータの行または列を対象とする処理を実行している場合、前記第1の中間言語を生成する手段は、前記行または列を対象とする処理を前記表形式のデータの全体に対して一括して行う処理に置換できるかどうかを判断し、置換できる場合、前記プログラムの前記繰り返し処理を前記表形式のデータの全体に対して一括して行う処理に置換したプログラムの第1の中間言語を、前記第1のコンパイラによって生成する、
請求項1又は請求項2に記載の中間言語生成装置。
【請求項4】
前記プログラムが前記繰り返し処理の中でデータ変換が必要な外部のライブラリを呼び出している場合、前記第1の中間言語を生成する手段は、前記外部のライブラリを呼びだすために必要なデータ変換の処理を削減できるかどうかを判断し、削減できる場合、前記データ変換の処理を削減したプログラムの第1の中間言語を、前記第1のコンパイラによって生成する、
請求項1又は請求項2に記載の中間言語生成装置。
【請求項5】
繰り返し処理が記述されたプログラムの中間言語を生成するにあたり、第2のコンパイラによって前記プログラムから第2の中間言語を生成し、
前記第2の中間言語に基づいて、前記繰り返し処理を削減できるかどうかを判断し、削減できる場合、前記プログラムから前記繰り返し処理を削減したプログラムの第1の中間言語を。第1のコンパイラによって、前記第2の中間言語に基づいて生成する、
中間言語生成方法。
【請求項6】
コンピュータに、
繰り返し処理が記述されたプログラムの中間言語を生成するにあたり、第2のコンパイラによって前記プログラムから第2の中間言語を生成し、
前記第2の中間言語に基づいて、前記繰り返し処理を削減できるかどうかを判断し、削減できる場合、前記プログラムから前記繰り返し処理を削減したプログラムの第1の中間言語を、第1のコンパイラによって、前記第2の中間言語に基づいて生成する処理、
を実行させるプログラム。

発明の詳細な説明【技術分野】
【0001】
本開示は、中間言語生成装置、中間言語生成方法及びプログラムに関する。
続きを表示(約 1,800 文字)【背景技術】
【0002】
ユーザ定義関数を受け取って、繰り返し処理をするライブラリ関数がある。ユーザ定義関数を含むユーザプログラムの一例を以下に示す。
【0003】
(ユーザ定義関数を含むユーザプログラム)
#ユーザ定義関数
def func(row):
return row[“a”] + row[“b”]
#ライブラリ関数の呼び出し
tbl[“c”] = tbl.apply(func)
【0004】
ユーザ定義関数func(row)は、表形式データ、行列データ等の行データを引数として受け取って、受け取った行データのa列とb列の値の和を返す関数である。ユーザプログラムでは、tbl(Tableオブジェクト)のapply関数にユーザ定義関数func(row)を引数として渡し、その結果をtblが示すテーブルのc列にセットしている。ライブラリ関数tbl.applyの一例を以下に示す。
【0005】
(ライブラリ関数)
class Table:
def apply(self, func):
for row in self.rows:
func(row)
【0006】
このライブラリ関数apply(self, func)は、自身(Tableオブジェクト)とユーザ定義関数func(row)を受け取って、自身の各行について、ユーザ定義関数func(row)を呼び出して実行するライブラリ関数である。図1に、処理対象のテーブルA1に対する、上記のユーザプログラムの実行結果の一例を示す。ユーザ定義関数は、ライブラリが提供しない機能の実装に利用することができる。
【0007】
上記のユーザプログラムの中間言語を生成することを考える。この場合の中間言語は例えば、以下のようになる。
【0008】
# 0行目
%1 = get_row(%tbl, 0)
%2 = get_scalar(%1, “a”)
%3 = get_scalar(%2, “b”)
%4 = add_scalar(%2, %3)
%5 = set_row(%result, 0, %4)
# 1行目
%6 = get_row(%tbl, 1)
%7 = get_scalar(%6, “a”)
%8 = get_scalar(%7, “b”)
%9 = add_scalar(%8, %3)
%10 = set_row(%result, 1, %9)
(以下省略。テーブルの行数分、同様の中間言語が生成される。)
【0009】
get_row(%tbl, 0)は、指定したテーブルの0行目を読み出す命令、get_scalar(%1, “a”)は、%1列からa列を読み出す命令、add_scalar(%2, %3)は%2と%3を加算する命令、set_row(%result, 0, %4)は、0行目の%result(c列)に%4をセットする命令である。表形式のデータや行列データの各行又は各列に対する処理のように、繰り返し処理が含まれるユーザプログラムの中間言語を生成すると、繰り返しの数だけ命令を生成しなければならない。このことは処理コストの増大の要因となる。具体的には、中間言語の命令生成のオーバヘッドや、生成した命令の実行オーバヘッドによる速度低下、大量の命令によるメモリ利用量の増大などが発生する可能性がある。
【0010】
もう一例、繰り返し処理の中間言語を生成する例を挙げる。プログラム実行時に中間言語の生成を行うライブラリ関数が、他のライブラリ(親ライブラリと呼ぶ。)が提供する関数を呼び出し、互換ライブラリとして、ユーザプログラムから利用可能とする機能をfallbackとよぶ。また、呼び出される関数をfallback関数とよぶ。ユーザからはライブラリ関数が親ライブラリのfallback関数を持っているように見える。fallbackの仕組みを利用することで、ライブラリ関数に足りない関数を補うことができる。
(【0011】以降は省略されています)

この特許をJ-PlatPat(特許庁公式サイト)で参照する

関連特許

日本電気株式会社
管理装置
1か月前
日本電気株式会社
監視装置
1か月前
日本電気株式会社
監視装置
1か月前
日本電気株式会社
光モジュール
26日前
日本電気株式会社
海底分岐装置
1か月前
日本電気株式会社
異常検知装置
1か月前
日本電気株式会社
推論装置および推論方法
18日前
日本電気株式会社
ラインカード及びイジェクタ
1か月前
日本電気株式会社
時刻維持装置および時刻維持方法
17日前
日本電気株式会社
考査装置、考査方法、プログラム
19日前
日本電気株式会社
考査装置、考査方法、プログラム
19日前
日本電気株式会社
交渉装置、交渉方法及びプログラム
3日前
日本電気株式会社
交渉装置、交渉方法及びプログラム
26日前
日本電気株式会社
端末、端末の制御方法及びプログラム
1か月前
日本電気株式会社
監視装置、監視方法、及びプログラム
16日前
日本電気株式会社
レコメンド装置およびレコメンド方法
1か月前
日本電気株式会社
安否確認支援装置、方法及びプログラム
1か月前
日本電気株式会社
情報処理装置、情報処理方法、プログラム
18日前
日本電気株式会社
乗車誘導計画装置および乗車誘導計画方法
9日前
日本電気株式会社
店舗端末、情報処理方法、及びプログラム
18日前
日本電気株式会社
健康管理装置、健康管理方法及びプログラム
26日前
日本電気株式会社
合意判定装置、合意判定方法及びプログラム
24日前
日本電気株式会社
処理システム、処理方法、およびプログラム
1か月前
日本電気株式会社
視聴支援装置、視聴支援方法及びプログラム
24日前
日本電気株式会社
経路選択装置、経路選択方法及びプログラム
16日前
日本電気株式会社
合意判定装置、合意判定方法及びプログラム
3日前
日本電気株式会社
行動推奨装置、行動推奨方法及びプログラム
1か月前
日本電気株式会社
処理システム、処理方法、およびプログラム
1か月前
日本電気株式会社
学習装置、利用装置、学習方法及びプログラム
16日前
日本電気株式会社
情報処理装置、情報処理方法およびプログラム
3日前
日本電気株式会社
情報処理装置、情報処理方法、及びプログラム
24日前
日本電気株式会社
情報処理装置、分析方法、及び分析プログラム
24日前
日本電気株式会社
情報処理装置、情報処理方法およびプログラム
4日前
日本電気株式会社
画像生成装置、画像生成方法、及びプログラム
24日前
日本電気株式会社
質問処理装置、質問処理方法、及びプログラム
9日前
日本電気株式会社
情報処理装置、情報処理方法、及びプログラム
17日前
続きを見る