JP6548836B2 - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
JP6548836B2
JP6548836B2 JP2018552296A JP2018552296A JP6548836B2 JP 6548836 B2 JP6548836 B2 JP 6548836B2 JP 2018552296 A JP2018552296 A JP 2018552296A JP 2018552296 A JP2018552296 A JP 2018552296A JP 6548836 B2 JP6548836 B2 JP 6548836B2
Authority
JP
Japan
Prior art keywords
source code
execution
description
deletable
improvement effect
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.)
Expired - Fee Related
Application number
JP2018552296A
Other languages
English (en)
Other versions
JPWO2018096588A1 (ja
Inventor
畠山 剛
剛 畠山
悠平 小糸
悠平 小糸
聡 岩渕
聡 岩渕
菜摘子 藤井
菜摘子 藤井
高橋 克英
克英 高橋
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2018096588A1 publication Critical patent/JPWO2018096588A1/ja
Application granted granted Critical
Publication of JP6548836B2 publication Critical patent/JP6548836B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、ソフトウェアプログラム(以下、単にソフトウェアともいう)の性能改善に関する。
ソフトウェアの開発の終盤になってからソフトウェアの実行速度性能に問題点が見つかることがある。
ソフトウェアの開発現場では、プロファイラを使用してソフトウェアの実行速度を実測し、実測結果からボトルネックを確認し、確認したボトルネックを解消する方法が一般的である。しかしながら、ソフトウェアが実行できる段階までソフトウェアが開発されていなければ、この方法を行うことができない。
このため、開発のより前の段階でソフトウェアの実行速度性能を評価し、開発の手戻りを削減することが求められている。
特許文献1では、まだ実行環境が確立されていない開発中のソフトウェアプログラムに対して静的解析を実施し、ソフトウェアプログラムのロジックから実行速度性能を予測し、改善箇所を自動的に提案する方法が開示されている。
また、特許文献2では、ソフトウェアプログラムのロジックを任意のブロックに切り分け、そのブロックの出力に影響を与えない処理を削除候補として提示する方法が開示されている。
特開2007−179488号公報 特開2008−176639号公報
特許文献1の技術では、静的解析によってソフトウェアプログラムの実行速度性能を予測し、ボトルネックとなる箇所を予測することが可能である。しかし、特許文献1の技術では、予測されたボトルネックを解消するための具体的な方法がソフトウェア開発者に提示されない。
ソフトウェアプログラムにおけるボトルネックをどのようにして解消するかは、前述したプロファイラを用いた場合においても、特許文献1の技術を用いた場合においても、ソフトウェア開発者の知識や経験に基づいた思いつきに頼らざるを得ない。
このため、特許文献1の技術では、ソフトウェア開発者はボトルネックを解消するための検討に多くの時間を割かざるを得ない。
また、特許文献2の技術は、ソフトウェアプログラムに、当該ソフトウェアプログラムに求められる機能を実行する上で必ずしも必要のない記述が含まれる場合に、実行速度性能の改善をもたらす方法として、当該記述を削除することをソフトウェア開発者に提案する。つまり、特許文献2の技術は、ソフトウェアプログラムに、機能を実行する上で必ずしも必要のない記述が含まれる場合にのみ有効である。
しかし、ソフトウェアプログラムに、機能上必ずしも必要のない記述、換言すると、実行速度を悪化させるような非効率な記述が含まれていることはまれである。このため、このような非効率な記述が存在することを前提にした特許文献2の技術を用いて、実際のソフトウェアプログラム開発において効果的に実行速度を改善できるケースは少ない。
本発明は、実行結果に影響を与えない範囲で、実行速度性能を改善するための具体的な方法をソフトウェア開発者に提示することを主な目的とする。
本発明に係る情報処理装置は、
複数の実行経路が存在するソースコードを解析し、実行経路の単位で、削除しても実行結果に影響を与えない前記ソースコード内の記述を削除可能記述として抽出する記述抽出部と、
前記実行経路の単位で、前記削除可能記述を前記ソースコードから削除した場合の前記ソースコードの実行速度を改善する効果である速度性能改善効果を算出する効果算出部と、
前記速度性能改善効果に基づき、いずれかの削除可能記述の前記ソースコードからの削除を伴う前記ソースコードの書換え例を生成する書換え例生成部とを有する。
本発明では、速度性能改善効果に基づき、いずれかの削除可能記述のソースコードからの削除を伴うソースコードの書換え例を生成する。このため、実行結果に影響を与えない範囲で、実行速度性能を改善する具体的なソースコードの例をソフトウェア開発者に提示することができる。
実施の形態1に係る情報処理装置の機能構成例を示す図。 実施の形態1に係る入力解析部の動作手順を示すフローチャート。 実施の形態1に係る出力影響解析部の動作手順を示すフローチャート。 実施の形態1に係る処理ブロックの例を示す図。 実施の形態1に係る削除可能記述を削除した後の処理ブロックの例を示す図。 実施の形態1に係る処理時間見積もり部の動作手順を示すフローチャート。 実施の形態1に係る改善効果見積もり部の動作手順を示すフローチャート。 実施の形態1に係る書換え例生成部の動作手順を示すフローチャート。 実施の形態1に係る情報処理装置のハードウェア構成例を示す図。
実施の形態1.
本実施の形態では、実行結果に影響を与えない範囲で、実行速度性能を改善する具体的なソースコードの例をソフトウェア開発者に提示することができる情報処理装置を説明する。
以下、本実施の形態に係る情報処理装置を、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分または相当する部分を示す。
***構成の説明***
図1は、本実施の形態に係る情報処理装置100の機能構成例を示す。
また、図9は、本実施の形態に係る情報処理装置100のハードウェア構成例を示す。
先ず、図9を参照して、情報処理装置100のハードウェア構成を説明する。
本実施の形態に係る情報処理装置100は、コンピュータである。
情報処理装置100は、ハードウェアとして、プロセッサ901及び記憶装置902を備える。
また、情報処理装置100は、機能構成として、記述抽出部101、効果算出部102及び書換え例生成部103を備える。
記憶装置902には、記述抽出部101、効果算出部102及び書換え例生成部103の機能を実現するプログラムが記憶されている。
そして、プロセッサ901がこれらプログラムを実行して、後述する記述抽出部101、効果算出部102及び書換え例生成部103の動作を行う。
図9では、プロセッサ901が記述抽出部101、効果算出部102及び書換え例生成部103の機能を実現するプログラムを実行している状態を模式的に表している。
なお、情報処理装置100により行われる動作は、情報処理方法及び情報処理プログラムに相当する。
次に、図1を参照して、情報処理装置100の機能構成を説明する。
情報処理装置100は、図1に示すように、機能構成として記述抽出部101と効果算出部102と書換え例生成部103で構成される。
記述抽出部101は、ソフトウェアプログラムのソースコード200を取得する。ソースコード200には、複数の実行経路が存在する。
実行経路とは、ソースコード200が実行される際にトレースされる経路である。例えば、条件分岐処理又はループ処理により複数の実行経路が形成される。
そして、記述抽出部101は、ソースコード200を静的解析し、実行経路の単位で、削除しても実行結果に影響を与えないソースコード200内の記述を削除可能記述として抽出する。
より具体的には、記述抽出部101は、実行経路の単位で、ソースコード200に含まれる変数の値域を解析し、解析した変数の値域に基づき、削除可能記述を抽出する。
なお、記述抽出部101により行われる動作は、記述抽出処理に相当する。
記述抽出部101は、入力解析部1011と出力影響解析部1012で構成される。
入力解析部1011は、ソースコード200に含まれる変数の値域を解析する。出力影響解析部1012は、入力解析部1011により解析された変数の値域に基づき、削除可能記述を抽出する。
なお、入力解析部1011と出力影響解析部1012の動作の詳細は後述する。
効果算出部102は、実行経路の単位で、削除可能記述をソースコード200から削除した場合のソースコード200の実行速度を改善する効果である速度性能改善効果を算出する。
効果算出部102は、より具体的には、実行経路の単位で、削除可能記述をソースコード200から削除した場合のソースコード200の実行速度を改善する効果を第1の速度性能改善効果として算出する。更に、効果算出部102は、削除可能記述の単位で、削除可能記述が含まれている実行経路で削除可能記述をソースコード200から削除した場合のソースコード200の実行速度を改善する効果を第2の速度性能改善効果として算出する。
効果算出部102により行われる動作は、効果算出処理に相当する。
効果算出部102は、処理時間見積もり部1021と改善効果見積もり部1022で構成される。
処理時間見積もり部1021は、ソースコード200に含まれる処理ごとに処理時間を見積もる。処理とは、ソースコード200に含まれる演算処理である。処理時間とは、処理の実行に要する時間である。
改善効果見積もり部1022は、処理時間見積もり部1021による処理時間の見積もり結果に基づき、速度性能改善効果を算出する。
なお、処理時間見積もり部1021と改善効果見積もり部1022の動作の詳細は後述する。
書換え例生成部103は、効果算出部102により算出された速度性能改善効果に基づき、いずれかの削除可能記述のソースコード200からの削除を伴うソースコード200の書換え例を生成する。
より具体的には、書換え例生成部103は、効果算出部102により算出された第1の速度性能改善効果と第2の速度性能改善効果とに基づき、ソースコード200の書換え例を生成する。
書換え例生成部103は、複数の書換え例を生成してもよい。
そして、書換え例生成部103は、生成したソースコード200の書換え例を出力する。書換え例生成部103は、複数の書換え例を生成した場合は、生成した複数の書換え例を、速度性能改善効果が大きい順に出力する。ソフトウェア開発者300は、複数の書換え例を、速度性能改善効果が大きい順に確認することができる。
書換え例生成部103により行われる動作は、書換え例生成処理に相当する。
書換え例生成部103の動作の詳細は後述する。
***動作の説明***
次に、本実施の形態に係る入力解析部1011の動作を、図2のフローチャートを参照して説明する。
手順S201において、入力解析部1011は、ソースコード200を取得する。なお、ソースコード200の入力手段は特に限定しない。入力解析部1011は、取得したソースコード200を例えば記憶装置902に格納する。
手順S202において、入力解析部1011は、手順S201で取得したソースコードを静的に解析し、入力解析部1011は、ソースコード200に含まれる複数の実行経路を抽出する。入力解析部1011は、ソースコード200に含まれる全ての実行経路を抽出してもよいし、特定の条件に合致する一部の実行経路のみを抽出するようにしてもよい。
そして、入力解析部1011は、実行経路の単位で、実行経路内の条件分岐処理や演算処理に基づき、実行経路内で使用される変数の値域を解析する。
なお、実行経路内において、変数の値域は、処理を進めるに従い変動する場合がある。このように変数の値域が変動する場合は、入力解析部1011は、実行経路内でいずれの処理を実行する際に変数の値域が変動するかを解析する。
手順S203において、入力解析部1011は、手順S202の解析結果が示される変数値域解析結果情報を生成する。具体的には、変数値域解析結果情報には、実行経路ごとに、変数の値域と値域の変動箇所とが示される。
そして、入力解析部1011は、生成した変数値域解析結果情報を記憶装置902に格納する。なお、入力解析部1011は、記憶装置902以外の記憶媒体に変数値域解析結果情報を格納してもよい。
次に、本実施の形態に係る出力影響解析部1012の動作を、図3のフローチャートを参照して説明する。
手順S301において、出力影響解析部1012は、手順S203で生成された変数値域解析結果情報を取得する。出力影響解析部1012は、例えば、記憶装置902から変数値域解析結果情報を読み出す。
手順S302において、出力影響解析部1012は、変数値域解析結果情報に基づき、実行経路ごとに、変数の値域が変化しない処理ブロックを抽出する。処理ブロックとは、ソースコード200内の部分領域である。
手順S303において、出力影響解析部1012は、手順S302で抽出した変数の値域が変化しない処理ブロックの中で、その変数の値域であれば、処理ブロックの出力に影響を与えない記述を抽出する。手順S303で抽出される記述は削除可能記述である。
ここで、図4に示すソースコードの例を用いて、処理ブロックの出力に影響を与えない記述の抽出例を説明する。
図4は、プログラミング言語であるC言語によって記述されたソースコード内の処理ブロックの例を示す。
ソースコード内のある実行経路において図4の1行目の関数呼び出しが行われるものとする。
当該実行経路にて図4の1行目の関数呼出しが行われた時点での変数xの値域が0以上100未満であると変数値域解析結果情報に示されている場合は、4行目の条件判定の結果は常に真となる。
そのため、4行目から8行目の記述を削除したとしても、この実行経路においては、実行結果は変わらない。
処理時間見積もり部1021は、この実行経路については、4行目から8行目の記述を削除可能記述として抽出する。
また、別のある実行経路にて図4の1行目の関数呼出しがなされた時点での変数xの値域が80以上かつ90以下、変数yの値域が2以上かつ4以下であると変数値域解析結果情報に示されている場合は、4行目、5行目及び9行目の条件判定の結果は常に真となる。
そのため、4行目、5行目及び9行目の記述を削除したとしても、この実行経路においては、実行結果は変わらない。
また、4行目、5行目及び9行目の記述を削除できる場合は、6行目の記述も削除可能である。
処理時間見積もり部1021は、この実行経路については、4行目、5行目、6行目及び9行目の記述を削除可能記述として抽出する。
次に、図3のフローチャートに戻り、手順S304において、出力影響解析部1012は、手順S303での抽出結果を示す記述抽出結果情報を生成する。具体的には、記述抽出結果情報には、実行経路ごとに削除可能記述が示される。
そして、出力影響解析部1012は、生成した記述抽出結果情報を記憶装置902に格納する。なお、出力影響解析部1012は、記憶装置902以外の記憶媒体に記述抽出結果情報を格納してもよい。
次に、本実施の形態に係る処理時間見積もり部1021の動作を、図6のフローチャートを参照して説明する。
手順S601において、処理時間見積もり部1021はソースコード200を取得する。なお、ソースコード200の入力手段は特に限定しない。処理時間見積もり部1021は、例えば、記憶装置902からソースコード200を読み出す。
手順S602において、処理時間見積もり部1021は、ソースコード200を静的に解析し、ソースコード200に含まれる処理について、各処理の処理時間と、各実行経路における各処理の実行頻度を見積もる。
処理とは、前述したように、ソースコード200に含まれる演算処理であり、例えば、図4の1行目〜6行目、9行目、10行目、12行目の各行に定義される演算処理である。
なお、各処理の処理時間の見積もり及び各処理の実行頻度の見積もりは、例えば、特許文献1で開示されている手順により実現される。但し、処理時間見積もり部1021は、他の手順により、各処理の処理時間の見積もり及び各処理の実行頻度の見積もりを行ってもよい。
手順S603において、処理時間見積もり部1021は、手順S602での見積り結果が示される実行時間情報を生成する。具体的には、実行時間情報には、各処理の処理時間と、実行経路ごとの各処理の実行頻度とが示される。
そして、処理時間見積もり部1021は、生成した実行時間情報を記憶装置902に格納する。なお、処理時間見積もり部1021は、記憶装置902以外の記憶媒体に実行時間情報を格納してもよい。
次に、本実施の形態に係る改善効果見積もり部1022の動作を、図7のフローチャートを参照して説明する。
手順S701において、改善効果見積もり部1022は、記述抽出結果情報と実行時間情報を取得する。改善効果見積もり部1022は、例えば、記憶装置902から記述抽出結果情報と実行時間情報を読み出す。
手順S702において、改善効果見積もり部1022は、第1の速度性能改善効果を算出する。つまり、改善効果見積もり部1022は、実行経路の単位で、削除可能記述をソースコード200から削除した場合のソースコード200の実行速度を改善する効果(第1の速度性能改善効果)を算出する。
より具体的には、改善効果見積もり部1022は、記述抽出結果情報から、削除可能記述と、削除可能記述に対応する実行経路を取得する。次に、改善効果見積もり部1022は、実行経路ごとに、当該実行経路に含まれる処理の処理時間と実行頻度を実行時間情報から取得する。そして、改善効果見積もり部1022は、実行経路ごとに、当該実行経路に含まれる処理について(処理時間×実行頻度)の計算を行い、当該実行経路に含まれる全ての処理の(処理時間×実行頻度)の値の総和(以下、総和時間Aという)を求める。また、改善効果見積もり部1022は、実行経路ごとに、当該実行経路に含まれる、削除可能記述に対応する処理について(処理時間×実行頻度)の計算を行い、削除可能記述に対応する全ての処理の(処理時間×実行頻度)の値の総和(以下、総和時間Bという)を求める。そして、改善効果見積もり部1022は、総和時間Aと総和時間Bとを用いて、第1の速度性能改善効果を算出する。例えば、改善効果見積もり部1022は、(総和時間A−総和時間B)÷(総和時間A)により、第1の速度性能改善効果を算出する。
改善効果見積もり部1022は、上記手順を複数の実行経路に対して繰り返して、複数の実行経路の第1の速度性能改善効果を算出する。つまり、改善効果見積もり部1022は、各実行経路に含まれる、変数の値域の変動箇所ごとに区切られた処理ブロックについて、削除可能記述に対応する処理を削除した場合の第1の速度性能改善効果を算出する。
手順S703において、改善効果見積もり部1022は、第2の速度性能改善効果を算出する。つまり、改善効果見積もり部1022は、削除可能記述の単位で、削除可能記述が含まれている実行経路で削除可能記述をソースコード200から削除した場合のソースコード200の実行速度を改善する効果(第2の速度性能改善効果)を算出する。
より具体的には、改善効果見積もり部1022は、削除可能記述ごとに、当該削除可能記述が含まれる各実行経路での当該削除可能記述に対応する処理について(処理時間×実行頻度)の計算を行い、当該削除可能記述が含まれる全ての実行経路の(処理時間×実行頻度)値の総和(以下、総和時間Cという)を求める。また、改善効果見積もり部1022は、削除可能記述ごとに、当該削除可能記述が含まれる全ての実行経路の総和時間Aを合算する(合算により得られた時間を、以下、総和時間Dという)。そして、改善効果見積もり部1022は、総和時間Cと総和時間Dとを用いて、第2の速度性能改善効果を算出する。例えば、改善効果見積もり部1022は、(総和時間D−総和時間C)÷(総和時間D)により、第2の速度性能改善効果を算出する。
手順S704において、改善効果見積もり部1022は、第1の速度性能改善効果と第2の速度性能改善効果とが示される速度性能改善効果情報を生成する。速度性能改善効果情報では、実行経路ごとに第1の速度性能改善効果が示され、削除可能記述ごとに第2の速度性能改善効果が示される。
そして、改善効果見積もり部1022は、生成した速度性能改善効果情報を記憶装置902に格納する。なお、改善効果見積もり部1022は、記憶装置902以外の記憶媒体に速度性能改善効果情報を格納してもよい。
次に、本実施の形態に係る書換え例生成部103の動作を、図8のフローチャートを参照して説明する。
手順S801において、書換え例生成部103は、ソースコード200と速度性能改善効果情報を取得する。書換え例生成部103は、例えば、記憶装置902からソースコード200と速度性能改善効果情報を読み出す。
手順S802において、書換え例生成部103は、第1の速度性能改善効果と第2の速度性能改善効果とに基づき、いずれかの削除可能記述の削除を伴うソースコード200の書換え例を生成する。
書換え例生成部103は、例えば、第1の速度性能改善効果が最大となるソースコード200の書換え例、第2の速度性能改善効果が最大となるソースコード200の書換え例、第1の速度性能改善効果と第2の速度性能改善効果との総和が最大となるソースコード200の書換え例を生成する。
手順S803において、書換え例生成部103は、手順S802で生成したソースコード200の書換え例を出力するとともに、ソースコード200の書換え例ごとに、書換え対象の実行経路と、速度性能改善効果を出力する。書換え例生成部103は、例えば、速度性能改善効果が高い順にソースコード200の書換え例を出力する。なお、ソースコード200の書換え例の出力順序は任意に設定することができる。
図5は、ソフトウェア開発者に提示されるソースコード200の書換え例を示す。
図5は、図4の処理ブロックから3行目〜9行目、11行目が削除された書き換え例である。図5の例では、図4の4行目、5行目及び9行目に記載の3つの条件判定処理と、6行目に記載の1つの積算処理及び1つの代入処理を削減することが可能である。
***実施の形態の効果の説明***
本実施の形態によれば、ソースコードの変更におけるプログラムへの影響をユーザ(ソフトウェア開発者)自身が考慮することなく、ソフトウェアプログラムの実行速度性能を改善するための具体的なソースコード書換え案をユーザが得ることができる。このため、ソフトウェアプログラムの実行速度性能の改善を効率的に実施することが可能である。
100 情報処理装置、101 記述抽出部、102 効果算出部、103 書換え例生成部、1011 入力解析部、1012 出力影響解析部、1021 処理時間見積もり部、1022 改善効果見積もり部、200 ソースコード、300 ソフトウェア開発者、901 プロセッサ、902 記憶装置。

Claims (8)

  1. 複数の実行経路が存在するソースコードを解析し、実行経路の単位で、削除しても実行結果に影響を与えない前記ソースコード内の記述を削除可能記述として抽出する記述抽出部と、
    前記実行経路の単位で、前記削除可能記述を前記ソースコードから削除した場合の前記ソースコードの実行速度を改善する効果である速度性能改善効果を算出する効果算出部と、
    前記速度性能改善効果に基づき、いずれかの削除可能記述の前記ソースコードからの削除を伴う前記ソースコードの書換え例を生成する書換え例生成部とを有する情報処理装置。
  2. 前記効果算出部は、
    前記実行経路の単位で、前記削除可能記述を前記ソースコードから削除した場合の前記ソースコードの実行速度を改善する効果を第1の速度性能改善効果として算出するとともに、前記削除可能記述の単位で、前記削除可能記述が含まれている実行経路で前記削除可能記述を前記ソースコードから削除した場合の前記ソースコードの実行速度を改善する効果を第2の速度性能改善効果として算出し、
    前記書換え例生成部は、
    前記第1の速度性能改善効果と前記第2の速度性能改善効果とに基づき、前記ソースコードの書換え例を生成する請求項1に記載の情報処理装置。
  3. 前記書換え例生成部は、
    生成した前記ソースコードの書換え例を出力する請求項1に記載の情報処理装置。
  4. 前記書換え例生成部は、
    前記ソースコードの複数の書換え例を生成する請求項1に記載の情報処理装置。
  5. 前記書換え例生成部は、
    生成した前記ソースコードの前記複数の書換え例を、前記速度性能改善効果が大きい順に出力する請求項4に記載の情報処理装置。
  6. 前記記述抽出部は、
    前記実行経路の単位で、前記ソースコードに含まれる変数の値域を解析し、解析した前記変数の値域に基づき、前記削除可能記述を抽出する請求項1に記載の情報処理装置。
  7. コンピュータが、複数の実行経路が存在するソースコードを解析し、実行経路の単位で、削除しても実行結果に影響を与えない前記ソースコード内の記述を削除可能記述として抽出し、
    前記コンピュータが、前記実行経路の単位で、前記削除可能記述を前記ソースコードから削除した場合の前記ソースコードの実行速度を改善する効果である速度性能改善効果を算出し、
    前記コンピュータが、前記速度性能改善効果に基づき、いずれかの削除可能記述の前記ソースコードからの削除を伴う前記ソースコードの書換え例を生成する情報処理方法。
  8. 複数の実行経路が存在するソースコードを解析し、実行経路の単位で、削除しても実行結果に影響を与えない前記ソースコード内の記述を削除可能記述として抽出する記述抽出処理と、
    前記実行経路の単位で、前記削除可能記述を前記ソースコードから削除した場合の前記ソースコードの実行速度を改善する効果である速度性能改善効果を算出する効果算出処理と、
    前記速度性能改善効果に基づき、いずれかの削除可能記述の前記ソースコードからの削除を伴う前記ソースコードの書換え例を生成する書換え例生成処理とをコンピュータに実行させる情報処理プログラム。
JP2018552296A 2016-11-22 2016-11-22 情報処理装置、情報処理方法及び情報処理プログラム Expired - Fee Related JP6548836B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/084617 WO2018096588A1 (ja) 2016-11-22 2016-11-22 情報処理装置、情報処理方法及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JPWO2018096588A1 JPWO2018096588A1 (ja) 2019-02-28
JP6548836B2 true JP6548836B2 (ja) 2019-07-24

Family

ID=62195841

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018552296A Expired - Fee Related JP6548836B2 (ja) 2016-11-22 2016-11-22 情報処理装置、情報処理方法及び情報処理プログラム

Country Status (4)

Country Link
US (1) US20200151084A1 (ja)
EP (1) EP3547141B1 (ja)
JP (1) JP6548836B2 (ja)
WO (1) WO2018096588A1 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0395631A (ja) * 1989-09-08 1991-04-22 Nec Corp 条件文の目的プログラムの削減方式
JP4914609B2 (ja) 2005-12-28 2012-04-11 富士通株式会社 ソースコード問題予測プログラム
JP2008176639A (ja) 2007-01-19 2008-07-31 Mitsubishi Heavy Ind Ltd 制御ロジック修正装置およびプログラム
JP2011028523A (ja) * 2009-07-24 2011-02-10 Panasonic Corp プログラム変換装置およびプログラム変換システム
JP2012145987A (ja) * 2011-01-07 2012-08-02 Hitachi Ltd ソフトウェア性能問題指摘方法
JP2013025403A (ja) * 2011-07-15 2013-02-04 Toshiba Corp プログラム生成装置
JP5865091B2 (ja) * 2012-01-20 2016-02-17 日立オートモティブシステムズ株式会社 ソフトウェア検証支援装置、ソフトウェア検証支援方法、ソフトウェア検証支援プログラム

Also Published As

Publication number Publication date
EP3547141A1 (en) 2019-10-02
JPWO2018096588A1 (ja) 2019-02-28
EP3547141A4 (en) 2019-10-16
WO2018096588A1 (ja) 2018-05-31
US20200151084A1 (en) 2020-05-14
EP3547141B1 (en) 2021-10-06

Similar Documents

Publication Publication Date Title
Huang et al. Assessing small failure probabilities by AK–SS: An active learning method combining Kriging and Subset Simulation
US8671397B2 (en) Selective data flow analysis of bounded regions of computer software applications
CN105045568B (zh) 工业自动化中实时嵌入解决方案的优化操作的系统和方法
US10372582B2 (en) Enhanced string analysis that improves accuracy of static analysis
Kwon et al. Precise execution offloading for applications with dynamic behavior in mobile cloud computing
JP2014153908A (ja) テストデータ生成プログラム、方法及び装置
JP6548836B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
Do et al. Cheetah: just-in-time taint analysis for android apps
JP5505227B2 (ja) 繰返しシンボリック実行方法、プログラム及び装置
JP2015072505A (ja) ソフトウェア検証装置
Sridhar et al. Slicing matlab simulink/stateflow models
JP2012164024A (ja) データフローグラフ生成装置、データフローグラフ生成方法及びデータフローグラフ生成プログラム
WO2014208005A1 (ja) 非機能評価支援装置、システム、方法およびプログラム
JP2017142554A (ja) 検査装置
JP6087472B2 (ja) プログラム図作成装置、プログラム図作成方法、及びプログラム図作成プログラム
JP2018147114A (ja) テストケース生成方法、計算機及びプログラム
US10241904B2 (en) Test components factorization in a build system
JP5755103B2 (ja) ブロック線図処理装置およびブロック線図の処理方法
JP6834457B2 (ja) エミュレーション性能算出装置、エミュレーション性能算出システム、エミュレーション性能算出方法、および、エミュレーション性能算出プログラム
WO2022249423A1 (ja) 品質管理装置、品質管理方法、及びプログラム
JP2018067218A (ja) アプリケーション開発支援装置およびアプリケーション開発支援方法
Yasudo et al. Analytical performance estimation for large-scale reconfigurable dataflow platforms
JP2017041157A (ja) 組み込みソフトウェア開発支援システム、組み込みソフトウェア開発支援方法、組み込みソフトウェア開発支援プログラム
JP2015210776A (ja) シミュレーション装置、モデル生成装置、シミュレーション方法、モデル生成方法、及びコンピュータプログラム
US10599881B1 (en) Circuit simulation waveform generation and display

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190325

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190625

R150 Certificate of patent or registration of utility model

Ref document number: 6548836

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees