JP6025955B1 - プログラム解析装置及びプログラム解析方法 - Google Patents
プログラム解析装置及びプログラム解析方法 Download PDFInfo
- Publication number
- JP6025955B1 JP6025955B1 JP2015233151A JP2015233151A JP6025955B1 JP 6025955 B1 JP6025955 B1 JP 6025955B1 JP 2015233151 A JP2015233151 A JP 2015233151A JP 2015233151 A JP2015233151 A JP 2015233151A JP 6025955 B1 JP6025955 B1 JP 6025955B1
- Authority
- JP
- Japan
- Prior art keywords
- program
- componentization
- function
- variable
- difference
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
以下に、本発明の実施の形態1に係るプログラム解析装置及びプログラム解析方法について、図面に基づいて説明する。本実施の形態に係るプログラム解析装置及びプログラム解析方法は、部品化機能の組み合わせで構成されたプログラムを解析し、プログラムの処理に影響しない変数とプログラムの処理に影響しない部品化機能とを抽出し表示する。
このように、プログラム入力情報13は解析プログラム10の処理を実行する際に使用される情報を保持しており、解析プログラム10はプログラム入力情報13に従って処理を実行する。
さらに詳細に説明すると、差分抽出部11は、まずはじめに、部品化機能データベース12が保持する変数のリストに基づいて、解析プログラム10全体で使用される全変数を抽出する。差分抽出部11は、プログラム入力情報13に従って解析プログラム10を実行させ、解析プログラム10の実行時に、部品化機能ごとに、部品化機能の処理の開始タイミングと終了タイミングとにおける全変数の変数値の差分の有無を各変数ごとに抽出する(第1の抽出ステップ)とともに、当該開始タイミングと終了タイミングとにおける部品化機能の処理全体における全変数のうちの少なくとも1つの変数の変数値の差分の有無があったか否かを各部品化機能ごとに抽出する(第2の抽出ステップ)。
差分抽出部11は、メモリに記憶されたソフトウエアを実行するCPUまたはシステムLSI等の処理回路により実現される。また、複数の処理回路が連携して差分抽出部11の機能を実行するようにしてもよい。
なお、部品化機能データベース12は、メモリ等の記憶装置から構成される。
図3の例では、図3の右欄に示すように、解析プログラム10が、部品化機能10aから部品化機能10fまでの6つの部品化機能から構成されているものとする。また、部品化機能10aは変数A、部品化機能10bは変数B、部品化機能10cは変数BとC、部品化機能10dは変数B、部品化機能10eは変数D、部品化機能10fは変数AとBを使用するものとする。
部品化機能データベース12には、図3の左欄に示すように、各部品化機能10a〜10fごとに、各部品化機能10a〜10fが使用するこれらの変数のリストが登録されている。
差分抽出部11は、解析プログラム10を構成する部品化機能10a〜10fの情報に基づき、部品化機能データベース12から、解析プログラム10を構成する各部品化機能10a〜10fが使用する変数のリストを読み出す。こうして、差分抽出部11は、解析プログラム10全体で使用する全変数の一覧を作成する。
図4に示すように、本実施例では、部品化機能10aが変数A、部品化機能10bが変数B、部品化機能10cが変数BとC、部品化機能10dが変数B、部品化機能10eが変数D、部品化機能10fが変数AとBを使用するため、当該一覧には、図4に示すように、変数A、B、C、Dが登録される。
次に、ステップS1102において、差分抽出部11は、プログラム入力情報13により指定される順序で、解析プログラム10の各部品化機能が使用する変数の差分抽出を実施する。この実施例では、プログラム入力情報13により指定された、部品化機能10a、部品化機能10c、部品化機能10d、部品化機能10fの順序で、変数の差分抽出が実施されることとする。
図5の左欄の記録結果に示されるように、差分抽出処理対象の部品化機能の直前に、別の部品化機能が有る場合は、直前の部品化機能終了のタイミングの変数値を、差分抽出処理対象の部品化機能開始のタイミングの変数値として記録する。差分抽出処理対象の部品化機能の直前に、別の部品化機能が無い場合は、差分抽出処理対象の部品化機能開始のタイミングの変数値は、「未初期化」を記録する。部品化機能10aには、直前に別の部品化機能が無いため、部品化機能10a開始のタイミングにおける、全変数の変数値は、「未初期化」を記録する。
図6の左欄の記録結果に示されるように、部品化機能10aでは変数Aを使用し、終了のタイミングにおいて変数Aは「5」になっているため、変数Aの終了タイミングにおける変数値として「5」を記録する。部品化機能10aでは、他の変数は使用しないため、変数B,C,Dの終了のタイミングの変数値は「未初期化」を記録する。
図7の左欄の記録結果に示されるように、部品化機能の処理の開始タイミングにおける変数値が「未初期化」の場合、または、部品化機能の処理の開始タイミングにおける変数値と終了タイミングにおける変数値とに差分が無い場合は、各変数値差分として、「無」を記録する。従って、各変数が初期化された場合は、「未初期化」から変数値から変化しているにもかかわらず、変数値差分として「無」が記録される。一方、部品化機能の処理の開始タイミングにおける変数値と終了タイミングにおける変数値とに差分が有る場合、または、直前の部品化機能の差分の記録結果が「有」の場合は、「有」を記録する。部品化機能10aでは、部品化機能10aの処理の開始タイミングにおける全変数値が「未初期化」であるため、各変数値差分は「無」を記録する。
図8の左欄の記録結果に示されるように、部品化機能の処理の開始タイミングにおける全変数値と、終了タイミングにおける全変数値とにおいて、全て差分が無い場合、「無」を記録する。一方、部品化機能の処理の開始タイミングにおける全変数値と、終了タイミングにおける全変数値とにおいて、いずれかの変数に差分が有る場合、「有」を記録する。部品化機能10aでは、変数Aが「未初期化」から「5」へ変化しているため、全変数の差分は「有」を記録する。すなわち、この場合には、いずれかの変数が初期化された場合も、変数値の差分が有ったとみなされ、「有」が記録される。
図9の左欄の記録結果から、変数AとBは、解析プログラム10の処理に影響を与えている変数、または、解析プログラム10の処理が影響を与えている変数であり、削除できない変数であることがわかる。また、変数Cは、初期値が与えられているが、その後、変数値の変化がなかったため、予め、変数Cに定数を入れておいても処理に影響を与えることはないため、変数Cは定数への置換が可能な変数であることがわかる。変数Dは、初期値が与えられることなく、解析プログラム10において使用されなかった変数であるため、削除可能な変数であることが分かる。また、部品化機能10dでは、解析プログラム10が使用する全変数の変数値に変化がなかったため、解析プログラム10で使用されなかった部品化機能であり、削除可能な部品化機能であることが分かる。
差分抽出部11は、まず、部品化機能データベースが保持するリストに基づいて解析プログラム10全体で使用される全変数を抽出し、プログラム入力情報13が入力されたときに、プログラム入力情報13に従って解析プログラム10を実行させる。
次に、差分抽出部11は、解析プログラム10の当該実行時に、部品化機能ごとに、部品化機能の処理の開始タイミングと終了タイミングとにおける解析プログラム10の全変数の変数値の初期化を除く差分の有無を各変数ごとに抽出する(第1の抽出ステップ)。
また、差分抽出部11は、部品化機能の処理の開始タイミングと終了タイミングとにおける部品化機能の処理全体における解析プログラム10の全変数のうちの少なくとも1つの変数の変数値の初期化を含む差分の有無を各部品化機能ごとに抽出する(第2の抽出ステップ)。
解析結果表示部14は、第1の抽出ステップにおいて、差分抽出部11により各変数ごとに抽出された変数値の差分の有無を表示することにより、解析プログラム10の処理に影響する変数と影響しない変数とを提示する。
また、解析結果表示部14は、第2の抽出ステップにおいて、差分抽出部11により各部品化機能ごとに抽出された変数値の差分の有無を表示することで、解析プログラムの処理に影響する部品化機能と影響しない部品化機能とを提示する。
このように、本実施の形態1によれば、部品化機能ごとに変数値の変化を解析し、解析プログラム10に含まれる部品化機能とその変数のうち、処理に影響しない変数と処理に影響しない部品化機能を抽出し、解析結果表示部14が表示するようにしたので、解析プログラム10のデータ容量の削減や処理速度の改善を実施する際に、不要な部品化機能や変数を抽出し、それらを削除した場合でも、各部品化機能が本来有する機能を損なうことなく、解析プログラム10のプログラム全体の効率化を図るために必要な情報を提示することができる。
また、本実施の形態1によれば、部品化機能ごとに変数値の変化を解析するようにしたので、解析結果表示部14が表示する情報量も抑えることができ、特許文献1のように表示する情報量が膨大な量になることを防止することができる。
以下に、本実施の形態2に係るプログラム解析装置及びプログラム解析方法について、図面に基づいて説明する。図10は、本実施の形態2に係るプログラム解析装置の概略構成図である。
また、本実施の形態2においては、解析結果表示部14が、未到達機能抽出部15により抽出された処理が実行されなかった部品化機能を表示することで、解析プログラム10の処理で使用されない部品化機能を提示する。
なお、他の構成及び処理については、実施の形態1と同様であるため、ここでは、その説明を省略する。
Claims (3)
- 部品化機能の組み合わせで構成されたプログラムを解析するプログラム解析装置であって、
前記プログラムは、外部から入力されるプログラム入力情報に基づく順序で前記部品化機能の処理を順次実行するものであって、
前記プログラム解析装置は、
前記部品化機能ごとに、前記部品化機能が使用する変数のリストを保持した部品化機能データベースと、
前記部品化機能データベースが保持する前記リストに基づいて前記プログラム全体で使用される全変数を抽出し、前記プログラム入力情報が入力されたときに、前記プログラム入力情報に従って前記プログラムを実行させ、当該プログラムの実行時に、前記部品化機能ごとに、前記部品化機能の処理の開始タイミングと終了タイミングとにおける前記全変数の変数値の差分の有無を各変数ごとに抽出するとともに、前記開始タイミングと前記終了タイミングとにおける前記部品化機能の処理全体における前記全変数のうちの少なくとも1つの変数の変数値の差分の有無を各部品化機能ごとに抽出する差分抽出部と、
前記差分抽出部の抽出結果に基づいて前記プログラムの解析結果を表示する解析結果表示部と
を備え、
前記解析結果表示部は、
前記差分抽出部により各変数ごとに抽出された前記変数値の差分の有無を表示することにより、前記プログラムの処理に影響する変数と影響しない変数とを提示し、
前記差分抽出部により各部品化機能ごとに抽出された前記変数値の差分の有無を表示することで、前記プログラムの処理に影響する部品化機能と影響しない部品化機能とを提示する、
プログラム解析装置。 - 前記プログラム入力情報に従って前記プログラムを実行したときに、前記プログラム内で処理が実行されなかった部品化機能を抽出する未到達機能抽出部をさらに備え、
前記解析結果表示部は、前記未到達機能抽出部により抽出された前記部品化機能を表示することで、前記プログラムの処理で使用されない部品化機能を提示する、
請求項1に記載のプログラム解析装置。 - 部品化機能の組み合わせで構成されたプログラムを解析するプログラム解析方法であって、
前記部品化機能が使用する変数のリストを保持した部品化機能データベースを生成するデータベース生成ステップと、
前記部品化機能データベースが保持する前記リストに基づいて前記プログラム全体で使用される全変数を抽出する全変数抽出ステップと、
前記プログラムの実行時に使用するプログラム入力情報が入力されたときに、前記プログラム入力情報に従って前記プログラムを実行するプログラム実行ステップと、
前記プログラムの実行において、前記部品化機能ごとに、前記部品化機能の処理の開始タイミングと終了タイミングとにおける前記全変数の変数値の差分の有無を各変数ごとに抽出する第1の差分抽出ステップと、
前記プログラムの実行において、前記部品化機能ごとに、前記開始タイミングと前記終了タイミングとにおける前記部品化機能の処理全体における前記全変数のうちの少なくとも1つの変数の変数値の差分の有無を各部品化機能ごとに抽出する第2の差分抽出ステップと、
前記第1及び第2の差分抽出ステップの抽出結果に基づいて前記プログラムの解析結果を表示する解析結果表示ステップと
を備え、
前記解析結果表示ステップは、
前記第1の差分抽出ステップにより各変数ごとに抽出された前記変数値の差分の有無を表示することにより、前記プログラムの処理に影響する変数と影響しない変数とを提示し、
前記第2の差分抽出ステップにより各部品化機能ごとに抽出された前記変数値の差分の有無を表示することで、前記プログラムの処理に影響する部品化機能と影響しない部品化機能とを提示する、
プログラム解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015233151A JP6025955B1 (ja) | 2015-11-30 | 2015-11-30 | プログラム解析装置及びプログラム解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015233151A JP6025955B1 (ja) | 2015-11-30 | 2015-11-30 | プログラム解析装置及びプログラム解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6025955B1 true JP6025955B1 (ja) | 2016-11-16 |
JP2017102534A JP2017102534A (ja) | 2017-06-08 |
Family
ID=57326546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015233151A Active JP6025955B1 (ja) | 2015-11-30 | 2015-11-30 | プログラム解析装置及びプログラム解析方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6025955B1 (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004348667A (ja) * | 2003-05-26 | 2004-12-09 | Denso Corp | プログラム結合支援装置およびプログラム結合支援プログラム |
-
2015
- 2015-11-30 JP JP2015233151A patent/JP6025955B1/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004348667A (ja) * | 2003-05-26 | 2004-12-09 | Denso Corp | プログラム結合支援装置およびプログラム結合支援プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2017102534A (ja) | 2017-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9519401B2 (en) | Providing context menu based on predicted commands | |
EP2677451B1 (en) | License verification method and apparatus, and computer readable storage medium storing program therefor | |
JP2015043198A (ja) | 解析システム、解析方法および解析プログラム | |
JP6253521B2 (ja) | プログラム可視化装置、プログラム可視化方法、及びプログラム可視化プログラム | |
JP6003699B2 (ja) | テストデータ生成プログラム、方法及び装置 | |
US10018983B2 (en) | PLC system and arithmetic-expression-data-creation supporting apparatus | |
WO2014134990A1 (en) | Method, device and computer-readable storage medium for closure testing | |
JP2007018254A (ja) | 言語処理装置 | |
JP5440287B2 (ja) | シンボリック実行支援プログラム、方法及び装置 | |
US9588747B2 (en) | Method and apparatus for converting programs | |
JP6025955B1 (ja) | プログラム解析装置及びプログラム解析方法 | |
CN109460236B (zh) | 程序版本构建和检查方法及*** | |
CN107818000B (zh) | 一种页面表格的操作方法及装置 | |
JP7260150B2 (ja) | Webサイト設計支援装置、Webサイト設計支援方法、及びプログラム | |
JP2012173745A (ja) | データベース解析装置及びデータベース解析プログラム | |
JP2018022433A (ja) | 制御プログラム、装置、及び方法 | |
JP5702265B2 (ja) | プログラム自動生成装置およびプログラム自動生成方法 | |
KR101673151B1 (ko) | 프로그램 소스 및 db 스키마의 연관 관계 변화 분석 방법 및 장치 | |
CN111126012A (zh) | 定制生成表达式方法及装置 | |
US20190384687A1 (en) | Information processing device, information processing method, and computer readable medium | |
JP2015069220A (ja) | 性能評価プログラム生成装置、方法、及びプログラム | |
JP6677068B2 (ja) | 実行時間推定装置、実行時間推定方法、及びプログラム | |
JP2010026968A (ja) | 回路生成支援プログラム及び回路生成支援方法 | |
JP5949889B2 (ja) | ソフトウェア開発支援装置 | |
JP2016173756A (ja) | テストケース生成プログラム、テストケース生成方法およびテストケース生成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160905 |
|
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: 20160913 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161011 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6025955 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 |