TOP特許意匠商標
特許ウォッチ Twitter
10個以上の画像は省略されています。
公開番号2025076245
公報種別公開特許公報(A)
公開日2025-05-15
出願番号2024045845
出願日2024-03-22
発明の名称ソースコード修正支援装置およびソースコード修正支援方法
出願人富士電機株式会社
代理人インフォート弁理士法人
主分類G06F 9/44 20180101AFI20250508BHJP(計算;計数)
要約【課題】ソースコードの一部を他の言語の記述に置き替える作業を支援する装置及び方法を提供する。
【解決手段】ソースコード修正支援装置において、テンプレート保存部には、第1の言語で記述されたソースコード内で使用される所定の処理について、その記述を第1の言語から第2の言語に置き換えることで削減される処理時間に係わる情報を含む修正支援情報が保存される。ソースコード解析部は、修正支援情報を利用して、修正対象ソースコードにおいて所定の処理に対応する置換え候補部分を抽出する第1の処理と、置換え候補部分についての記述を第1の言語から第2の言語に置き換えることで削減される処理時間の合計を表す合計削減時間が目標削減時間を超えるまで第1の処理を繰り返す第2の処理と、合計削減時間が目標削減時間を超えたときに、第1の処理で抽出された置換え候補部分を置換え対象部分として特定する第3の処理と、を実行する。
【選択図】図1
特許請求の範囲【請求項1】
第1の言語で記述されたソースコードの一部を第2の言語による記述に置き替える作業を支援するソースコード修正支援装置であって、
前記第1の言語で記述されたソースコード内で使用される所定の処理について、前記所定の処理についての記述を前記第1の言語から前記第2の言語に置き換えることで削減される処理時間に係わる情報を含む修正支援情報を保存する保存部と、
前記修正支援情報を利用して、前記第1の言語で記述された修正対象ソースコードにおいて前記第2の言語による記述に置き換えるべき置換え対象部分を特定するソースコード解析部と、を備え、
前記ソースコード解析部は、
前記修正対象ソースコードにおいて前記所定の処理に対応する置換え候補部分を抽出する第1の処理、
前記第1の処理で抽出した置換え候補部分についての記述を前記第1の言語から前記第2の言語に置き換えることで削減される処理時間の合計を表す合計削減時間が所定の目標削減時間を超えるまで前記第1の処理を繰り返す第2の処理、および
前記合計削減時間が前記目標削減時間を超えたときに、前記第1の処理を繰り返すことで抽出された複数の置換え候補部分を前記置換え対象部分として特定する第3の処理、を実行する
ことを特徴とするソースコード修正支援装置。
続きを表示(約 1,600 文字)【請求項2】
前記削減される処理時間に係わる情報は、前記第1の言語で記述された前記所定の処理を実行したときの処理時間の測定値および前記第2の言語で記述された前記所定の処理を実行したときの処理時間の測定値に基づいて生成される
ことを特徴とする請求項1に記載のソースコード修正支援装置。
【請求項3】
前記所定の処理は、前記第1の言語で記述された状態で実行されたときの処理時間が予め決められた閾値時間より長くなる処理である
ことを特徴とする請求項1に記載のソースコード修正支援装置。
【請求項4】
前記所定の処理は、同じ演算を繰り返し実行するループ処理である
ことを特徴とする請求項1に記載のソースコード修正支援装置。
【請求項5】
前記所定の処理は、条件を満たすか否かに応じて異なる処理を実行する分岐処理である
ことを特徴とする請求項1に記載のソースコード修正支援装置。
【請求項6】
前記ソースコード解析部は、
前記第2の処理において、前記合計削減時間が前記目標削減時間を超え、且つ、前記第1の処理で抽出した置換え候補部分についての記述を前記第1の言語から前記第2の言語に置き換えることで削減される前記修正対象ソースコードのコードサイズの合計を表す合計コード削減量が所定の目標値を超えるまで前記第1の処理を繰り返し、
前記第3の処理において、前記合計削減時間が前記目標削減時間を超え、且つ、前記合計コード削減量が前記目標値を超えたときに、前記第1の処理を繰り返すことで抽出された複数の置換え候補部分を前記置換え対象部分として特定する
ことを特徴とする請求項1に記載のソースコード修正支援装置。
【請求項7】
前記ソースコード解析部は、
前記第2の処理において、前記合計削減時間が前記目標削減時間を超え、且つ、前記第1の処理で抽出した置換え候補部分についての記述を前記第1の言語から前記第2の言語に置き換えることで削減される前記修正対象ソースコードのメモリ使用量の合計を表す合計メモリ削減量が所定の目標値を超えるまで前記第1の処理を繰り返し、
前記第3の処理において、前記合計削減時間が前記目標削減時間を超え、且つ、前記合計メモリ削減量が前記目標値を超えたときに、前記第1の処理を繰り返すことで抽出された複数の置換え候補部分を前記置換え対象部分として特定する
ことを特徴とする請求項1に記載のソースコード修正支援装置。
【請求項8】
第1の言語で記述されたソースコードの一部を第2の言語による記述に置き替える作業を支援するソースコード修正支援方法であって、
前記第1の言語で記述されたソースコード内で使用される所定の処理について、前記所定の処理についての記述を前記第1の言語から前記第2の言語に置き換えることで削減される処理時間に係わる情報を含む修正支援情報を取得し、
前記第1の言語で記述された修正対象ソースコードにおいて前記第2の言語による記述に置き換えるべき置換え対象部分を特定するために、
前記修正支援情報を利用して、前記修正対象ソースコードにおいて前記所定の処理に対応する置換え候補部分を抽出する第1の処理、
前記修正支援情報を利用して、前記第1の処理で抽出した置換え候補部分についての記述を前記第1の言語から前記第2の言語に置き換えることで削減される処理時間の合計を表す合計削減時間が所定の目標削減時間を超えるまで前記第1の処理を繰り返す第2の処理、および
前記合計削減時間が前記目標削減時間を超えたときに、前記第1の処理を繰り返すことで抽出された複数の置換え候補部分を、前記置換え対象部分として特定する第3の処理、を実行する
ことを特徴とするソースコード修正支援方法。

