JP2005157827A - プログラムの生産方法および生産装置 - Google Patents

プログラムの生産方法および生産装置 Download PDF

Info

Publication number
JP2005157827A
JP2005157827A JP2003396663A JP2003396663A JP2005157827A JP 2005157827 A JP2005157827 A JP 2005157827A JP 2003396663 A JP2003396663 A JP 2003396663A JP 2003396663 A JP2003396663 A JP 2003396663A JP 2005157827 A JP2005157827 A JP 2005157827A
Authority
JP
Japan
Prior art keywords
program
pattern information
source program
instruction pattern
new
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.)
Granted
Application number
JP2003396663A
Other languages
English (en)
Other versions
JP4698943B2 (ja
Inventor
Hironaka Nagashima
廣仲 長島
Shigeru Asao
茂 浅尾
Masanobu Tsurumaki
正伸 鶴巻
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.)
SYSTEMS KK
Original Assignee
SYSTEMS KK
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 SYSTEMS KK filed Critical SYSTEMS KK
Priority to JP2003396663A priority Critical patent/JP4698943B2/ja
Publication of JP2005157827A publication Critical patent/JP2005157827A/ja
Application granted granted Critical
Publication of JP4698943B2 publication Critical patent/JP4698943B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Abstract

【課題】効率的に旧ソースプログラムから、高品質な新ソースプログラムを生産できなかった。
【解決手段】旧ソースプログラムにおいて、1以上の第一命令パターン情報の出現回数を解析、出力し、当該第一命令パターン情報の出現回数が、所定回数以上であると解析された第一命令パターン情報に対応する旧ソースプログラムの記述箇所を、第二命令パターン情報に対応するように変換し、新ソースプログラムを出力し、第一命令パターン情報の出現回数が所定回数未満であると解析された第一命令パターン情報に対応する旧ソースプログラムの記述箇所に対して、ユーザの手作業による当該旧ソースプログラムの記述箇所を新ソースプログラムに変更する入力を受け付けるプログラムの生産方法により、旧環境で動作していたソースプログラムから、新しい環境で動作させるための高品質な新プログラムを効率的に生産できる。
【選択図】図11

Description

