特開2019-220110(P2019-220110A)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アズビル株式会社の特許一覧
特開2019-220110プログラム比較装置、プログラム比較方法および比較プログラム
<>
  • 特開2019220110-プログラム比較装置、プログラム比較方法および比較プログラム 図000003
  • 特開2019220110-プログラム比較装置、プログラム比較方法および比較プログラム 図000004
  • 特開2019220110-プログラム比較装置、プログラム比較方法および比較プログラム 図000005
  • 特開2019220110-プログラム比較装置、プログラム比較方法および比較プログラム 図000006
  • 特開2019220110-プログラム比較装置、プログラム比較方法および比較プログラム 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2019-220110(P2019-220110A)
(43)【公開日】2019年12月26日
(54)【発明の名称】プログラム比較装置、プログラム比較方法および比較プログラム
(51)【国際特許分類】
   G06F 8/70 20180101AFI20191129BHJP
【FI】
   G06F8/70
【審査請求】未請求
【請求項の数】8
【出願形態】OL
【全頁数】8
(21)【出願番号】特願2018-119265(P2018-119265)
(22)【出願日】2018年6月22日
(71)【出願人】
【識別番号】000006666
【氏名又は名称】アズビル株式会社
(74)【代理人】
【識別番号】110001461
【氏名又は名称】特許業務法人きさ特許商標事務所
(72)【発明者】
【氏名】遠藤 徹
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BC39
5B376BC57
(57)【要約】
【課題】ソースコードとオブジェクトプログラムとを簡易な処理で比較できるプログラム比較装置、プログラム比較方法および比較プログラムを提供することを目的とする。
【解決手段】プログラム比較装置において、ソースコードをコンパイルして作業用オブジェクトを生成し、該作業用オブジェクトを逆コンパイルして第1作業用ソースコードを生成する第1コード生成部と、オブジェクトプログラムを逆コンパイルして第2作業用ソースコードを生成する第2コード生成部と、第1作業用ソースコードと第2作業用ソースコードとを比較する比較部と、比較部における比較結果を表示する表示部と、を備える構成とした。
【選択図】図1
【特許請求の範囲】
【請求項1】
ソースコードをコンパイルして作業用オブジェクトを生成し、該作業用オブジェクトを逆コンパイルして第1作業用ソースコードを生成する第1コード生成部と、
オブジェクトプログラムを逆コンパイルして第2作業用ソースコードを生成する第2コード生成部と、
前記第1作業用ソースコードと前記第2作業用ソースコードとを比較する比較部と、
前記比較部における比較結果を表示する表示部と、
を備えることを特徴とするプログラム比較装置。
【請求項2】
前記比較部は、前記第1作業用ソースコードと前記第2作業用ソースコードとをテキスト比較することを特徴とする請求項1に記載のプログラム比較装置。
【請求項3】
前記表示部は、前記第1作業用ソースコードと、前記第2作業用ソースコードとを並べて表示することを特徴とする請求項1または2に記載のプログラム比較装置。
【請求項4】
前記表示部は、前記第1作業用ソースコードと、前記第2作業用ソースコードと、前記ソースコードとを並べて表示することを特徴とする請求項1または2に記載のプログラム比較装置。
【請求項5】
前記表示部は、前記第1作業用ソースコードと前記第2作業用ソースコードとの相違箇所を強調表示することを特徴とする請求項3または請求項4に記載のプログラム比較装置。
【請求項6】
前記比較部により、前記第1作業用ソースコードと前記第2作業用ソースコードとに相違点があると判断された場合、前記ソースコードにおける前記相違点の対応箇所を解析する解析部をさらに備え、
前記表示部は、前記ソースコードの前記対応箇所を表示することを特徴とする請求項1〜5の何れか一項に記載のプログラム比較装置。
【請求項7】
ソースコードをコンパイルして作業用オブジェクトを生成し、該作業用オブジェクトを逆コンパイルして第1作業用ソースコードを生成するステップと、
オブジェクトプログラムを逆コンパイルして第2作業用ソースコードを生成するステップと、
前記第1作業用ソースコードと前記第2作業用ソースコードとを比較するステップと、
前記比較の結果を表示するステップと、
を含むことを特徴とするプログラム比較方法。
【請求項8】
ソースコードをコンパイルして作業用オブジェクトを生成し、該作業用オブジェクトを逆コンパイルして第1作業用ソースコードを生成するステップと、
オブジェクトプログラムを逆コンパイルして第2作業用ソースコードを生成するステップと、
前記第1作業用ソースコードと前記第2作業用ソースコードとを比較するステップと、
前記比較の結果を表示するステップと、
をコンピュータに実行させる比較プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソースコードとオブジェクトプログラムとの比較を行うプログラム比較装置、プログラム比較方法および比較プログラムに関する。
【0002】
従来、オブジェクトプログラムとソースコードとの比較を行って変更点を確認する技術が知られている。例えば、特許文献1では、ソースコードとオブジェクトプログラムとの一致または不一致を判定するプログラム比較解析装置が提案されている。特許文献1のプログラム比較解析装置では、オブジェクトプログラムを逆コンパイルして言語プログラムを生成し、ソースプログラムと言語プログラムを比較する。そして、ソースプログラムと言語プログラムの対応箇所の一致または不一致を判定する構成となっている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2013−152559号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ソースコードをコンパイルしてオブジェクトプログラムを得る変換処理は、一般的には不可逆変換である。従って、オブジェクトプログラムを逆コンパイルしても、元のソースコードと同一のソースコードを得ることはできない。そのため、特許文献1に記載される逆コンパイルした言語プログラムとソースプログラムとでは、表現が大きく異なる。特許文献1では、表現の異なるソースプログラムと言語プログラムとを比較するために、プログラムの対応表または解析ツリーを生成して、ソースプログラムと言語プログラムとの対応箇所を対応付ける必要があり、処理が煩雑である。
【0005】
本発明は、上記従来技術における課題に鑑みてなされたものであり、ソースコードとオブジェクトプログラムとを簡易な処理で比較できるプログラム比較装置、プログラム比較方法および比較プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明のプログラム比較装置は、ソースコードをコンパイルして作業用オブジェクトを生成し、該作業用オブジェクトを逆コンパイルして第1作業用ソースコードを生成する第1コード生成部と、オブジェクトプログラムを逆コンパイルして第2作業用ソースコードを生成する第2コード生成部と、第1作業用ソースコードと第2作業用ソースコードとを比較する比較部と、比較部における比較結果を表示する表示部と、を備える。
【0007】
本発明のプログラム比較方法は、ソースコードをコンパイルして作業用オブジェクトを生成し、該作業用オブジェクトを逆コンパイルして第1作業用ソースコードを生成するステップと、オブジェクトプログラムを逆コンパイルして第2作業用ソースコードを生成するステップと、第1作業用ソースコードと第2作業用ソースコードとを比較するステップと、比較の結果を表示するステップと、を含む。
【0008】
本発明の比較プログラムは、ソースコードをコンパイルして作業用オブジェクトを生成し、該作業用オブジェクトを逆コンパイルして第1作業用ソースコードを生成するステップと、オブジェクトプログラムを逆コンパイルして第2作業用ソースコードを生成するステップと、第1作業用ソースコードと第2作業用ソースコードとを比較するステップと、比較の結果を表示するステップと、をコンピュータに実行させるものである。
【発明の効果】
【0009】
本発明によれば、表現が同じ第1作業用ソースコードと第2作業用ソースコードとを生成することで、ソースコードとオブジェクトプログラムとの比較を簡易な処理で行うことができる。
【図面の簡単な説明】
【0010】
図1】実施の形態1におけるプログラム比較装置の概略構成図である。
図2】実施の形態1の表示部に表示される比較結果画面の一例である。
図3】実施の形態1におけるプログラム比較方法のフローチャートである。
図4】実施の形態2におけるプログラム比較装置の概略構成図である。
図5】実施の形態2におけるプログラム比較方法のフローチャートである。
【発明を実施するための形態】
【0011】
実施の形態1.
以下、本発明に係るプログラム比較装置100の実施の形態について、図面を参照して説明する。図1は、実施の形態1におけるプログラム比較装置100の概略構成図である。本実施の形態のプログラム比較装置100は、コンピュータ200で実行されるオブジェクトプログラムとソースコードとの比較を行うコンピュータである。プログラム比較装置100を用いて、コンピュータ200のオブジェクトプログラムにおける変更点、例えば更新の有無または更新内容等が検出される。
【0012】
図1に示すように、プログラム比較装置100は、入力部1と、制御部2と、表示部3とを備える。入力部1は、コンピュータ200からオブジェクトプログラムを取得し、制御部2に入力する。オブジェクトプログラムは、コンパイル方式のプログラムであればよく、例えばCL(Control Language)プログラムである。また、入力部1は、オブジェクトプログラムと比較するソースコードをユーザから取得し、制御部2へ入力する。なお、ソースコードは図示されないメモリに記憶されていてもよく、入力部1は、当該メモリからソースコードを取得して、制御部2へ入力してもよい。
【0013】
制御部2は、入力部1から入力されるソースコードとオブジェクトプログラムとの比較を行う。制御部2は、メモリ(図示せず)に格納されるプログラムを実行するCPU(Central Processing Unit)またはマイクロコンピュータなどで構成される。なお、制御部2を単一または複合回路などのハードウェアで構成してもよい。
【0014】
表示部3は、LCD(Liquid Crystal Display)などのディスプレイである。表示部3は、制御部2によるソースコードとオブジェクトプログラムとの比較結果を表示する。なお、本実施の形態では、プログラム比較装置100が表示部3を備える構成としているが、プログラム比較装置100に接続されるその他の機器が表示部3を備えてもよい。
【0015】
また、制御部2は、プログラムを実行することにより実現される機能部として、第1コード生成部21と、第2コード生成部22と、比較部23と、表示生成部24とを有する。第1コード生成部21は、ソースコードをコンパイルして作業用オブジェクトを生成し、作業用オブジェクトを逆コンパイルして、第1作業用ソースコードを生成する。なお、作業用オブジェクトを生成するために用いられるコンパイラは、コンピュータ200のオブジェクトプログラムを生成するために用いられるコンパイラと同じものとする。第2コード生成部22は、オブジェクトプログラムを逆コンパイルして第2作業用ソースコードを生成する。なお、第1コード生成部21で用いられる逆コンパイラと、第2コード生成部22で用いられる逆コンパイラは、同じものとする。
【0016】
比較部23は、第1作業用ソースコードと、第2作業用ソースコードとを比較する。ここで、第1作業用ソースコードと、第2作業用ソースコードとは、同様のコンパイラおよび逆コンパイラを用いて生成されているため、変換処理で失われる情報も同じであり、形式および表現が同じとなる。そのため、比較部23では、第1作業用ソースコードと、第2作業用ソースコードとをテキスト比較することにより、一致および不一致を判断することができる。
【0017】
表示生成部24は、比較部23の比較結果に基づき、表示部3に表示させる比較結果画面30を生成する。図2は、本実施の形態の表示部3に表示される比較結果画面30の一例である。図2に示すように、比較結果画面30は、3画面に分割されており、各画面に第1作業用ソースコード31と、第2作業用ソースコード32と、元のソースコード33とがそれぞれ並んで表示される。
【0018】
また、比較結果画面30は、第1作業用ソースコード31と、第2作業用ソースコード32とを同時にスクロールするスクロールバー35と、ソースコード33をスクロールするスクロールバー36とを有する。これにより、第1作業用ソースコード31および第2作業用ソースコード32と、ソースコード33とをそれぞれ独立してスクロールさせることができ、両者を容易に見比べることができる。
【0019】
また、比較結果画面30では、第1作業用ソースコード31と、第2作業用ソースコード32との相違箇所がハイライトで示される。これにより、比較結果画面30を見たユーザは、容易に相違箇所を把握することができる。なお、第1作業用ソースコード31と第2作業用ソースコード32との相違箇所の表示は、強調表示されるものであればよく、ハイライトに限定されるものではない。例えば、第1作業用ソースコード31と第2作業用ソースコード32との相違箇所の色を変える、もしくは下線または囲い線などを表示する、などしてもよい。
【0020】
図3は、本実施の形態におけるプログラム比較方法のフローチャートである。プログラム比較方法は、制御部2がメモリに記憶される比較プログラムを実行することにより実施される。まず、制御部2に比較対象となるソースコードとオブジェクトプログラムが入力される(S1)。そして、第1コード生成部21により、ソースコードがコンパイルされ、作業用オブジェクトが生成される(S2)。続いて、生成された作業用オブジェクトが逆コンパイルされ、第1作業用ソースコードが生成される(S3)。また、第2コード生成部22により、オブジェクトプログラムが逆コンパイルされ、第2作業用ソースコードが生成される(S4)。なお、第1作業用ソースコードの生成と、第2作業用ソースコードの生成は、並列に実施されてもよい。
【0021】
続いて、比較部23によって、第1作業用ソースコードと第2作業用ソースコードとが比較され(S5)、相違点の有無が判断される(S6)。第1作業用ソースコードと第2作業用ソースコードとに相違点がある場合(S6:YES)、表示生成部24により、相違箇所のハイライト表示を含む比較結果画面30が生成され、表示部3に表示される(S7)。一方、第1作業用ソースコードと第2作業用ソースコードとに相違点がない場合(S6:NO)、表示生成部24により、相違点がないことを通知する表示を含む比較結果画面30が生成され、表示部3に表示される(S8)。相違点がない場合は、相違点がないことを表示することで、ユーザが相違箇所を探すことなく、ソースコードとオブジェクトプログラムが同一であることを迅速に判断できる。
【0022】
以上のように、本実施の形態によると、同じ表現の第1作業用ソースコードと第2作業用ソースコードとを生成することで、比較部23にてテキスト比較という簡易な処理を行うだけでソースコードとオブジェクトプログラムとを比較できる。また、第1作業用ソースコードと第2作業用ソースコードとは表現が同じであるため、これらを表示部3に並べて表示することで、ユーザが一致または不一致を容易に判断できる。また、第1作業用ソースコードと第2作業用ソースコードとを表示するとともに、比較結果として相違箇所を強調表示することで、迅速に相違箇所を特定することができ、作業効率が向上する。
【0023】
実施の形態2.
次に、本発明の実施の形態2について説明する。図4は、実施の形態2におけるプログラム比較装置100Aの概略構成図である。実施の形態2のプログラム比較装置100Aは、制御部2Aが解析部25を有する点において、実施の形態1と相違する。プログラム比較装置100Aのその他の構成は、実施の形態1のプログラム比較装置100と同様である。
【0024】
解析部25は、制御部2Aがプログラムを実行することにより実現される機能部である。解析部25は、比較部23において、第1作業用ソースコードと第2作業用ソースコードとに相違点があると判断された場合に、元のソースコードにおける当該相違点の対応箇所を解析して特定する。具体的には、解析部25は、第1コード生成部21によるコンパイルおよび逆コンパイルにおける内部処理の解析を行い、対応箇所を追うことで、相違点に対応する箇所を特定する。また、解析部25は、第1作業用ソースコードおよび第2作業用ソースコードと、ソースコードとの対応関係を予め記憶し、当該対応関係に基づいて相違点の対応箇所を特定してもよい。
【0025】
表示生成部24は、比較部23による比較結果に加え、解析部25により特定された対応箇所を含む比較結果画面30を生成し、表示部3に表示させる。具体的には、比較結果画面30において、ソースコードの対応箇所がハイライト表示されるなどの強調表示が行われる。また、複数の相違点がある場合には、各相違点と対応箇所との対応がわかるように、例えば色分けなどを行って表示される。
【0026】
図5は、本実施の形態におけるプログラム比較方法のフローチャートである。本実施の形態のプログラム比較方法におけるステップS1からステップS8は、実施の形態1と同様である。そして、第1作業用ソースコードと第2作業用ソースコードとに相違点があり(S6:YES)、相違箇所がハイライト表示されると(S7)、ソースコードにおける相違点の対応箇所が解析される(S9)。そして、比較結果画面30に表示されるソースコードにおいて、特定された対応箇所がハイライト表示される(S10)。
【0027】
本実施の形態によると、実施の形態1と同様の効果に加え、ソースコードにおける相違点の対応箇所が特定される。これにより、ユーザが相違点とソースコードとの対応を迅速に把握することができ、作業効率がさらに向上する。
【0028】
以上が本発明の実施の形態の説明であるが、本発明は、上記の実施の形態に限定されるものではなく、本発明の主旨を逸脱しない範囲で種々に変形することが可能である。例えば、制御部2は、第1作業用ソースコードを予め生成し、図示しないメモリ等に記憶していてもよい。これにより、オブジェクトプログラムとの比較を行う度に、第1作業用ソースコードを生成する必要がなく、処理がさらに簡素化される。
【0029】
また、比較結果画面30において、第1作業用ソースコード31と第2作業用ソースコード32のみを並べて表示し、ソースコード33を別画面に表示してもよい。さらに、比較結果画面30において、第1作業用ソースコード31と第2作業用ソースコード32との相違箇所のみまたはソースコード33の対応箇所のみ、もしくはその両方を表示してもよい。
【符号の説明】
【0030】
1 入力部、2、2A 制御部、3 表示部、21 第1コード生成部、22 第2コード生成部、23 比較部、24 表示生成部、25 解析部、30 比較結果画面、31 第1作業用ソースコード、32 第2作業用ソースコード、33 ソースコード、35、36 スクロールバー、100、100A プログラム比較装置、200 コンピュータ。
図1
図2
図3
図4
図5