発明の詳細な説明【技術分野】
【0001】
本発明は、ソースコード内の記述を他の言語の記述に置き替える作業を支援する装置および方法に係わる。
続きを表示(約 2,400 文字)【背景技術】
【0002】
ソフトウェアによるメモリの扱いが不適切なために不具合が発生するケースが増加しており、メモリ安全性の高い言語で記述されたプログラムが求められている。例えば、Python(Pythonは登録商標)またはJava(Javaは登録商標)は、メモリの安全性が高く、開発が容易な言語として知られている。他方、プログラム開発に要するコストおよび時間を抑制するために、既存のソフトウェア資源を極力使い続けたいという要求がある。このため、あるプログラミング言語で記述されたソースコードを別のプログラミング言語によるソースコードに変換するソースコード変換装置が提案されている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
特開2010-140408号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ただし、ソースコード全体を他の言語に変換するには多大な労力を要する。そこで、目的に応じて、ソースコード内の必要な部分のみを効率よく他の言語に変換する方法が求められる。
【0005】
本発明の1つの側面に係わる目的は、ある言語で記述されたソースコードの一部を他の言語の記述に置き替える作業の労力を軽減することである。
【課題を解決するための手段】
【0006】
本発明の1つの態様のソースコード修正支援装置は、第1の言語で記述されたソースコードの一部を第2の言語による記述に置き替える作業を支援する。このソースコード修正支援装置は、前記第1の言語で記述されたソースコード内で使用される所定の処理について、前記所定の処理についての記述を前記第1の言語から前記第2の言語に置き換えることで削減される処理時間に係わる情報を含む修正支援情報を保存する保存部と、前記修正支援情報を利用して、前記第1の言語で記述された修正対象ソースコードにおいて前記第2の言語による記述に置き換えるべき置換え対象部分を特定するソースコード解析部と、を備える。前記ソースコード解析部は、前記修正対象ソースコードにおいて前記所定の処理に対応する置換え候補部分を抽出する第1の処理、前記第1の処理で抽出した置換え候補部分についての記述を前記第1の言語から前記第2の言語に置き換えることで削減される処理時間の合計を表す合計削減時間が所定の目標削減時間を超えるまで前記第1の処理を繰り返す第2の処理、および前記合計削減時間が前記目標削減時間を超えたときに、前記第1の処理を繰り返すことで抽出された複数の置換え候補部分を前記置換え対象部分として特定する第3の処理、を実行する。
【発明の効果】
【0007】
上述の態様によれば、ある言語で記述されたソースコードの一部を他の言語の記述に置き替える作業の労力を軽減できる。
【図面の簡単な説明】
【0008】
本発明の実施形態に係わるソースコード修正支援装置の一例を示す図である。
テンプレートの一例を示す図である。
テンプレート作成用ソースコードをテンプレート作成部に与えることで得られるプロファイリング結果の一例を示す図である。
テンプレートを作成する処理の一例を示すフローチャートである。
修正対象ソースコードの一部を他の言語で記述したコードに置き換える処理の一例を示すフローチャートである。
第2の実施形態において作成されるテンプレートの一例を示す図である。
コードサイズおよびメモリ使用量を検出するツールの例を示す図である。
第2の実施形態においてテンプレートを作成する処理の一例を示すフローチャートである。
第2の実施形態において修正対象ソースコードの一部を他の言語で記述したコードに置き換える処理の一例を示すフローチャート(その1)である。
第2の実施形態において修正対象ソースコードの一部を他の言語で記述したコードに置き換える処理の一例を示すフローチャート(その2)である。
ソースコード修正支援装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0009】
ソフトウェアによるメモリの扱いが不適切なために不具合が発生するケースが増加しており、メモリ安全性の高い言語で記述されたプログラムが求められている。このため、例えば、PythonまたはJavaなどのメモリの安全性が高く、開発が容易なプログラミング言語が普及してきている。ただし、PythonまたはJavaは、メモリの安全性等の観点では問題が少ないものの、処理速度が一般的に遅いため、処理速度の改善を求められることがある。そこで、本発明の実施形態では、処理速度に問題がある言語で記述されているソースプログラムから処理時間が長くなると推定されるプログラムモジュールを抽出する。そして、抽出したプログラムモジュールは、信頼性が高く、かつ、処理速度の速い他の言語(例えば、Rust)に置き換えられる。
【0010】
図1は、本発明の実施形態に係わるソースコード修正支援装置の一例を示す。本発明の実施形態に係わるソースコード修正支援装置1は、第1の言語で記述されたソースコードの一部を第2の言語による記述に置き替える作業を支援する。第1の言語は、開発が容易でありメモリの安全性が高いが、処理速度が比較的遅いプログラミング言語である。この実施例では、第1の言語はPythonまたはJavaである。第2の言語は、メモリの安全性が高く、且つ、処理速度が速いプログラミング言語である。この実施例では、第2の言語はRustである。
(【0011】以降は省略されています)