本発明は、ある環境で動作していた旧ソースプログラムから他の環境で動作させるための新ソースプログラムを生産するプログラムの生産方法等に関する。
従来、ソースプログラムやスクリプトを自動変換する技術として、コンパイラ差分により発生する記述の違いを自動検出し、自動修正もしくはリストアップして開発作業を向上させる技術があった(特許文献1参照)。本技術は、C言語で記述された原始プログラムを構文解析し、1トークン毎のデータベースと中間ファイルを作成し、データベース上の対象になる文字列を削除・変更し、データベースや中間ファイルの情報をC言語ファイルに生成し、目的プログラムを生成するものである。
また、第二の従来技術として、特定のコンピュータ上に開発されたプログラム・オブジェクトをもとに、他のコンピュータで実行可能なソフトウェアを自動生成する技術があった(特許文献2参照)。本技術は、与えられたコンピュータ資源のもとで実行可能なオブジェクトコードは、セグメント分割器により、命令コード領域D2とデータコード領域D3に分割される。続いて、命令コード領域D2は、命令コード変換器により、命令セットやOSプリミティブを解析し、高級プログラム言語による命令文に変換される。また、データコード領域D3は、参照している命令コードの種別に応じたデータ型を判別し、データ構文変換器により、高級プログラム言語によるデータ定義文に変換される。さらに、参照領域変換器が、データ定義文に対して、命令文が利用するための参照名を付加し、命令文が参照名を利用する形式に変換して高級言語プログラムを生成するものである。
特開2002−41286(第1頁、図1等) 特開平6−83630(第1頁、図1等)
しかしながら、上記の特許文献1の技術は、変換対象のソースプログラムが記載されたプログラム言語の仕様が有するすべての命令を自動変換することを前提としている、と考えられる。また、上記の特許文献2の技術は、特定のコンピュータ上におけるすべてのプログラム・オブジェクトを自動変換することを前提としている、と考えられる。つまり、従来技術において、一のプログラムの動作環境を移行するために、一のプログラムを移行後の環境においても効率良く動作させることを考慮していない。従って、従来技術では、変換対象とするソースプログラムのどの命令パターンを自動変換し、どの命令パターンを手作業で行うかが判断できない。従来技術において、一のプログラムを自動変換または半自動変換する自動変換プログラムを開発する場合に、どの命令パターンに対応する自動変換プログラムを開発すべきかが判断できず、効率的に旧ソースプログラムから、高品質な新ソースプログラムを生産できなかった。具体的には、従来技術では、変換対象のプログラムにおいて1度しか出現しない命令パターンも自動変換するプログラムを開発することが前提となっている。
上記の課題を解決するために、旧ソースプログラムの命令パターンを示す情報である第一命令パターン情報と新ソースプログラムの命令パターンを示す情報である第二命令パターン情報の対を1以上、記憶部に格納しており、旧ソースプログラムにおいて、前記1以上の第一命令パターン情報が何回出現するかを、解析手段を用いて解析する解析ステップと、前記解析ステップにおける解析結果を、出力手段を用いて出力する解析結果出力ステップと、前記解析ステップにおいて第一命令パターン情報の出現回数が、所定回数(所定回数は2以上である)以上であると解析された第一命令パターン情報に対応する旧ソースプログラムの記述箇所を、当該第一命令パターン情報と対になる第二命令パターン情報に対応するように、変換手段を用いて変換する命令パターン変換ステップと、前記命令パターン変換ステップにおいて前記旧ソースプログラムを変換した結果である新ソースプログラムを、出力手段を用いて出力する新プログラム出力ステップと、前記解析ステップにおいて第一命令パターン情報の出現回数が前記所定回数未満であると解析された第一命令パターン情報に対応する旧ソースプログラムの記述箇所に対して、ユーザの手作業による当該旧ソースプログラムの記述箇所を新ソースプログラムに変更する、入力手段を用いた入力を受け付けるステップを具備する、ある環境で動作していた旧ソースプログラムから、他の環境で動作させるための新ソースプログラムを生産するプログラムの生産方法により、効率的に不具合が少ないソースプログラムを生産できる。かかるソースプログラムの生産方法は、旧環境で動作していた旧ソースプログラムから、新しい環境で動作させるための高品質な新ソースプログラムを効率的に生産するプログラムの生産方法である。
また、旧ソースプログラムの命令パターンを示す情報である第一命令パターン情報と新ソースプログラムの命令パターンを示す情報である第二命令パターン情報の対を1以上、格納している命令パターン対応情報格納部と、旧ソースプログラムにおいて、前記1以上の第一命令パターン情報が何回出現するかを解析する解析部と、前記解析部における解析結果を出力する解析結果出力部と、前記解析部において第一命令パターン情報の出現回数が、所定回数(所定回数は2以上である)以上であると解析された第一命令パターン情報に対応する旧ソースプログラムの記述箇所を、当該第一命令パターン情報と対になる第二命令パターン情報に対応するように変換する命令パターン変換部と、前記命令パターン変換部において前記旧ソースプログラムを変換した結果である新ソースプログラムを出力する新プログラム出力部と、前記解析部において第一命令パターン情報の出現回数が前記所定回数未満であると解析された第一命令パターン情報に対応する旧ソースプログラムの記述箇所に対して、ユーザの手作業による、当該旧ソースプログラムの記述箇所を新ソースプログラムに変更する入力を受け付ける入力受付部を具備する、ある環境で動作していた旧ソースプログラムから他の環境で動作させるための新ソースプログラムを生産するプログラムの生産装置であり、かかる生産装置により、旧環境で動作していた旧ソースプログラムから、新しい環境で動作させるための高品質な新ソースプログラムを効率的に生産できる。
さらに、上記新プログラム出力部は、新ソースプログラムの中で、命令パターン変換部が変換した箇所と変換していない箇所を視覚的に区別して出力することが好ましい。
本発明によれば、旧環境で動作していた旧ソースプログラムから、新しい環境で動作させるための高品質な新ソースプログラムを効率的に生産できる。
以下、本発明のプログラム解析装置およびプログラム自動変換装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
図1は、プログラム解析装置のブロック図を示す。プログラム解析装置は、命令パターン情報格納部101、プログラム格納部102、解析部103、解析結果出力部104を有する。プログラム解析装置は、例えば、MPUやメモリやハードディスクなどを備えたパーソナルコンピュータである。
命令パターン情報格納部101は、プログラムの命令パターンを示す情報である命令パターン情報を1以上格納している。命令パターン情報格納部101は、不揮発性の記録媒体、または揮発性の記録媒体でも実現可能である。
プログラム格納部102は、プログラムを格納している。プログラム格納部102は、不揮発性の記録媒体、または揮発性の記録媒体でも実現可能である。プログラムとは、ソースプログラムであり、その言語は問わない。プログラムは、いわゆるスクリプトと言われるHTML、XMLなども含む。また、プログラムは、手続き型のプログラム、宣言型のプログラム等問わない、また、プログラムは、プログラムが動作するためのデータ群(ヘッダーファイルなど)も含む。
解析部103は、プログラム格納部102に格納されているプログラムにおいて、1以上の命令パターン情報が何回出現するかを解析する。解析部103は、通常、MPUやメモリ等から実現され得る。解析部103が解析するための処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
解析結果出力部104は、解析部103における解析結果を出力する。出力とは、通常、ディスプレイへの表示をいうが、プリンタへの印字、他の装置への送信なども含む。また、出力とは、ハードディスクなどの記録媒体への蓄積も含む概念である。また、解析結果出力部104は、出力ディスプレイや記録媒体等を含むと考えても含まないと考えても良い。解析結果出力部104は、例えば、出力デバイスのドライバーソフト等で実現され得る。
以下、本プログラム解析装置の動作について図2のフローチャートを用いて説明する。
(ステップS201)解析部103は、プログラム格納部102のプログラムを読み込む。このプログラムは、解析対象のプログラムである。プログラム格納部102に複数のプログラムが格納されている場合、例えば、解析部103は、ユーザが指示したプログラムを読み込む。
(ステップS202)解析部103は、命令パターン情報格納部101に格納されている1以上の命令パターン情報を読み込む。
(ステップS203)解析部103は、命令パターン情報の出現回数である命令パターン出現回数をすべて0にする。なお、すべての命令パターン情報に対応する命令パターン出現回数は、例えば、解析部103が保持しているメモリに記憶されている。
(ステップS204)解析部103は、カウンタiに1を代入する。このカウンタは、ステップS201で読み込んだプログラムのプログラムカウンタである。つまり、解析部103は、ステップS201で読み込んだプログラムのi番目の行を以下の処理により解析する。なお、ここでは、プログラムは、1行1命令パターンのプログラムである、とする。
(ステップS205)解析部103は、ステップS201で読み込んだプログラムにおいて、i番目のプログラムソース行が存在するか否かを判断する。i番目のプログラムソース行が存在すればステップS206に行き、i番目のプログラムソース行が存在しなければステップS213に飛ぶ。
(ステップS206)解析部103は、カウンタjに1を代入する。カウンタjは、ステップS202で読み込んだ1以上の命令パターン情報のうち、解析に利用する命令パターン情報を取得するためのカウンタである。
(ステップS207)解析部103は、i番目のプログラムソース行は、j番目の命令パターン情報に対応する命令パターンの行であるか否かを判断する。i番目のプログラムソース行がj番目の命令パターンであればステップS208に行き、j番目の命令パターンでなければステップS210に飛ぶ。i番目のプログラムソース行がj番目の命令パターン情報に対応するか否かの判断は、構文解析、字句解析等で可能であり、既存技術であるので、ここでの詳細な説明は省略する。
(ステップS208)解析部103は、j番目の命令パターン情報に対応する命令パターン出現回数を1インクリメントする。
(ステップS209)解析部103は、iをインクリメントする。ステップS205に戻る。
(ステップS210)解析部103は、jをインクリメントする。
(ステップS211)解析部103は、j番目の命令パターンが、命令パターン情報格納部101に存在するか否かを判断する。j番目の命令パターンが存在すればステップS207に戻り、j番目の命令パターンが存在しなければステップS212に行く。
(ステップS212)解析部103は、「どの命令パターンにも該当しない旨」のエラー出力をする。但し、このエラー出力処理はなくても良い。
(ステップS213)解析結果出力部104は、解析結果を出力する。解析結果とは、各命令パターン情報の命令パターン出現回数である。
以下、本実施の形態におけるプログラム解析装置等の具体的な動作について説明する。図3は、命令パターン情報格納部101が保持している命令パターン情報管理表である。命令パターン情報管理表は、「ID」「命令パターン情報」を有するレコードを複数格納している。「ID」はレコードを識別する情報であり、表管理上利用される情報である。「命令パターン情報」は、命令パターン情報を格納する属性である。
また、図4は、解析部103が保持している命令パターン出現回数管理表である。命令パターン出現回数管理表は、「ID」「出現回数」を有するレコードを1以上有する。「ID」は、図3の命令パターン情報管理表の「ID」に対応している。「出現回数」は、命令パターンの出現回数を示す。「出現回数」の初期値は、すべて「0」である。
図5は、プログラム格納部102に格納されているプログラムの例である。プログラム解析装置は、ユーザの指示により、図5のプログラムの解析を開始する。図5のプログラムにおいて「*」で始まる行はコメント行である。なお、プログラム解析装置は、コメント行であることを判断した後の解析は行わない。
解析部103は、まず、図5のプログラムの1行目を読み込む。1行目はコメント行であるので、次の行に移る(プログラムカウンタを進める)。解析部103は、2行目から8行目までもコメント行であるので、解析は行わない。
次に、解析部103は、プログラムの9行目「IDENTIFICATION DIVISION.」を読み込む。解析部103は、プログラムの9行目は、図3の命令パターン情報管理表の「ID=1」の命令パターン情報に対応する、と判断する。そして、解析部103は、図4の命令パターン出現回数管理表の「ID」=「1」のレコードの「出現回数」の値を1インクリメントする。その結果が、図6の命令パターン出現回数管理表である。
次に、解析部103は、プログラムの10行目「PROGRAM−ID. PSD712.」を読み込む。解析部103は、プログラムの10行目は、図3の命令パターン情報管理表の「ID=2」の命令パターン情報に対応する、と判断する。なお、図3の命令パターン情報管理表の「変数01」「変数02」などは、変数を意味する。プログラムにおいて、変数は、英数字の文字列で構成される。ここでは、「PSD712」は変数である。そして、解析部103は、図6の命令パターン出現回数管理表の「ID」=「2」の「出現回数」の値を1インクリメントする。
以上のような処理を、図5のプログラムのすべての行に対して行う。そして、図7に示す命令パターン出現回数管理表を得る。
次に、解析結果出力部104は、図8に示すような解析結果を出力する。解析結果は、「ID」「回数」「命令パターン」を有する。「回数」は出現回数である。また、図8の解析結果は、図3の命令パターン情報管理表と、図7の命令パターン出現回数管理表から構成される。具体的には、図8の解析結果は、図3の命令パターン情報管理表の「ID」と、図7の命令パターン出現回数管理表「ID」をキーとして、結合演算され、出力された結果である。
以上、本実施の形態によれば、変換対象とするソースプログラムが含む命令パターンの解析が可能となり、その結果、効率的にソースプログラムを変換する自動変換プログラムを開発できる。なお、本実施の形態における解析結果を受けて、プログラムを自動変換する処理については、実施の形態2以降で述べる。
なお、本実施の形態において、ある一定以上の回数が出現する命令パターンを他の命令パターンと視覚的に区別して表示しても良い。かかる場合、例えば、図9に示すような解析結果が表示される。図9によれば、3回以上出現する命令パターンを他の命令パターンと視覚的に区別して表示している。なお、一定以上の回数が出現する命令パターンを他の命令パターンと視覚的に区別して表示する態様は、図9における態様に限らず、何でも良い。
また、本実施の形態において説明した動作は、コンピュータ読み取り可能なプログラムで実現しても良い。当該プログラムは、CD−ROMなどの記録媒体に記録されて流布しても良いし、ネットワーク配信により流布しても良いし、放送で流布しても良い。かかることも、他の実施の形態においても同様である。なお、本実施の形態において説明した動作を実現するプログラムは、コンピュータに、プログラムの命令パターンを示す情報である命令パターン情報を1以上格納しており、プログラムにおいて、1以上の命令パターン情報が何回出現するかを解析する解析ステップと、解析ステップにおける解析結果を出力する解析結果出力ステップを実行させるためのプログラム、である。
さらに、本実施の形態において、一のプログラム解析装置でプログラムの解析を行ったが、複数の装置で処理を分担しても良い。つまり、プログラムの命令パターンを示す情報である命令パターン情報を1以上格納しており、プログラムにおいて、1以上の命令パターン情報が何回出現するかを解析する解析ステップと、解析ステップにおける解析結果を出力する解析結果出力ステップを具備するプログラム解析方法により、1以上の装置を用いてプログラムが解析できれば、上述した効果を奏することとなる。
(実施の形態2)
図10は、プログラム自動変換装置のブロック図を示す。プログラム自動変換装置は、命令パターン対応情報格納部1001、プログラム格納部102、解析部103、条件格納部1002、命令パターン変換部1003、新プログラム出力部1004を具備する。プログラム自動変換装置は、例えば、MPUやメモリやハードディスクなどを備えたパーソナルコンピュータである。
命令パターン対応情報格納部1001は、旧プログラム(変換対象のプログラム)の命令パターンを示す情報である第一命令パターン情報と新プログラム(変換後のプログラム)の命令パターンを示す情報である第二命令パターン情報の対を1以上格納している。命令パターン対応情報格納部1001は、不揮発性の記録媒体、または揮発性の記録媒体でも実現可能である。
条件格納部1002は、第一命令パターン情報に対応する旧プログラムの一部を第二命令パターン情報に対応するように自動変換する条件を格納している。条件格納部1002は、不揮発性の記録媒体、または揮発性の記録媒体でも実現可能である。条件は、命令パターン変換部1003が行う処理を実現するプログラム中に埋め込まれている(ヘッダーファイルなどに定義されている場合も含む)場合が多い。なお、条件は、解析部103の解析結果に基づく条件である。
命令パターン変換部1003は、プログラム格納部102に格納されているプログラム(旧プログラム)に対して、条件格納部1002に格納されている条件に合致する第一命令パターン情報に対応する旧プログラムの一部を、当該第一命令パターン情報と対になる第二命令パターン情報に対応するように変換する処理を行う。命令パターン変換部1003は、通常、MPUやメモリ等から実現され得る。命令パターン変換部1003が情報を変換するための処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
新プログラム出力部1004は、命令パターン変換部1003がプログラムを変換した結果である新プログラムを出力する。出力とは、通常、ディスプレイへの表示をいうが、プリンタへの印字、他の装置への送信、記録媒体(ハードディスク、デジタル多目的ディスクなど)への蓄積なども含む。また、新プログラム出力部1004は、出力ディスプレイや記録媒体を含むと考えても含まないと考えても良い。新プログラム出力部1004は、例えば、出力デバイスのドライバーソフト等で実現され得る。
以下、本プログラム自動変換装置の動作について図11のフローチャートを用いて説明する。
(ステップS1101)プログラム解析ルーチンを実行する。本プログラム解析ルーチンは、図2のフローチャートを用いて説明したプログラムの解析処理であり、変換対象のプログラムである旧プログラム中における、命令パターンごとの出現回数を出力する。
(ステップS1102)命令パターン変換部1003は、プログラム格納部102のプログラムを読み込む。プログラム格納部102に2以上のプログラムが存在する場合は、例えば、命令パターン変換部1003は、ユーザが指示したプログラムを読み込む。
(ステップS1103)命令パターン変換部1003は、命令パターン対応情報格納部1001が保持している1以上の第一命令パターン情報を読み込む。
(ステップS1104)命令パターン変換部1003は、カウンタiに1を代入する。このカウンタは、ステップS1102で読み込んだプログラムのプログラムカウンタである。つまり、命令パターン変換部1003は、ステップS1102で読み込んだプログラムのi番目の行を以下の処理により変換する。なお、ここでは、プログラムは、1行1命令パターンのプログラムである、とする。
(ステップS1105)命令パターン変換部1003は、ステップS1102で読み込んだプログラムにおいて、i行目のプログラムソースが存在するか否かを判断する。i行目のプログラムソースが存在すればステップS1106に行き、i行目のプログラムソースが存在しなければステップS1116に飛ぶ。
(ステップS1106)命令パターン変換部1003は、カウンタjに1を代入する。カウンタjは、ステップS1103で読み込んだ1以上の第一命令パターン情報のうち、変換に利用する第一命令パターン情報を取得するためのカウンタである。
(ステップS1107)命令パターン変換部1003は、i行目のプログラムソースは、j番目の第一命令パターン情報に対応するか否かを判断する。j番目の第一命令パターン情報に対応すればステップS1108に行き、j番目の第一命令パターン情報に対応しなければステップS1113に飛ぶ。なお、i行目のプログラムソースがj番目の第一命令パターン情報に対応するか否かは、i行目のプログラムソースの構文解析、字句解析により可能である。
(ステップS1108)命令パターン変換部1003は、j番目の第一命令パターン情報が条件格納部1002の条件に合致するか否かを、ステップS1101のプログラム解析ルーチンの解析結果に基づいて決定する。j番目の第一命令パターン情報が条件に合致すればステップS1109に行き、j番目の第一命令パターン情報が条件に合致しなければステップS1115に飛ぶ。
(ステップS1109)命令パターン変換部1003は、j番目の第一命令パターン情報と対になる第二命令パターン情報を、命令パターン対応情報格納部1001から取得する。
(ステップS1110)命令パターン変換部1003は、i行目のプログラムソースを、ステップS1109で取得した第二命令パターン情報が示す命令パターンに変換する。
(ステップS1111)命令パターン変換部1003は、ステップS1110で変換したi行目のソースを新プログラムに追加する。なお、新プログラムは、例えば、あるファイルに格納され、初期化段階(図示しない)でファイル生成とファイルオープンがされている、とする。
(ステップS1112)カウンタiをインクリメントする。ステップS1105に戻る。
(ステップS1113)カウンタjをインクリメントする。
(ステップS1114)命令パターン変換部1003は、j番目の第一命令パターン情報が存在するか否かを判断する。j番目の第一命令パターン情報が存在すればステップS1107に戻り、j番目の第一命令パターン情報が存在しなければステップS1115に行く。
(ステップS1115)命令パターン変換部1003は、i行目のソースを新プログラムに追加する。ここでのi行目のソースは、例えば、コメント行である。
(ステップS1116)新プログラム出力部1004は、変換された後のプログラム(新プログラム)を出力する。ここでの出力は、記録媒体(ハードディスク等)に蓄積されるだけの処理も含む。
なお、第一命令パターン情報が条件格納部1002の条件に合致せず、第一命令パターンを第二命令パターンに自動変換しなかった第一命令パターンに関して、プログラマーが、キーボードなどの入力手段を用いて、手作業で第二命令パターンに書き換える。つまり、プログラム自動変換装置は、図示しないが、キーボードやマウスなどの入力手段を具備する。
以下、本実施の形態におけるプログラム変換装置の具体的な動作について説明する。図12は、命令パターン対応情報格納部1001が保持している命令パターン情報管理表である。命令パターン情報管理表は、「ID」「第一命令パターン情報」「第二命令パターン情報」を有するレコードを複数格納している。「ID」はレコードを識別する情報である。命令パターン情報管理表は、変換対象のプログラム中に出現する第一命令パターン情報のソース行を対になる第二命令パターン情報に対応するように変換する場合に利用する対応表である。具体的には、「第一命令パターン情報」が「SOURCE-COMPUTER. XXXXXX.」である場合には、「第二命令パターン情報」「#DEL# * SOURCE-COMPUTER. XXXXXX. #CHG# SOURCE-COMPUTER. IBM-AS400.」に変換することを示す。なお「XXXXXX」は、任意の変数名を示す。また、「#DEL#」は削除したことを示す。「#CHG#」は変換した結果であることを示す。また、本ソースにおいて「*」はコメント行であり、「#」から「#」はコメントであることを示す。
また、図5は、プログラム格納部102に格納されている旧プログラムの例である。図8は、解析部103が解析した結果を示す命令パターン出現回数管理表である。さらに、条件格納部1002は、出現回数が2回以上の第一命令パターン情報のプログラム行を第二命令パターン情報に変換する、という条件を保持している、とする。
そして、命令パターン変換部1003が、図5の旧プログラムを変換して生成し、新プログラム出力部1004が出力した新プログラムの例を図13に示す。図13において、新プログラムにおいて新たに生成された行が下線で示されている。つまり、新プログラムにおいて、変換された行と変換されてない行が視覚的に区別して表れている。
図13の新プログラムにおいて、(1)は、命令パターン情報管理表の「ID=1」の行により変換された箇所である。(2)は、命令パターン情報管理表の「ID=2」の行により変換された箇所である。
なお、図12の命令パターン情報管理表において、説明の便宜上、旧プログラム1行に対して、新プログラムn行(nは自然数)が対応する場合のみを記載したが、旧プログラムm行(mは2以上の自然数)に対して、新プログラムn行(nは自然数)が対応しても良い。
以上、本実施の形態によれば、変換対象とするソースプログラムが含む命令パターンの解析が可能となり、その結果、効率的にソースプログラムを自動変換または半自動変換できる。具体的には、ソースプログラムを変換するためのプログラムを開発するまでもない一定未満の出現回数の命令パターンは、手作業で修正し、一定以上の出現回数(たとえば、2回以上の出現回数)の命令パターンのみ、ソースプログラムを変換するためのプログラムを開発しておき、当該変換プログラムを用いて自動変換することにより、効率的にプログラムを変換できる。かかるプログラム自動変換装置により、例えば、ある環境で動作していたプログラムを新しい環境で動作させる作業が非常に効率的に、かつ安全に行える。
なお、本実施の形態において、変換プログラムを開発するまでもない一定未満の出現回数の命令パターンは、手作業で旧ソースプログラムを修正するので、プログラム自動変換装置は、手作業で修正するための入力手段を具備する。入力手段とは、例えば、キーボードやマウス等である。
なお、本実施の形態において、図14に示すように、変換後の新プログラムにおいて、手作業によって変換した箇所と、自動変換した箇所と、変換していない箇所を視覚的に区別する態様で、新プログラムを蓄積や表示等しても良い。図14の新プログラムにおいて、「@」から「@」が手作業による作業を示すコメントである。「@DEL@」は手作業で削除した行であることを示し、「@ADD@」は手作業で追加した行であることを示す。
また、本実施の形態において、自動変換するか手作業で変換するかを判断するための条件は、プログラムにおける第一命令パターン情報の出現回数をパラメータとする条件(上記例では、2回以上の出現回数の場合に自動変換するという条件)であったが、他の条件により決定しても良い。また、ユーザの入力により自動変換する第一命令パターンを指示する構成でも良い。
また、本実施の形態において説明した動作は、コンピュータ読み取り可能なプログラムで実現しても良い。当該プログラムは、CD−ROMなどの記録媒体に記録されて流布しても良いし、ネットワーク配信により流布しても良いし、放送で流布しても良い。かかることも、他の実施の形態においても同様である。なお、本実施の形態において説明した動作を実現するプログラムは、コンピュータに、旧ソースプログラムの命令パターンを示す情報である第一命令パターン情報と新ソースプログラムの命令パターンを示す情報である第二命令パターン情報の対を1以上格納しており、旧ソースプログラムにおいて、前記1以上の第一命令パターン情報が何回出現するかを解析する解析ステップと、前記解析ステップにおける解析結果を出力する解析結果出力ステップと、前記解析ステップにおいて第一命令パターン情報の出現回数が、所定回数(所定回数は2以上である)以上であると解析された第一命令パターン情報に対応する旧ソースプログラムの記述箇所を、当該第一命令パターン情報と対になる第二命令パターン情報に対応するように変換する命令パターン変換ステップと、前記命令パターン変換ステップで前記旧ソースプログラムを変換した結果である新プログラムを出力する新プログラム出力ステップと、前記解析ステップにおいて第一命令パターン情報の出現回数が前記所定回数未満であると解析された第一命令パターン情報に対応する旧ソースプログラムの記述箇所に対して、ユーザの手作業による当該旧ソースプログラムの記述箇所を新ソースプログラムに変更する入力を受け付けるステップを実行させるためのプログラム、である。
また、本実施の形態において、一のプログラム自動変換装置でプログラムの変換を行ったが、複数の装置で処理を分担しても良い。つまり、以下のプログラム自動変換方法を複数の装置で実現しても良い。旧ソースプログラムの命令パターンを示す情報である第一命令パターン情報と新ソースプログラムの命令パターンを示す情報である第二命令パターン情報の対を1以上、記憶部に格納しており、旧ソースプログラムにおいて、前記1以上の第一命令パターン情報が何回出現するかを、解析手段を用いて解析する解析ステップと、前記解析ステップにおける解析結果を、出力手段を用いて出力する解析結果出力ステップと、前記解析ステップにおいて第一命令パターン情報の出現回数が、所定回数(所定回数は2以上である)以上であると解析された第一命令パターン情報に対応する旧ソースプログラムの記述箇所を、当該第一命令パターン情報と対になる第二命令パターン情報に対応するように、変換手段を用いて変換する命令パターン変換ステップと、前記命令パターン変換ステップにおいて前記旧ソースプログラムを変換した結果である新ソースプログラムを、出力手段を用いて出力する新プログラム出力ステップと、前記解析ステップにおいて第一命令パターン情報の出現回数が前記所定回数未満であると解析された第一命令パターン情報に対応する旧ソースプログラムの記述箇所に対して、ユーザの手作業による当該旧ソースプログラムの記述箇所を新ソースプログラムに変更する、入力手段を用いた入力を受け付けるステップを具備する、ある環境で動作していたプログラムを他の環境で動作させるためのプログラム自動変換方法により、効率的に、かつ、不具合が少なくプログラムが移植できる。
また、本実施の形態において、上述したプログラム自動変換装置は、新しい環境(つまり、移植先の環境)で動作するプログラムを生産する方法を実施する装置である、といえる。つまり、プログラム自動変換装置は、以下のプログラム生産方法を実現する。それは、旧ソースプログラムの命令パターンを示す情報である第一命令パターン情報と新ソースプログラムの命令パターンを示す情報である第二命令パターン情報の対を1以上、記憶部に格納しており、旧ソースプログラムにおいて、前記1以上の第一命令パターン情報が何回出現するかを解析する解析ステップと、前記解析ステップにおける解析結果を出力する解析結果出力ステップと、前記解析ステップにおいて第一命令パターン情報の出現回数が、所定回数(所定回数は2以上である)以上であると解析された第一命令パターン情報に対応する旧ソースプログラムの記述箇所を、当該第一命令パターン情報と対になる第二命令パターン情報に対応するように変換する命令パターン変換ステップと、前記命令パターン変換ステップにおいて前記旧ソースプログラムを変換した結果である新ソースプログラムを出力する新プログラム出力ステップと、前記解析ステップにおいて第一命令パターン情報の出現回数が前記所定回数未満であると解析された第一命令パターン情報に対応する旧ソースプログラムの記述箇所に対して、ユーザの手作業による当該旧ソースプログラムの記述箇所を新ソースプログラムに変更する入力を受け付けるステップを具備する、ある環境で動作していた旧ソースプログラムから他の環境で動作させるための新ソースプログラムを生産するプログラムの生産方法、である。また、上記のプログラムの生産方法における新プログラム出力ステップは、新ソースプログラムの中で、前記命令パターン変換ステップで変換した箇所と変換していない箇所を視覚的に区別して出力するプログラムの生産方法、でも良い。
さらに、本実施の形態において、上述したプログラム自動変換装置は、新しい環境(つまり、移植先の環境)で動作するプログラムを生産する装置である、といえる。かかるプログラムの生産装置は、旧ソースプログラムの命令パターンを示す情報である第一命令パターン情報と新ソースプログラムの命令パターンを示す情報である第二命令パターン情報の対を1以上、格納している命令パターン対応情報格納部と、旧ソースプログラムにおいて、前記1以上の第一命令パターン情報が何回出現するかを解析する解析部と、前記解析部における解析結果を出力する解析結果出力部と、前記解析部において第一命令パターン情報の出現回数が、所定回数(所定回数は2以上である)以上であると解析された第一命令パターン情報に対応する旧ソースプログラムの記述箇所を、当該第一命令パターン情報と対になる第二命令パターン情報に対応するように変換する命令パターン変換部と、前記命令パターン変換部において前記旧ソースプログラムを変換した結果である新ソースプログラムを出力する新プログラム出力部と、前記解析部において第一命令パターン情報の出現回数が前記所定回数未満であると解析された第一命令パターン情報に対応する旧ソースプログラムの記述箇所に対して、ユーザの手作業による、当該旧ソースプログラムの記述箇所を新ソースプログラムに変更する入力を受け付ける入力受付部を具備する、ある環境で動作していた旧ソースプログラムから他の環境で動作させるための新ソースプログラムを生産するプログラムの生産装置、である。
以上のように、本発明にかかるプログラムの生産方法および生産装置は、ある環境で動作していた旧ソースプログラムから他の環境で動作させるための新ソースプログラムを生産するプログラムの生産方法、生産装置等として利用できる。
実施の形態1におけるプログラム解析装置のブロック図 実施の形態1におけるプログラム解析装置の動作について説明するフローチャート 実施の形態1における命令パターン情報管理表 実施の形態1における命令パターン出現回数管理表 実施の形態1におけるプログラムの例を示す図 実施の形態1における命令パターン出現回数管理表を示す図 実施の形態1における命令パターン出現回数管理表を示す図 実施の形態1における解析結果の例を示す図 実施の形態1における解析結果の表示例を示す図 実施の形態2におけるプログラム自動変換装置のブロック図 実施の形態2におけるプログラム自動変換装置の動作について説明するフローチャート 実施の形態2における命令パターン情報管理表を示す図 実施の形態2における変換後の新プログラムの例を示す図 実施の形態2における新プログラムの例を示す図
符号の説明
101 命令パターン情報格納部
102 プログラム格納部
103 解析部
104 解析結果出力部
1001 命令パターン対応情報格納部
1002 条件格納部
1003 命令パターン変換部
1004 新プログラム出力部



