JP3494376B1 - プログラム解析装置およびプログラム - Google Patents

プログラム解析装置およびプログラム

Info

Publication number
JP3494376B1
JP3494376B1 JP2002354264A JP2002354264A JP3494376B1 JP 3494376 B1 JP3494376 B1 JP 3494376B1 JP 2002354264 A JP2002354264 A JP 2002354264A JP 2002354264 A JP2002354264 A JP 2002354264A JP 3494376 B1 JP3494376 B1 JP 3494376B1
Authority
JP
Japan
Prior art keywords
program
command pattern
information
pattern information
analysis
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
JP2002354264A
Other languages
English (en)
Other versions
JP2004185508A (ja
Inventor
廣仲 長島
茂 浅尾
正伸 鶴巻
Original Assignee
株式会社システムズ
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 株式会社システムズ filed Critical 株式会社システムズ
Priority to JP2002354264A priority Critical patent/JP3494376B1/ja
Priority to US10/518,090 priority patent/US7831964B2/en
Priority to CNB2003801004739A priority patent/CN100345116C/zh
Priority to AU2003284504A priority patent/AU2003284504A1/en
Priority to KR1020047018061A priority patent/KR100688444B1/ko
Priority to PCT/JP2003/015305 priority patent/WO2004051470A1/ja
Application granted granted Critical
Publication of JP3494376B1 publication Critical patent/JP3494376B1/ja
Publication of JP2004185508A publication Critical patent/JP2004185508A/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

【要約】 【課題】 従来技術において、一のプログラムを自動変
換または半自動変換する自動変換プログラムを開発する
場合に、どの命令パターンに対応する自動変換プログラ
ムを開発すべきかが判断できず、効率的にソースプログ
ラムを変換できなかった。 【解決手段】 プログラムの命令パターンを示す情報で
ある命令パターン情報を1以上格納している命令パター
ン情報格納部と、プログラムを格納するプログラム格納
部と、プログラムにおいて、1以上の命令パターン情報
が何回存在するかを解析する解析部と、解析部における
解析結果を出力する解析結果出力部を具備するプログラ
ム解析装置により、変換対象とするソースプログラムが
含む命令パターンの解析が可能となり、その結果、効率
的にソースプログラムを変換する自動変換プログラムを
開発できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プログラムを解析
するプログラム解析装置や、当該プログラムの一部また
は全部を自動変換するプログラム自動変換装置や、その
プログラム等に関する。
【0002】
【従来の技術】従来、ソースプログラムやスクリプトを
自動変換する技術として、コンパイラ差分により発生す
る記述の違いを自動検出し、自動修正もしくはリストア
ップして開発作業を向上させる技術があった(特許文献
1参照)。本技術は、C言語で記述された原始プログラ
ムを構文解析し、1トークン毎のデータベースと中間フ
ァイルを作成し、データベース上の対象になる文字列を
削除・変更し、データベースや中間ファイルの情報をC
言語ファイルに生成し、目的プログラムを生成するもの
である。
【0003】また、第二の従来技術として、特定のコン
ピュータ上に開発されたプログラム・オブジェクトをも
とに、他のコンピュータで実行可能なソフトウェアを自
動生成する技術があった(特許文献2参照)。本技術
は、与えられたコンピュータ資源のもとで実行可能なオ
ブジェクトコードは、セグメント分割器により、命令コ
ード領域D2とデータコード領域D3に分割される。続
いて、命令コード領域D2は、命令コード変換器によ
り、命令セットやOSプリミティブを解析し、高級プロ
グラム言語による命令文に変換される。また、データコ
ード領域D3は、参照している命令コードの種別に応じ
たデータ型を判別し、データ構文変換器により、高級プ
ログラム言語によるデータ定義文に変換される。さら
に、参照領域変換器が、データ定義文に対して、命令文
が利用するための参照名を付加し、命令文が参照名を利
用する形式に変換して高級言語プログラムを生成するも
のである。
【0004】
【特許文献1】特開2002−41286(第1頁、図
1等)
【特許文献2】特開平6−83630(第1頁、図1
等)
【0005】
【発明が解決しようとする課題】しかしながら、上記の
特許文献1の技術は、変換対象のソースプログラムが記
載されたプログラム言語の仕様が有するすべての命令を
自動変換することを前提としている、と考えられる。ま
た、上記の特許文献2の技術は、特定のコンピュータ上
におけるすべてのプログラム・オブジェクトを自動変換
することを前提としている、と考えられる。つまり、従
来技術において、一のプログラムの動作環境を移行する
ために、一のプログラムを移行後の環境においても効率
良く動作させることを考慮していない。従って、従来技
術では、変換対象とするソースプログラムのどの命令パ
ターンを自動変換し、どの命令パターンを手作業で行う
かが判断できない。従来技術において、一のプログラム
を自動変換または半自動変換する自動変換プログラムを
開発する場合に、どの命令パターンに対応する自動変換
プログラムを開発すべきかが判断できず、効率的にソー
スプログラムを変換できなかった。具体的には、従来技
術では、変換対象のプログラムにおいて1度しか出現し
ない命令パターンも自動変換するプログラムを開発する
ことが前提となっている。
【0006】
【課題を解決するための手段】上記の課題を解決するた
めに、プログラムの命令パターンを示す情報である命令
パターン情報を1以上格納している命令パターン情報格
納部と、プログラムを格納するプログラム格納部と、プ
ログラムにおいて、1以上の命令パターン情報が何回存
在するかを解析する解析部と、解析部における解析結果
を出力する解析結果出力部を具備するプログラム解析装
置により、変換対象とするソースプログラムが含む命令
パターンの解析が可能となり、その結果、効率的にソー
スプログラムを変換する自動変換プログラムを開発でき
る。
【0007】また、上記の課題を解決するために、旧プ
ログラムの命令パターンを示す情報である第一命令パタ
ーン情報と新プログラムの命令パターンを示す情報であ
る第二命令パターン情報の対を1以上格納している命令
パターン対応情報格納部と、プログラムを格納している
プログラム格納部と、プログラムにおいて、1以上の第
一命令パターン情報が何回出現するかを解析する解析部
と、第一命令パターン情報に対応する旧プログラムの一
部を第二命令パターン情報に対応するように自動変換す
る条件を格納している条件格納部と、プログラム中の、
条件に合致する第一命令パターン情報に対応する旧プロ
グラムの一部を、当該第一命令パターン情報に対応する
第二命令パターン情報に対応するように変換する命令パ
ターン変換部と、命令パターン変換部がプログラムを変
換した結果である新プログラムを出力する新プログラム
出力部を具備するプログラム自動変換装置により、変換
対象とするソースプログラムが含む命令パターンの解析
が可能となり、その結果、効率的にソースプログラムを
変換する自動変換プログラムを開発できる。
【0008】
【発明の実施の形態】以下、本発明のプログラム解析装
置およびプログラム自動変換装置等の実施形態について
図面を参照して説明する。なお、実施の形態において同
じ符号を付した構成要素は同様の動作を行うので、再度
の説明を省略する場合がある。
【0009】(実施の形態1)
【0010】図1は、プログラム解析装置のブロック図
を示す。プログラム解析装置は、命令パターン情報格納
部101、プログラム格納部102、解析部103、解
析結果出力部104を有する。
【0011】命令パターン情報格納部101は、プログ
ラムの命令パターンを示す情報である命令パターン情報
を1以上格納している。命令パターン情報格納部101
は、不揮発性の記録媒体、または揮発性の記録媒体でも
実現可能である。
【0012】プログラム格納部102は、プログラムを
格納している。プログラム格納部102は、不揮発性の
記録媒体、または揮発性の記録媒体でも実現可能であ
る。プログラムとは、通常、ソースプログラムであり、
その言語は問わない。プログラムは、いわゆるスクリプ
トと言われるHTML、XMLなども含む。また、プロ
グラムは、手続き型のプログラム、宣言型のプログラム
等問わない、また、プログラムは、プログラムが動作す
るためのデータ群(ヘッダーファイルなど)も含む。
【0013】解析部103は、プログラム格納部102
に格納されているプログラムにおいて、1以上の命令パ
ターン情報が何回出現するかを解析する。解析部103
は、通常、MPUやメモリ等から実現され得る。解析部
103が解析するための処理手順は、通常、ソフトウェ
アで実現され、当該ソフトウェアはROM等の記録媒体
に記録されている。但し、ハードウェア(専用回路)で
実現しても良い。
【0014】解析結果出力部104は、解析部103に
おける解析結果を出力する。出力とは、通常、ディスプ
レイへの表示をいうが、プリンタへの印字、他の装置へ
の送信なども含む。また、出力とは、ハードディスクな
どの記録媒体への蓄積も含む概念である。また、解析結
果出力部104は、出力ディスプレイを含むと考えても
含まないと考えても良い。解析結果出力部104は、例
えば、出力デバイスのドライバーソフトで実現され得
る。
【0015】以下、本プログラム解析装置の動作につい
て図2のフローチャートを用いて説明する。
【0016】(ステップS201)解析部103は、プ
ログラム格納部102のプログラムを読み込む。このプ
ログラムは、解析対象のプログラムである。プログラム
格納部102に複数のプログラムが格納されている場
合、例えば、解析部103は、ユーザが指示したプログ
ラムを読み込む。
【0017】(ステップS202)解析部103は、命
令パターン情報格納部101に格納されている1以上の
命令パターン情報を読み込む。
【0018】(ステップS203)解析部103は、命
令パターン情報の出現回数である命令パターン出現回数
をすべて0にする。なお、すべての命令パターン情報に
対応する命令パターン出現回数は、例えば、解析部10
3が保持しているメモリに記憶されている。
【0019】(ステップS204)解析部103は、カ
ウンタiに1を代入する。このカウンタは、ステップS
201で読み込んだプログラムのプログラムカウンタで
ある。つまり、解析部103は、ステップS201で読
み込んだプログラムのi番目の行を以下の処理により解
析する。なお、ここでは、プログラムは、1行1命令パ
ターンのプログラムである、とする。
【0020】(ステップS205)解析部103は、ス
テップS201で読み込んだプログラムにおいて、i番
目のプログラムソース行が存在するか否かを判断する。
i番目のプログラムソース行が存在すればステップS2
06に行き、i番目のプログラムソース行が存在しなけ
ればステップS213に飛ぶ。
【0021】(ステップS206)解析部103は、カ
ウンタjに1を代入する。カウンタjは、ステップS2
02で読み込んだ1以上の命令パターン情報のうち、解
析に利用する命令パターン情報を取得するためのカウン
タである。
【0022】(ステップS207)解析部103は、i
番目のプログラムソース行は、j番目の命令パターン情
報に対応する命令パターンの行であるか否かを判断す
る。i番目のプログラムソース行がj番目の命令パター
ンであればステップS208に行き、j番目の命令パタ
ーンでなければステップS210に飛ぶ。i番目のプロ
グラムソース行がj番目の命令パターン情報に対応する
か否かの判断は、構文解析、字句解析等で可能であり、
既存技術であるので、ここでの詳細な説明は省略する。
【0023】(ステップS208)解析部103は、j
番目の命令パターン情報に対応する命令パターン出現回
数を1インクリメントする。
【0024】(ステップS209)解析部103は、i
をインクリメントする。ステップS205に戻る。
【0025】(ステップS210)解析部103は、j
をインクリメントする。
【0026】(ステップS211)解析部103は、j
番目の命令パターンが、命令パターン情報格納部101
に存在するか否かを判断する。j番目の命令パターンが
存在すればステップS207に戻り、j番目の命令パタ
ーンが存在しなければステップS212に行く。
【0027】(ステップS212)解析部103は、
「どの命令パターンにも該当しない旨」のエラー出力を
する。但し、このエラー出力処理はなくても良い。
【0028】(ステップS213)解析結果出力部10
4は、解析結果を出力する。解析結果とは、各命令パタ
ーン情報の命令パターン出現回数である。
【0029】以下、本実施の形態におけるプログラム解
析装置等の具体的な動作について説明する。図3は、命
令パターン情報格納部101が保持している命令パター
ン情報管理表である。命令パターン情報管理表は、「I
D」「命令パターン情報」を有するレコードを複数格納
している。「ID」はレコードを識別する情報であり、
表管理上利用される情報である。「命令パターン情報」
は、命令パターン情報を格納する属性である。
【0030】また、図4は、解析部103が保持してい
る命令パターン出現回数管理表である。命令パターン出
現回数管理表は、「ID」「出現回数」を有するレコー
ドを1以上有する。「ID」は、図3の命令パターン情
報管理表の「ID」に対応している。「出現回数」は、
命令パターンの出現回数を示す。「出現回数」の初期値
は、すべて「0」である。
【0031】図5は、プログラム格納部102に格納さ
れているプログラムの例である。プログラム解析装置
は、ユーザの指示により、図5のプログラムの解析を開
始する。図5のプログラムにおいて「*」で始まる行は
コメント行である。なお、プログラム解析装置は、コメ
ント行であることを判断した後の解析は行わない。
【0032】解析部103は、まず、図5のプログラム
の1行目を読み込む。1行目はコメント行であるので、
次の行に移る(プログラムカウンタを進める)。解析部
103は、2行目から8行目までもコメント行であるの
で、解析は行わない。
【0033】次に、解析部103は、プログラムの9行
目「IDENTIFICATIONDIVISIO
N.」を読み込む。解析部103は、プログラムの9行
目は、図3の命令パターン情報管理表の「ID=1」の
命令パターン情報に対応する、と判断する。そして、解
析部103は、図4の命令パターン出現回数管理表の
「ID」=「1」のレコードの「出現回数」の値を1イ
ンクリメントする。その結果が、図6の命令パターン出
現回数管理表である。
【0034】次に、解析部103は、プログラムの10
行目「PROGRAM−ID.PSD712.」を読み
込む。解析部103は、プログラムの10行目は、図3
の命令パターン情報管理表の「ID=2」の命令パター
ン情報に対応する、と判断する。なお、図3の命令パタ
ーン情報管理表の「変数01」「変数02」などは、変
数を意味する。プログラムにおいて、変数は、英数字の
文字列で構成される。ここでは、「PSD712」は変
数である。そして、解析部103は、図6の命令パター
ン出現回数管理表の「ID」=「2」の「出現回数」の
値を1インクリメントする。
【0035】以上のような処理を、図5のプログラムの
すべての行に対して行う。そして、図7に示す命令パタ
ーン出現回数管理表を得る。
【0036】次に、解析結果出力部104は、図8に示
すような解析結果を出力する。解析結果は、「ID」
「回数」「命令パターン」を有する。「回数」は出現回
数である。また、図8の解析結果は、図3の命令パター
ン情報管理表と、図7の命令パターン出現回数管理表か
ら構成される。具体的には、図8の解析結果は、図3の
命令パターン情報管理表の「ID」と、図7の命令パタ
ーン出現回数管理表「ID」をキーとして、結合演算さ
れ、出力された結果である。
【0037】以上、本実施の形態によれば、変換対象と
するソースプログラムが含む命令パターンの解析が可能
となり、その結果、効率的にソースプログラムを変換す
る自動変換プログラムを開発できる。なお、本実施の形
態における解析結果を受けて、プログラムを自動変換す
る処理については、実施の形態2以降で述べる。
【0038】なお、本実施の形態において、ある一定以
上の回数が出現する命令パターンを他の命令パターンと
視覚的に区別して表示しても良い。かかる場合、例え
ば、図9に示すような解析結果が表示される。図9によ
れば、3回以上出現する命令パターンを他の命令パター
ンと視覚的に区別して表示している。なお、一定以上の
回数が出現する命令パターンを他の命令パターンと視覚
的に区別して表示する態様は、図9における態様に限ら
ず、何でも良い。
【0039】また、本実施の形態において説明した動作
は、コンピュータ読み取り可能なプログラムで実現して
も良い。当該プログラムは、CD−ROMなどの記録媒
体に記録されて流布しても良いし、ネットワーク配信に
より流布しても良いし、放送で流布しても良い。かかる
ことも、他の実施の形態においても同様である。なお、
本実施の形態において説明した動作を実現するプログラ
ムは、コンピュータに、プログラムの命令パターンを示
す情報である命令パターン情報を1以上格納しており、
プログラムにおいて、1以上の命令パターン情報が何回
出現するかを解析する解析ステップと、解析ステップに
おける解析結果を出力する解析結果出力ステップを実行
させるためのプログラム、である。
【0040】さらに、本実施の形態において、一のプロ
グラム解析装置でプログラムの解析を行ったが、複数の
装置で処理を分担しても良い。つまり、プログラムの命
令パターンを示す情報である命令パターン情報を1以上
格納しており、プログラムにおいて、1以上の命令パタ
ーン情報が何回出現するかを解析する解析ステップと、
解析ステップにおける解析結果を出力する解析結果出力
ステップを具備するプログラム解析方法により、プログ
ラムが解析できれば、上述した効果を奏することとな
る。
【0041】(実施の形態2)
【0042】図10は、プログラム自動変換装置のブロ
ック図を示す。プログラム自動変換装置は、命令パター
ン対応情報格納部1001、プログラム格納部102、
解析部103、条件格納部1002、命令パターン変換
部1003、新プログラム出力部1004を具備する。
【0043】命令パターン対応情報格納部1001は、
旧プログラム(変換対象のプログラム)の命令パターン
を示す情報である第一命令パターン情報と新プログラム
(変換後のプログラム)の命令パターンを示す情報であ
る第二命令パターン情報の対を1以上格納している。命
令パターン対応情報格納部1001は、不揮発性の記録
媒体、または揮発性の記録媒体でも実現可能である。
【0044】条件格納部1002は、第一命令パターン
情報に対応する旧プログラムの一部を第二命令パターン
情報に対応するように自動変換する条件を格納してい
る。条件格納部1002は、不揮発性の記録媒体、また
は揮発性の記録媒体でも実現可能である。条件は、命令
パターン変換部1003が行う処理を実現するプログラ
ム中に埋め込まれている(ヘッダーファイルなどに定義
されている場合も含む)場合が多い。なお、条件は、解
析部103の解析結果に基づく条件である。
【0045】命令パターン変換部1003は、プログラ
ム格納部102に格納されているプログラム(旧プログ
ラム)に対して、条件格納部1002に格納されている
条件に合致する第一命令パターン情報に対応する旧プロ
グラムの一部を、当該第一命令パターン情報と対になる
第二命令パターン情報に対応するように変換する処理を
行う。命令パターン変換部1003は、通常、MPUや
メモリ等から実現され得る。命令パターン変換部100
3が情報を変換するための処理手順は、通常、ソフトウ
ェアで実現され、当該ソフトウェアはROM等の記録媒
体に記録されている。但し、ハードウェア(専用回路)
で実現しても良い。
【0046】新プログラム出力部1004は、命令パタ
ーン変換部1003がプログラムを変換した結果である
新プログラムを出力する。出力とは、通常、ディスプレ
イへの表示をいうが、プリンタへの印字、他の装置への
送信、記録媒体(ハードディスク、デジタル多目的ディ
スクなど)への蓄積なども含む。また、新プログラム出
力部1004は、出力ディスプレイを含むと考えても含
まないと考えても良い。新プログラム出力部1004
は、例えば、出力デバイスのドライバーソフトで実現さ
れ得る。
【0047】以下、本プログラム自動変換装置の動作に
ついて図11のフローチャートを用いて説明する。
【0048】(ステップS1101)プログラム解析ル
ーチンを実行する。本プログラム解析ルーチンは、図2
のフローチャートを用いて説明したプログラムの解析処
理であり、変換対象のプログラムである旧プログラム中
における、命令パターンごとの出現回数を出力する。
【0049】(ステップS1102)命令パターン変換
部1003は、プログラム格納部102のプログラムを
読み込む。プログラム格納部102に2以上のプログラ
ムが存在する場合は、例えば、命令パターン変換部10
03は、ユーザが指示したプログラムを読み込む。
【0050】(ステップS1103)命令パターン変換
部1003は、命令パターン対応情報格納部1001が
保持している1以上の第一命令パターン情報を読み込
む。
【0051】(ステップS1104)命令パターン変換
部1003は、カウンタiに1を代入する。このカウン
タは、ステップS1102で読み込んだプログラムのプ
ログラムカウンタである。つまり、命令パターン変換部
1003は、ステップS1102で読み込んだプログラ
ムのi番目の行を以下の処理により変換する。なお、こ
こでは、プログラムは、1行1命令パターンのプログラ
ムである、とする。
【0052】(ステップS1105)命令パターン変換
部1003は、ステップS1102で読み込んだプログ
ラムにおいて、i行目のプログラムソースが存在するか
否かを判断する。i行目のプログラムソースが存在すれ
ばステップS1106に行き、i行目のプログラムソー
スが存在しなければステップS1116に飛ぶ。
【0053】(ステップS1106)命令パターン変換
部1003は、カウンタjに1を代入する。カウンタj
は、ステップS1103で読み込んだ1以上の第一命令
パターン情報のうち、変換に利用する第一命令パターン
情報を取得するためのカウンタである。
【0054】(ステップS1107)命令パターン変換
部1003は、i行目のプログラムソースは、j番目の
第一命令パターン情報に対応するか否かを判断する。j
番目の第一命令パターン情報に対応すればステップS1
108に行き、j番目の第一命令パターン情報に対応し
なければステップS1113に飛ぶ。なお、i行目のプ
ログラムソースがj番目の第一命令パターン情報に対応
するか否かは、i行目のプログラムソースの構文解析、
字句解析により可能である。
【0055】(ステップS1108)命令パターン変換
部1003は、j番目の第一命令パターン情報が条件格
納部1002の条件に合致するか否かを、ステップS1
101のプログラム解析ルーチンの解析結果に基づいて
決定する。j番目の第一命令パターン情報が条件に合致
すればステップS1109に行き、j番目の第一命令パ
ターン情報が条件に合致しなければステップS1115
に飛ぶ。
【0056】(ステップS1109)命令パターン変換
部1003は、j番目の第一命令パターン情報と対にな
る第二命令パターン情報を、命令パターン対応情報格納
部1001から取得する。
【0057】(ステップS1110)命令パターン変換
部1003は、i行目のプログラムソースを、ステップ
S1109で取得した第二命令パターン情報が示す命令
パターンに変換する。
【0058】(ステップS1111)命令パターン変換
部1003は、ステップS1110で変換したi行目の
ソースを新プログラムに追加する。なお、新プログラム
は、例えば、あるファイルに格納され、初期化段階(図
示しない)でファイル生成とファイルオープンがされて
いる、とする。
【0059】(ステップS1112)カウンタiをイン
クリメントする。ステップS1105に戻る。
【0060】(ステップS1113)カウンタjをイン
クリメントする。
【0061】(ステップS1114)命令パターン変換
部1003は、j番目の第一命令パターン情報が存在す
るか否かを判断する。j番目の第一命令パターン情報が
存在すればステップS1107に戻り、j番目の第一命
令パターン情報が存在しなければステップS1115に
行く。
【0062】(ステップS1115)命令パターン変換
部1003は、i行目のソースを新プログラムに追加す
る。ここでのi行目のソースは、例えば、コメント行で
ある。
【0063】(ステップS1116)新プログラム出力
部1004は、変換された後のプログラム(新プログラ
ム)を出力する。ここでの出力は、記録媒体(ハードデ
ィスク等)に蓄積されるだけの処理も含む。
【0064】以下、本実施の形態におけるプログラム変
換装置の具体的な動作について説明する。図12は、命
令パターン対応情報格納部1001が保持している命令
パターン情報管理表である。命令パターン情報管理表
は、「ID」「第一命令パターン情報」「第二命令パタ
ーン情報」を有するレコードを複数格納している。「I
D」はレコードを識別する情報である。命令パターン情
報管理表は、変換対象のプログラム中に出現する第一命
令パターン情報のソース行を対になる第二命令パターン
情報に対応するように変換する場合に利用する対応表で
ある。具体的には、「第一命令パターン情報」が「SOUR
CE-COMPUTER. XXXXXX.」である場合には、「第二命令
パターン情報」「#DEL# * SOURCE-COMPUTER. XXXXXX.
#CHG#SOURCE-COMPUTER. IBM-AS400.」に変換するこ
とを示す。なお「XXXXXX」は、任意の変数名を示す。ま
た、「#DEL#」は削除したことを示す。「#CHG#」は変換
した結果であることを示す。また、本ソースにおいて
「*」はコメント行であり、「#」から「#」はコメント
であることを示す。
【0065】また、図5は、プログラム格納部102に
格納されている旧プログラムの例である。図8は、解析
部103が解析した結果を示す命令パターン出現回数管
理表である。さらに、条件格納部1002は、出現回数
が2回以上の第一命令パターン情報のプログラム行を第
二命令パターン情報に変換する、という条件を保持して
いる、とする。
【0066】そして、命令パターン変換部1003が、
図5の旧プログラムを変換して生成し、新プログラム出
力部1004が出力した新プログラムの例を図13に示
す。図13において、新プログラムにおいて新たに生成
された行が下線で示されている。つまり、新プログラム
において、変換された行と変換されてない行が視覚的に
区別して表れている。
【0067】図13の新プログラムにおいて、は、命
令パターン情報管理表の「ID=1」の行により変換さ
れた箇所である。は、命令パターン情報管理表の「I
D=2」の行により変換された箇所である。
【0068】なお、図12の命令パターン情報管理表に
おいて、説明の便宜上、旧プログラム1行に対して、新
プログラムn行(nは自然数)が対応する場合のみを記
載したが、旧プログラムm行(mは2以上の自然数)に
対して、新プログラムn行(nは自然数)が対応しても
良い。
【0069】以上、本実施の形態によれば、変換対象と
するソースプログラムが含む命令パターンの解析が可能
となり、その結果、効率的にソースプログラムを自動変
換または半自動変換できる。具体的には、プログラムを
開発するまでもない一定未満の出現回数の命令パターン
は、手作業で修正し、一定以上の出現回数の命令パター
ンのみ自動変換することにより、効率的にプログラムを
変換できる。かかるプログラム自動変換装置により、例
えば、ある環境で動作していたプログラムを新しい環境
で動作させる作業が非常に効率的に、かつ安全に行え
る。
【0070】なお、本実施の形態において、図14に示
すように、変換後の新プログラムにおいて、手作業によ
って変換した箇所と、自動変換した箇所と、変換してい
ない箇所を視覚的に区別する態様で、新プログラムを蓄
積や表示等しても良い。図14の新プログラムにおい
て、「@」から「@」が手作業による作業を示すコメント
である。「@DEL@」は手作業で削除した行であることを
示し、「@ADD@」は手作業で追加した行であることを示
す。
【0071】また、本実施の形態において、自動変換す
るか手作業で変換するかを判断するための条件は、プロ
グラムにおける第一命令パターン情報の出現回数をパラ
メータとする条件(上記例では、2回以上の出現回数の
場合に自動変換するという条件)であったが、他の条件
により決定しても良い。また、ユーザの入力により自動
変換する第一命令パターンを指示する構成でも良い。
【0072】また、本実施の形態において説明した動作
は、コンピュータ読み取り可能なプログラムで実現して
も良い。当該プログラムは、CD−ROMなどの記録媒
体に記録されて流布しても良いし、ネットワーク配信に
より流布しても良いし、放送で流布しても良い。かかる
ことも、他の実施の形態においても同様である。なお、
本実施の形態において説明した動作を実現するプログラ
ムは、コンピュータに、旧プログラムの命令パターンを
示す情報である第一命令パターン情報と新プログラムの
命令パターンを示す情報である第二命令パターン情報の
対を1以上格納しており、旧プログラムにおいて、1以
上の第一命令パターン情報が何回出現するかを解析する
解析ステップと、第一命令パターン情報に対応する旧プ
ログラムの一部を自動変換する条件を格納している条件
格納ステップと、条件に合致する第一命令パターン情報
に対応する旧プログラムの一部を、当該第一命令パター
ン情報と対になる第二命令パターン情報に対応するよう
に変換する命令パターン変換ステップと、命令パターン
変換ステップでプログラムを変換した結果である新プロ
グラムを出力する新プログラム出力ステップを実行させ
るためのプログラム、である。
【0073】さらに、本実施の形態において、一のプロ
グラム自動変換装置でプログラムの変換を行ったが、複
数の装置で処理を分担しても良い。つまり、旧プログラ
ムの命令パターンを示す情報である第一命令パターン情
報と新プログラムの命令パターンを示す情報である第二
命令パターン情報の対を1以上格納しており、旧プログ
ラムにおいて、1以上の第一命令パターン情報が何回出
現するかを解析する解析ステップと、第一命令パターン
情報に対応する旧プログラムの一部を自動変換する条件
を格納している条件格納ステップと、条件に合致する第
一命令パターン情報に対応する旧プログラムの一部を、
当該第一命令パターン情報と対になる第二命令パターン
情報に対応するように変換する命令パターン変換ステッ
プと、命令パターン変換ステップにおいて旧プログラム
を変換した結果である新プログラムを出力する新プログ
ラム出力ステップを具備するプログラム自動変換方法に
より、プログラムが解析できれば、上述した効果を奏す
ることとなる。
【発明の効果】以上のように、本発明によれば、変換対
象とするプログラムが含む命令パターンの解析が可能と
なり、その結果、効率的にプログラムを変換できる。
【図面の簡単な説明】
【図1】実施の形態1におけるプログラム解析装置のブ
ロック図
【図2】実施の形態1におけるプログラム解析装置の動
作について説明するフローチャート
【図3】実施の形態1における命令パターン情報管理表
【図4】実施の形態1における命令パターン出現回数管
理表
【図5】実施の形態1におけるプログラムの例を示す図
【図6】実施の形態1における命令パターン出現回数管
理表を示す図
【図7】実施の形態1における命令パターン出現回数管
理表を示す図
【図8】実施の形態1における解析結果の例を示す図
【図9】実施の形態1における解析結果の表示例を示す
【図10】実施の形態2におけるプログラム自動変換装
置のブロック図
【図11】実施の形態2におけるプログラム自動変換装
置の動作について説明するフローチャート
【図12】実施の形態2における命令パターン情報管理
表を示す図
【図13】実施の形態2における変換後の新プログラム
の例を示す図
【図14】実施の形態2における新プログラムの例を示
す図
【符号の説明】
101 命令パターン情報格納部 102 プログラム格納部 103 解析部 104 解析結果出力部 1001 命令パターン対応情報格納部 1002 条件格納部 1003 命令パターン変換部 1004 新プログラム出力部
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平8−6815(JP,A) 特開2002−14826(JP,A) 特開 平11−224199(JP,A) 特開 昭64−46837(JP,A) 特開 平5−53822(JP,A) 特開 平10−63508(JP,A) 特開 平5−324343(JP,A) 特開2003−196090(JP,A) 特開 平1−290036(JP,A) 「ACOSソフトウェア ACOS− 6/NVX SEA/I CASEWO RLD パターン・部品登録利用の手引 き FPI76−1」,日本,日本電気株 式会社,1993年 6月,初版,pp.8 −14 (58)調査した分野(Int.Cl.7,DB名) G06F 9/45 G06F 9/06 CSDB(日本国特許庁)

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 旧ソースプログラムの命令パターンを示
    す情報である第一命令パターン情報と新ソースプログラ
    ムの命令パターンを示す情報である第二命令パターン情
    報の対を1以上、記憶部に格納しており、 旧ソースプログラムにおいて、前記1以上の第一命令パ
    ターン情報が何回出現するかを、解析手段を用いて解析
    する解析ステップと、 前記解析ステップにおける解析結果を、出力手段を用い
    て出力する解析結果出力ステップと、 前記解析ステップにおいて第一命令パターン情報の出現
    回数が、所定回数(所定回数は2以上である)以上であ
    ると解析された第一命令パターン情報に対応する旧ソー
    スプログラムの記述箇所を、当該第一命令パターン情報
    と対になる第二命令パターン情報に対応するように、変
    換手段を用いて変換する命令パターン変換ステップと、 前記命令パターン変換ステップにおいて前記旧ソースプ
    ログラムを変換した結果である新ソースプログラムを、
    出力手段を用いて出力する新プログラム出力ステップ
    と、 前記解析ステップにおいて第一命令パターン情報の出現
    回数が前記所定回数未満であると解析された第一命令パ
    ターン情報に対応する旧ソースプログラムの記述箇所に
    対して、ユーザの手作業による当該旧ソースプログラム
    の記述箇所を新ソースプログラムに変更する、入力手段
    を用いた入力を受け付けるステップを具備する、ある環
    境で動作していたプログラムを他の環境で動作させるた
    めのプログラム自動変換方法。
  2. 【請求項2】 前記新プログラム出力ステップは、新ソ
    ースプログラムの中で、前記命令パターン変換ステップ
    で変換した箇所と変換していない箇所を視覚的に区別し
    て出力する請求項1記載のプログラム自動変換方法。
  3. 【請求項3】 コンピュータに、 旧ソースプログラムの命令パターンを示す情報である第
    一命令パターン情報と新ソースプログラムの命令パター
    ンを示す情報である第二命令パターン情報の対を1以上
    格納しており、 旧ソースプログラムにおいて、前記1以上の第一命令パ
    ターン情報が何回出現するかを解析する解析ステップ
    と、 前記解析ステップにおける解析結果を出力する解析結果
    出力ステップと、 前記解析ステップにおいて第一命令パターン情報の出現
    回数が、所定回数(所定回数は2以上である)以上であ
    ると解析された第一命令パターン情報に対応する旧ソー
    スプログラムの記述箇所を、当該第一命令パターン情報
    と対になる第二命令パターン情報に対応するように変換
    する命令パターン変換ステップと、 前記命令パターン変換ステップで前記旧ソースプログラ
    ムを変換した結果である新プログラムを出力する新プロ
    グラム出力ステップと、 前記解析ステップにおいて第一命令パターン情報の出現
    回数が前記所定回数未満であると解析された第一命令パ
    ターン情報に対応する旧ソースプログラムの記述箇所に
    対して、ユーザの手作業による当該旧ソースプログラム
    の記述箇所を新ソースプログラムに変更する入力を受け
    付けるステップを実行させるためのプログラム。
  4. 【請求項4】 前記新プログラム出力ステップは、新ソ
    ースプログラムの中で、前記命令パターン変換ステップ
    で変換した箇所と変換していない箇所を視覚的に区別し
    て出力する請求項3記載のプログラム。
JP2002354264A 2002-12-05 2002-12-05 プログラム解析装置およびプログラム Expired - Fee Related JP3494376B1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2002354264A JP3494376B1 (ja) 2002-12-05 2002-12-05 プログラム解析装置およびプログラム
US10/518,090 US7831964B2 (en) 2002-12-05 2003-11-28 Program automatic converting method and program automatic converting device
CNB2003801004739A CN100345116C (zh) 2002-12-05 2003-11-28 程序自动变换方法及程序自动变换装置
AU2003284504A AU2003284504A1 (en) 2002-12-05 2003-11-28 Program automatic converting method and program automatic converting device
KR1020047018061A KR100688444B1 (ko) 2002-12-05 2003-11-28 프로그램 자동 변환 방법 및 프로그램 자동 변환 장치
PCT/JP2003/015305 WO2004051470A1 (ja) 2002-12-05 2003-11-28 プログラム自動変換方法およびプログラム自動変換装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002354264A JP3494376B1 (ja) 2002-12-05 2002-12-05 プログラム解析装置およびプログラム

Publications (2)

Publication Number Publication Date
JP3494376B1 true JP3494376B1 (ja) 2004-02-09
JP2004185508A JP2004185508A (ja) 2004-07-02

Family

ID=31712378

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002354264A Expired - Fee Related JP3494376B1 (ja) 2002-12-05 2002-12-05 プログラム解析装置およびプログラム

Country Status (6)

Country Link
US (1) US7831964B2 (ja)
JP (1) JP3494376B1 (ja)
KR (1) KR100688444B1 (ja)
CN (1) CN100345116C (ja)
AU (1) AU2003284504A1 (ja)
WO (1) WO2004051470A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011086319A (ja) * 2011-02-01 2011-04-28 Systems:Kk プログラムの生産方法および生産装置
JP2012053657A (ja) * 2010-09-01 2012-03-15 Systems:Kk 情報処理装置、情報処理方法、及びプログラム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100673499B1 (ko) * 2005-01-13 2007-01-24 한국과학기술연구원 디지털 합금 다원 화합물 반도체의 분산 브랙 반사경
JP4712512B2 (ja) * 2005-10-14 2011-06-29 富士通株式会社 プログラム変換プログラム、プログラム変換装置、プログラム変換方法
JP4115511B1 (ja) * 2007-05-08 2008-07-09 株式会社システムズ プログラムパターン分析装置、パターン出現状況情報生産方法、パターン情報生成装置、およびプログラム
US8490052B2 (en) * 2008-10-14 2013-07-16 Microsoft Corporation Declarative programming model for authoring and execution control and data flow for resource oriented system
US8533666B2 (en) * 2008-10-17 2013-09-10 Microsoft Corporation Interactive design environments to visually model, debug and execute resource oriented programs
US8635694B2 (en) * 2009-01-10 2014-01-21 Kaspersky Lab Zao Systems and methods for malware classification
US8621442B2 (en) * 2011-02-09 2013-12-31 Beek Fund B.V. L.L.C. Quicker translation of a computer program source code
KR20130097252A (ko) * 2012-02-23 2013-09-03 삼성전자주식회사 소스 코드 분석에 의한 응용 프로그램 분석을 위한 방법 및 장치
JP6019843B2 (ja) * 2012-07-11 2016-11-02 富士通株式会社 拡張言語仕様情報提供方法、拡張言語仕様情報提供プログラム、およびコンパイル装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0769830B2 (ja) * 1987-08-18 1995-07-31 日本電気株式会社 展開制御機能をもつプログラム翻訳装置
JPH0542513Y2 (ja) 1987-09-16 1993-10-26
JPH01290036A (ja) 1988-05-18 1989-11-21 Nec Corp ソースメンバの文字列圧縮方式
JP3237869B2 (ja) * 1991-06-26 2001-12-10 株式会社東芝 電力系統運用訓練シミュレータ
JPH0553822A (ja) 1991-08-27 1993-03-05 Matsushita Electric Ind Co Ltd 共通部分式文の削除方法及びその装置
JPH05324343A (ja) 1992-05-22 1993-12-07 Hitachi Software Eng Co Ltd プログラムコンバートシステム
JPH0778742B2 (ja) * 1992-08-12 1995-08-23 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピユータ・プログラム言語変換装置及びその方法
JPH086815A (ja) * 1994-06-21 1996-01-12 Mitsubishi Electric Corp デバッグ装置、コンパイラ及び統計解析装置
JP3907716B2 (ja) * 1995-06-29 2007-04-18 株式会社エース電研 遊技機
JPH1046837A (ja) * 1996-07-31 1998-02-17 Concrete Kooring Kk 工事用機械装置
JP3237693B2 (ja) 1996-08-19 2001-12-10 日本電気株式会社 言語処理装置および言語処理方法
US5950004A (en) * 1996-09-13 1999-09-07 The United States Of America As Represented By The Secretary Of The Navy Model-based process for translating test programs
US6044220A (en) * 1997-02-25 2000-03-28 Motorola, Inc. Method and apparatus for operating a data processor to execute software written using a foreign instruction set
JPH11224199A (ja) * 1998-02-06 1999-08-17 Matsushita Electric Ind Co Ltd 翻訳装置と情報処理装置および記録媒体
WO1999063456A1 (fr) * 1998-06-04 1999-12-09 Matsushita Electric Industrial Co., Ltd. Dispositif de preparation de regles de conversion du langage, dispositif de conversion du langage et support d'enregistrement de programme
US6901588B1 (en) * 2000-04-17 2005-05-31 Codemesh, Inc. Sharing components between programming languages by use of polymorphic proxy
JP2002001486A (ja) * 2000-06-20 2002-01-08 Asahi Tec Corp 地下構造物用蓋体の鋳型装置
JP2002014826A (ja) 2000-06-29 2002-01-18 Toshiba Corp インタプリタおよびそのプログラム実行方法
US7086046B2 (en) * 2001-07-30 2006-08-01 International Business Machines Corporation Method and apparatus for displaying compiler-optimizated code

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
「ACOSソフトウェア ACOS−6/NVX SEA/I CASEWORLD パターン・部品登録利用の手引き FPI76−1」,日本,日本電気株式会社,1993年 6月,初版,pp.8−14

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012053657A (ja) * 2010-09-01 2012-03-15 Systems:Kk 情報処理装置、情報処理方法、及びプログラム
JP2011086319A (ja) * 2011-02-01 2011-04-28 Systems:Kk プログラムの生産方法および生産装置

Also Published As

Publication number Publication date
AU2003284504A1 (en) 2004-06-23
US7831964B2 (en) 2010-11-09
CN100345116C (zh) 2007-10-24
WO2004051470A1 (ja) 2004-06-17
KR20050030896A (ko) 2005-03-31
JP2004185508A (ja) 2004-07-02
KR100688444B1 (ko) 2007-03-02
US20060156292A1 (en) 2006-07-13
CN1692334A (zh) 2005-11-02

Similar Documents

Publication Publication Date Title
US8533664B2 (en) Method and system to automatically generate GUI object addressing queries
US20040049768A1 (en) Method and program for compiling processing, and computer-readable medium recoding the program thereof
US20080046868A1 (en) Method and system for template-based code generation
US20080250231A1 (en) Program code conversion apparatus, program code conversion method and recording medium
JP3494376B1 (ja) プログラム解析装置およびプログラム
WO2009098739A1 (ja) プログラム最適化装置およびプログラム最適化方法
JP4001286B2 (ja) プログラム保守支援装置、プログラム保守支援方法、およびプログラム
JP2004341671A (ja) 情報処理システム、制御方法、制御プログラム、及び記録媒体
US7284235B2 (en) Creation of content versions using content layers
JP2008276735A (ja) プログラムコード変換装置及びプログラムコード変換方法
JP2879099B1 (ja) 抽象構文木処理方法、抽象構文木処理プログラムを記録したコンピュータ読み取り可能な記録媒体、抽象構文木データを記録したコンピュータ読み取り可能な記録媒体、及び、抽象構文木処理装置
JP4698943B2 (ja) プログラム生産方法、プログラム生産装置、プログラム自動変換方法、およびプログラム
JP4472768B2 (ja) プログラム解析装置、プログラム解析方法、およびプログラム
JP4354514B2 (ja) プログラム自動変換方法、プログラム自動変換装置、およびプログラム
JP5932707B2 (ja) 計算機、プログラム及びデータ生成方法
JP5124660B2 (ja) プログラムの生産方法および生産装置
JP2009080681A (ja) プログラム構造解析方法及び装置
JP2006031331A (ja) プログラム変換実行計算機、及び、プログラム変換実行方法、プログラム
JPH10289123A (ja) 最適化コードデバッグ方式
JP3323147B2 (ja) コンパイル装置、コンパイル方法およびコンパイラプログラムを記録した記録媒体
JPH05150998A (ja) コンパイラ
CN117827171A (zh) 一种通过jsonSchema文件生成项目源码的方法及装置
KR101524542B1 (ko) 이종 스마트폰 어플리케이션을 위한 mof 기반의 데이터 변환 방법 및 그 장치
JPH05181652A (ja) プログラムリバース装置
JP2003330731A (ja) プロジェクト管理ファイル生成装置

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
R150 Certificate of patent or registration of utility model

Ref document number: 3494376

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 9

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131121

Year of fee payment: 10

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

LAPS Cancellation because of no payment of annual fees