この特許をJ-PlatPatで参照する

関連特許

富士電機株式会社
半導体装置
22日前
富士電機株式会社
半導体装置
22日前
富士電機株式会社
半導体装置
23日前
富士電機株式会社
半導体装置
22日前
富士電機株式会社
自動販売機
8日前
富士電機株式会社
半導体装置
3日前
富士電機株式会社
半導体装置
3日前
富士電機株式会社
分析システム
22日前
富士電機株式会社
紙幣処理装置
3日前
富士電機株式会社
カオリン質粉末
4日前
富士電機株式会社
セキュリティシステム
1日前
富士電機株式会社
半導体装置の製造方法
4日前
富士電機株式会社
試験回路、及び試験方法
23日前
富士電機株式会社
集積回路、及び電源回路
22日前
富士電機株式会社
支援装置、支援方法、プログラム
14日前
富士電機株式会社
燃料電池発電システム及び制御方法
3日前
富士電機株式会社
通信機器および通信機器の復旧方法
3日前
富士電機株式会社
半導体装置および半導体装置の製造方法
4日前
富士電機株式会社
半導体装置および半導体装置の製造方法
16日前
富士電機株式会社
デマンドシステムおよびデマンド制御方法
今日
富士電機株式会社
電子制御デバイスおよびセキュアブート方法
14日前
富士電機株式会社
運転支援装置、運転支援方法及びプログラム
15日前
富士電機株式会社
運転支援装置、運転支援方法、及びプログラム
14日前
富士電機株式会社
需要予測装置、需要予測方法、及びプログラム
8日前
富士電機株式会社
窒化物半導体装置の製造方法及び窒化物半導体装置
24日前
富士電機株式会社
情報処理装置、情報処理方法及び情報処理プログラム
14日前
富士電機株式会社
情報処理装置、情報処理方法及び情報処理プログラム
今日
富士電機株式会社
情報処理装置、情報処理方法及び情報処理プログラム
14日前
富士電機株式会社
情報処理装置、情報処理方法及び情報処理プログラム
14日前
富士電機株式会社
半導体モジュールおよび半導体モジュールの製造方法
2日前
富士電機株式会社
情報処理装置、情報処理方法及び情報処理プログラム
14日前
富士電機株式会社
ソフトウェアテスト装置およびソフトウェアテスト方法
22日前
富士電機株式会社
半導体モジュール、および半導体モジュールの製造方法
22日前
富士電機株式会社
ソースコード修正支援装置およびソースコード修正支援方法
1日前
富士電機株式会社
物品収納装置
14日前
富士電機株式会社
電力変換装置、電力変換装置の劣化診断方法、及び劣化演算装置
23日前
続きを見る