Claims (4)

  1. 旧ソースプログラムにおいて、1以上の第一命令パターン情報が何回出現するかを解析する解析ステップと、
    前記解析ステップにおける解析結果を出力する解析結果出力ステップと、
    前記解析ステップにおいて第一命令パターン情報の出現回数が、所定回数(所定回数は2以上である)以上であると解析された第一命令パターン情報に対応する旧ソースプログラムの記述箇所を、当該第一命令パターン情報と対になる第二命令パターン情報に対応するように変換する命令パターン変換ステップと、
    前記命令パターン変換ステップにおいて前記旧ソースプログラムを変換した結果である新ソースプログラムを出力する新プログラム出力ステップと、
    前記解析ステップにおいて第一命令パターン情報の出現回数が前記所定回数未満であると解析された第一命令パターン情報に対応する旧ソースプログラムの記述箇所に対して、ユーザの手作業による当該旧ソースプログラムの記述箇所を新ソースプログラムに変更する入力を受け付けるステップを具備する、
    ある環境で動作していた旧ソースプログラムから、他の環境で動作させるための新ソースプログラムを生産するプログラムの生産方法。
  2. 前記新プログラム出力ステップは、新ソースプログラムの中で、前記命令パターン変換ステップで変換した箇所と変換していない箇所を視覚的に区別して出力する請求項1記載のプログラムの生産方法。
  3. 旧ソースプログラムの命令パターンを示す情報である第一命令パターン情報と新ソースプログラムの命令パターンを示す情報である第二命令パターン情報の対を1以上、格納している命令パターン対応情報格納部と、
    旧ソースプログラムにおいて、前記1以上の第一命令パターン情報が何回出現するかを解析する解析部と、
    前記解析部における解析結果を出力する解析結果出力部と、
    前記解析部において第一命令パターン情報の出現回数が、所定回数(所定回数は2以上である)以上であると解析された第一命令パターン情報に対応する旧ソースプログラムの記述箇所を、当該第一命令パターン情報と対になる第二命令パターン情報に対応するように変換する命令パターン変換部と、
    前記命令パターン変換部において前記旧ソースプログラムを変換した結果である新ソースプログラムを出力する新プログラム出力部と、
    前記解析部において第一命令パターン情報の出現回数が前記所定回数未満であると解析された第一命令パターン情報に対応する旧ソースプログラムの記述箇所に対して、ユーザの手作業による、当該旧ソースプログラムの記述箇所を新ソースプログラムに変更する入力を受け付ける入力受付部を具備する、ある環境で動作していた旧ソースプログラムから他の環境で動作させるための新ソースプログラムを生産するプログラムの生産装置。
  4. 前記新プログラム出力部は、新ソースプログラムの中で、前記命令パターン変換部が変換した箇所と変換していない箇所を視覚的に区別して出力する請求項3記載のプログラムの生産装置。
JP2003396663A 2003-11-27 2003-11-27 プログラム生産方法、プログラム生産装置、プログラム自動変換方法、およびプログラム Expired - Lifetime JP4698943B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003396663A JP4698943B2 (ja) 2003-11-27 2003-11-27 プログラム生産方法、プログラム生産装置、プログラム自動変換方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003396663A JP4698943B2 (ja) 2003-11-27 2003-11-27 プログラム生産方法、プログラム生産装置、プログラム自動変換方法、およびプログラム

Related Child Applications (3)

Application Number Title Priority Date Filing Date
JP2008241969A Division JP4472768B2 (ja) 2008-09-22 2008-09-22 プログラム解析装置、プログラム解析方法、およびプログラム
JP2008241970A Division JP4354514B2 (ja) 2008-09-22 2008-09-22 プログラム自動変換方法、プログラム自動変換装置、およびプログラム
JP2011019720A Division JP5124660B2 (ja) 2011-02-01 2011-02-01 プログラムの生産方法および生産装置

Publications (2)

Publication Number Publication Date
JP2005157827A true JP2005157827A (ja) 2005-06-16
JP4698943B2 JP4698943B2 (ja) 2011-06-08

Family

ID=34722032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003396663A Expired - Lifetime JP4698943B2 (ja) 2003-11-27 2003-11-27 プログラム生産方法、プログラム生産装置、プログラム自動変換方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP4698943B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010129040A (ja) * 2008-12-01 2010-06-10 Systems:Kk プログラム変換装置、プログラム分析装置、プログラム変換方法、プログラム分析方法、およびプログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011170474A (ja) * 2010-02-17 2011-09-01 Systems:Kk プログラム検出装置、プログラム検出方法、およびプログラム
JP5124660B2 (ja) * 2011-02-01 2013-01-23 株式会社システムズ プログラムの生産方法および生産装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010129040A (ja) * 2008-12-01 2010-06-10 Systems:Kk プログラム変換装置、プログラム分析装置、プログラム変換方法、プログラム分析方法、およびプログラム

Also Published As

Publication number Publication date
JP4698943B2 (ja) 2011-06-08

Similar Documents

Publication Publication Date Title
US8831925B1 (en) Indexing behaviors and recipes of a circuit design
US20080052670A1 (en) Graphically Depicting Program Code Depth
WO2009098739A1 (ja) プログラム最適化装置およびプログラム最適化方法
CN105700867B (zh) 通过编译器借助动态可缩放矢量图形生成可执行应用程序的方法和编译器
CN108762743A (zh) 一种数据表操作代码生成方法及装置
KR100688444B1 (ko) 프로그램 자동 변환 방법 및 프로그램 자동 변환 장치
JP5398213B2 (ja) 生成装置、プログラムおよび生成方法
JP2006301989A (ja) 計算機言語によるプログラムをブロック図から自動生成する方法と装置とプログラム
JP4698943B2 (ja) プログラム生産方法、プログラム生産装置、プログラム自動変換方法、およびプログラム
JP4747034B2 (ja) 検証シナリオ作成プログラム、記録媒体、検証シナリオ作成装置および検証シナリオ作成方法
JP4354514B2 (ja) プログラム自動変換方法、プログラム自動変換装置、およびプログラム
JP4472768B2 (ja) プログラム解析装置、プログラム解析方法、およびプログラム
JP5124660B2 (ja) プログラムの生産方法および生産装置
CN110554860B (zh) 一种软件项目自然语言编程接口nli的构造方法及代码生成方法
JP2007079906A (ja) ソースコード生成装置
JP4885569B2 (ja) スタイルシート生成装置及びスタイルシート生成プログラム
JP2008052356A (ja) ソースコード自動生成装置
JP4207992B2 (ja) 構造化文書処理システム及び構造化文書処理方法
JP5356851B2 (ja) マクロプログラムの構造化システム、マクロプログラムの構造化方法およびプログラム
KR20020072969A (ko) 멀티미디어 동기화 언어 편집기 및 그 편집방법
JP5966801B2 (ja) 言語変換装置、プログラム
JP2009080681A (ja) プログラム構造解析方法及び装置
JP2006031331A (ja) プログラム変換実行計算機、及び、プログラム変換実行方法、プログラム
KR101974804B1 (ko) 플로우 다이어그램 생성 방법 및 이를 실행하는 장치
JP2005250593A (ja) オブジェクト情報生成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090119

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090311

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090508

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090518

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20090717

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110302

R150 Certificate of patent or registration of utility model

Ref document number: 4698943

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term