JPH07281883A - プログラム修正支援装置及び方法 - Google Patents

プログラム修正支援装置及び方法

Info

Publication number
JPH07281883A
JPH07281883A JP6068337A JP6833794A JPH07281883A JP H07281883 A JPH07281883 A JP H07281883A JP 6068337 A JP6068337 A JP 6068337A JP 6833794 A JP6833794 A JP 6833794A JP H07281883 A JPH07281883 A JP H07281883A
Authority
JP
Japan
Prior art keywords
correction
information
program
variable
modification
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.)
Pending
Application number
JP6068337A
Other languages
English (en)
Inventor
Shigeki Naota
繁樹 直田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP6068337A priority Critical patent/JPH07281883A/ja
Publication of JPH07281883A publication Critical patent/JPH07281883A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 本発明はプログラム修正支援装置及び方法に
関し、修正により影響を受けるプログラムの箇所を指摘
するだけでなく、当該箇所での修正の指示若しくは修正
の可能性の指摘、要求された修正の妥当性の判断、又
は、これらに関する理由付けのいずれかを含む修正情報
を作成することにより、プログラムの修正作業を軽減す
ることを目的とする。 【構成】 プログラムの修正の要求があると、対象とな
るプロクラムの解析を行い、意味情報を得るとともに、
要求された修正の内容、及び、得られた前記意味情報に
基づいて、要求された修正の影響を受ける影響箇所の指
摘とともに、少なくとも、当該箇所での修正の指示、修
正の可能性の指摘、要求された修正の妥当性の判断、若
しくは理由付けのいずれかを含む修正情報を作成して出
力するように構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は既存のプログラムの修正
作業で用いるプログラム修正支援装置及び方法に関す
る。
【0002】
【従来の技術】従来、図13に示すように、プログラム
の修正の要求を行う修正要求部93と、前記プログラム
の解析を行って、構文構造情報等のプログラムの解析結
果を得るプログラム解析部91と、要求された修正の内
容及び前記解析結果から得られた修正の影響を受けるプ
ログラムの箇所(行番号)を検出する影響検出部92
と、検出された影響箇所を表示する表示部94とを有す
るものである。
【0003】
【発明が解決しようとする課題】さて、従来例に係る装
置にあっては、以上説明したように、要求された修正に
より、影響を受けるプログラムの箇所の検出を行うのみ
である。そのため、検出された影響箇所について、修正
の必要があるか否かの判断、修正の必要がある場合の修
正の内容の決定、又はその修正による影響を受ける箇所
の調査は各作業者の人手を介して行う必要があり、修正
作業者の負担が大きいという問題点を有していた。検出
された影響を受ける影響箇所に対して、対話形式で1つ
ずつ調べて修正を行ったとしても、修正による大量の影
響箇所がある場合には、非効率である。一方、修正を完
全に自動的に行うのでは、機械的な修正による誤りが含
まれる可能性を完全に排除することができず、危険であ
る。そこで、本発明は、要求された修正により、プログ
ラム上で影響を受ける箇所を指摘するとともに、その影
響箇所に対して、どのような修正が必要であるかの指
示、修正の可能性の指摘、又は、理由付け等を示すこと
により、操作者の作業の負担を軽減し、正確な修正を行
うことができるプログラム修正支援装置及び方法を提供
することを目的としてなされたものである。
【0004】
【課題を解決するための手段】以上の技術的課題を解決
するため、第一の発明は、図1に示すように、プログラ
ムの修正の要求を行う修正要求手段13と、修正の要求
された前記プログラムの解析を行って、意味情報を得る
プログラム解析手段11と、前記修正要求手段13によ
り要求された修正の内容、及び、前記プログラム解析手
段11により得られた前記意味情報に基づいて、要求さ
れた修正の影響を受ける影響箇所の指摘とともに、少な
くとも、当該箇所での修正の指示若しくは修正の可能性
の指摘、要求された修正の妥当性の判断、又は、理由付
けのいずれかを含む修正情報を作成する修正情報作成手
段12とを有するものである。
【0005】第二の発明は、図2に示すように、プログ
ラムの修正の要求を行う修正要求手段13と、前記プロ
グラムの解析を行って、意味情報を得るプログラム解析
手段21と、前記修正要求手段13により要求された修
正の内容、及び、前記プログラム解析手段11により得
られた前記意味情報に基づいて、要求された修正の影響
を受ける影響箇所の指摘とともに、少なくとも、当該箇
所での修正の指示若しくは修正の可能性の指摘、要求さ
れた修正の妥当性の判断、又は、理由付けのいずれかを
含む修正情報を作成する修正情報作成手段12と、作成
された前記修正情報を整列させる修正情報整列手段14
とを設けるとともに、前記プログラム解析手段21は、
構文構造情報、又は、変数の定義情報を作成する構文等
解析部15、プログラムの制御の分岐を表現するコント
ロールフロー情報の作成、又は、変数の参照若しくは及
び設定箇所の検出を行うデータフロー解析部16、及
び、変数定義領域の包含関係を解析し、データ包含関係
情報を作成する包含関係解析部17のうちの少なくとも
1つを有するものである。
【0006】第三の発明は、第二の発明について、前記
修正要求手段23によるプログラムの修正の要求は、少
なくとも、変数の長さの修正、配列の大きさの修正、変
数の型の修正、変数定義の削除修正、変数の設定箇所の
削除修正、変数の参照箇所の削除修正、変数定義の追加
修正、変数の参照処理の追加修正、又は、変数の設定処
理の追加修正のうちのいずれかであり、前記修正情報作
成手段22は、前記修正要求手段13により要求された
修正の内容、及び、前記プログラム解析手段11により
得られた前記意味情報に基づいて、要求された修正の影
響を受ける影響箇所の指摘とともに、少なくとも、当該
箇所での修正の指示若しくは修正の可能性の指摘、及
び、その理由付けを行い、さらに、前記要求が変数定義
の追加である場合には、既存の定義との整合性の判断、
前記要求が変数の設定処理の追加である場合には、その
追加により影響を受ける設定や参照の追加位置の誤りの
有無の判断、前記要求が変数の参照処理の追加である場
合には、その追加により影響を受ける設定や参照の追加
位置の誤りの有無の判断が行われるものであり、前記修
正情報整列手段14は、作成された前記修正情報をデー
タの階層構造毎にまとめて、修正指示を整列させ、又は
作成された前記修正情報をデータ毎の設定と参照の因果
関係の順序にまとめて、修正情報を整列させるものであ
る。
【0007】第四の発明は、図3に示すように、プログ
ラムの修正の要求があると(S1)、対象となるプロク
ラムの解析を行い、意味情報を得るとともに(S2)、
要求された修正の内容、及び、得られた前記意味情報に
基づいて、要求された修正の影響を受ける影響箇所の指
摘とともに、少なくとも、当該箇所での修正の指示、修
正の可能性の指摘、要求された修正の妥当性の判断、若
しくは理由付けのいずれかを含む修正情報を作成して出
力する(S3)ことである。
【0008】
【作用】第一の発明及び第四の発明によると、ステップ
S1で、前記修正要求手段13によるプログラムの修正
の要求がある。すると、ステップS2で、前記プログラ
ム解析手段11は、プログラムの解析を行いプログラム
の解析結果を示す意味情報を作成する。ここで、「意味
情報」とは、前記プログラム解析手段11によりプログ
ラムを解析することにより得られた情報であって、例え
ば、請求項2に記載された第二の発明に示すように、構
文構造情報、変数定義情報、コントロール及び変数の参
照及び設定箇所、又はデータ包含関係情報である。ステ
ップS3で、前記修正情報作成手段12は、前記修正要
求手段13により要求された修正内容、及び、プログラ
ム解析手段11により解析された意味情報に基づいて修
正情報を作成する。
【0009】ここで、「修正情報」とは、例えば、第三
の発明の場合について示せば、以下に示す(1) 〜(9) の
場合がある。(1) 前記修正要求手段13のプログラム
の修正の要求が変数の長さの修正である場合には、検出
された影響箇所、夫々の箇所で計算された必要になる長
さ、必要な修正の指示や修正の可能性の指摘、又はこれ
らの理由付けを示す情報であり、(2) 前記修正要求手
段13のプログラムの修正の要求が配列の大きさの修正
である場合には、定義上の影響箇所、その参照若しくは
設定箇所の添字に使われる変数の影響箇所、夫々の箇所
で必要な修正の指示や修正の可能性の指摘、又はこれら
の理由付けを示す情報であり、(3) 前記修正要求手段
13のプログラムの修正の要求が変数の型の修正である
場合には、その修正の影響箇所、夫々の箇所で必要とな
る修正の指示や修正の可能性の指摘、又はこれらの理由
付けを示す情報であり、(4) 前記修正要求手段13の
プログラムの修正の要求が変数の定義の削除修正である
場合に、影響箇所、削除が必要になる定義や処理の指
示、長さの修正が必要になる変数の指示やその可能性の
指摘、又は、これらの理由付けを示す情報であり、(5)
前記修正要求手段13の要求が変数の設定箇所の削除
である場合、その設定の結果の影響を受ける処理や定
義、削除の指示や削除の可能性の指摘、又は、これらの
理由付けを示す情報であり、(6) 前記修正要求手段1
3の要求が参照箇所の削除である場合、その参照に関連
する設定箇所と定義、他の箇所に影響がない場合には、
削除の指示や削除の可能性の指摘、又は、これらの理由
付けを示す情報であり、(7) 前記修正要求手段13の
要求が変数定義の追加である場合、その追加場所と設定
若しくは参照関係が生じる変数、影響箇所、既存の定義
との整合性、追加指示や修正の指示やその修正の可能性
の指摘、又は、これらの理由付けを示す情報であり、
(8) 前記修正要求手段13の要求が変数の設定処理の
追加である場合、その影響を受ける設定処理、設定元が
変わることによる影響、参照の追加位置の誤りの有無の
判断、又はこれらの理由付けを示す情報であり、(9)
前記修正要求手段13の要求が変数の参照処理の追加で
ある場合、その参照に関連する設定箇所、その追加によ
り影響を受ける設定箇所、参照の追加位置の誤りの有無
の判断、又はこれらの理由付けを示す情報である。作成
された修正情報に基づいて、作業者は、影響するプログ
ラムの箇所に関して、修正の必要性の判断や修正の実行
等の作業を行う。
【0010】第二の発明では、図2に示すように、前記
修正情報作成手段12により作成された修正情報を整列
させる修正情報整列手段14を設けたものである。ここ
で、「整列」とは、例えば、実施例に示すように、階層
構造による整形の場合には、変数名とともにデータ階層
の順にまとめて配置すること、又は設定/参照順序によ
る整形の場合には、最初の変更指示を出発点として指示
された設定/参照順序による整形の場合は、最初の変更
指示を出発点として指示された設定/参照箇所の依存関
係グラフを生成し、そこに、変更指示を付加することで
ある。また、第二の発明では、前記プログラム解析手段
21について、構文等解析部15、データフロー解析部
16、包含関係情報解析部17のうち少なくとも1つを
有する点を明確にさせた。
【0011】次に、第三の発明では、前記修正要求手段
23による修正の内容の例を明確にしたものである。詳
しく書けば、 (1) 長さの変更を要求する場合 前記修正要求手段23による修正要求において、変数の
新しい長さが与えられる。まず、それ自信の定義箇所に
関して修正指示を作成する。次に、包含関係にある変数
を処理する。上位に位置する変数のうち、明示的にデー
タ長が宣言されている変数については、定義の長さの修
正を指示する。同じ領域を共有する変数についても、長
さの修正を指示する。また、下位に位置する変数につい
ては、どのように分割されるか不明であるので、変数の
必要性のみを通知する。次に、記号表より、設定/参照
箇所を抽出し、それによる影響を処理する。代入文での
参照である場合、設定先の変数の長さが不足する場合
は、その変数の定義の修正を指示する。それ以外の場
合、演算の意味に依存するので、変更の可能性を通知す
る。設置箇所の場合は、設定元に含まれる変数について
長すぎるものは、長さの修正を指示する。また、定数デ
ータが長すぎる場合は、その修正も指示する。それ以外
については、変更の可能性を通知する。上記で、修正指
示及び変更可能性通知を受けた変数から影響を受ける変
数に対しては他に修正指示がない限り、変更可能性通知
のみを行う。 (2) 配列の大きさの変更を要求する場合 変更要求において、新しい大きさが与えられる。この場
合、まず、それ自身の定義箇所に関して修正指示を作成
する。次に、(1) と同様に包含関係にある変数を調べ、
長さの変更が必要であれば、修正を指示する。また、そ
の配列変数の設定/参照箇所から、そこで使われる添字
の中の変数を抽出する。配列の大きさの変更は、それら
の変数の値に影響を及ぼす可能性があるので、その設定
/参照箇所を求めて変更可能性を通知する。上記で、修
正指示及び変更可能性通知を受けた変数について再帰的
に守勢指示作成の処理を繰り返す。但し、変更可能性通
知を受けた変数から影響を受ける変数に対しては他に修
正指示がない限り、変更可能性通知のみを行う。 (3) 型の変更を要求する場合 変更要求において、変数の新しい型定義が与えられる。
まず、それ自身の定義箇所に関して修正指示を作成す
る。次に、新しい型定義から長さを求めて、(1) と同様
に包含関係のある変数に関して長さの修正を指示する。
また、対応するプログラミング言語処理系の型の変換規
則を参照して、相互の変換が不可能な型をもつ変数と領
域を共有するような場合は、その修正も指示する。ま
た、変換可能であっても、誤りになる可能性がある場合
は、変更可能性を通知する。設定/参照箇所を抽出し、
それについても、(1) と同様の長さのチェックととも
に、型変更規則を参照して、変換不能になる場合を検出
して、関連する変数の型変換を指示する。また、変換可
能であっても、誤りになる可能性がある場合は、変更可
能性を通知する。上記で、修正指示及び変更可能性通知
を受けた変数について再帰的に修正指示作成の処理を繰
り返す。変更可能性通知を受けた変数から影響を受ける
変数に対しては他に修正指示がない限り、変更可能性通
知のみを行う。 (4) 変数定義の削除を要求する場合 まず、削除する定義の箇所が指定される。その箇所の削
除指示を作成する。次に、その変数について、再定義領
域がなければ、その実体が削除されるので、包含関係で
上位項目にあたる変数について長さに関する修正指示を
(1) の場合と同様に指示する。また、包含関係で下位に
あたる項目については削除を指示する。同一領域を再定
義している変数がある場合には、その削除の可能性の通
知を生成する。さらに、その変数の設定/参照箇所を検
出し、その箇所の削除を指示する。削除及び修正の指示
または通知を受けた変数及び箇所について、再帰的に修
正指示作成の処理を繰り返す。 (5) 設定箇所の削除を要求する場合 設定箇所の削除である場合は、削除する箇所が指定され
る。先ず、その箇所の削除指示を作成する。次に、その
変数と包含関係にある変数の設定/参照箇所が他に存在
するかどうかを調べ、存在しなければ、定義箇所の削除
を指示する。また、他に設定箇所がなく参照箇所のみで
あり、定義時に初期設定されていなければ、その変数の
定義箇所と参照箇所の削除を指示する。設定箇所が他に
もある場合は、削除する設定箇所からコントロールフロ
ーをたどり、到達する参照箇所を全て求める。次に、そ
れぞれの参照箇所から逆にコントロールフローをさかの
ぼり、他の設定箇所が見つかるかどうかを調べる。定義
時に初期化されている場合は設定箇所が見つかったとみ
なす。この結果、削除対象以外の設定箇所が見つからな
かった参照箇所については、削除指示を生成する。見つ
かった箇所についても、変更による影響は被るので、変
更可能性の通知を生成する。削除指示や変更通知された
箇所については、再帰的に修正指示作成の処理を繰り返
す。 (6) 参照箇所の削除を要求する場合 参照箇所の削除である場合は、削除する箇所が指定され
る。先ず、その箇所の削除指示を作成する。次に、その
変数と包含関係にある変数の設定/参照箇所が他に存在
するかどうかを調べ、存在しなければ、定義箇所の削除
を指示する。また、他に、参照がなく設定のみならば、
その変数の定義箇所と設定箇所の削除を指示する。参照
箇所が他にもある場合は、削除する参照箇所からコント
ロールフローをさかのぼり、到達する設定箇所をすべて
求める。この場合、定義部の初期化処理は考慮しない。
次に、それぞれの設定箇所からコントロールフローをた
どり、他の参照箇所が見つかるかどうかを調べる。この
結果、参照箇所が見つかった設定処理については、変更
可能性の通知をし、参照箇所が見つからなかった箇所に
ついては、削除指示を生成する。削除指示や変更通知さ
れた箇所については、再帰的に修正指示作成の処理を繰
り返す。 (7) 変数の追加を要求する場合 変数の追加である場合は、変更要求として、変数の長さ
や型、定義の挿入箇所、及び設定/参照対象になる変数
または定数が指定される。まず、与えられた要求に基づ
いて、追加指示を生成する。次に、新しい変数定義が、
ある変数の下位として挿入される場合は、その変数を含
む定義全体の包含関係を再計算して、長さの変更が必要
になる箇所を検出し、修正指示を生成する。設定/参照
の対象となる変数や定数とは、データ長や型変換規則に
不整合がないかを調べ、変更が必要であれば、修正指示
を生成する。変更が必要になった変数に関しては、再帰
的に修正指示作成の処理を繰り返す。 (8) 設定処理の追加を要求する場合 設定処理の追加である場合、変更要求として、追加する
位置と設定命令が与えられる。まず、与えられた要求に
基づいて、追加指示を生成する。次に、追加する位置か
らコントロールフローをたどり、追加する設定の影響を
受ける参照箇所を全て検出し、それらが影響を受けるこ
とを通知する。この場合は、具体的な修正指示は行わ
ず、影響があることを通知する。いかなる参照箇所にも
到達しない場合には、追加位置が誤りであるので、追加
の取消を指示する。また、追加位置からコントロールフ
ローを遡り、到達可能な設定箇所を求める。そこから逆
にフローをたどり、追加した設定箇所に到達する以前に
参照箇所に到達するかどうかを調べる。参照箇所に到達
しないならば、その設定箇所は追加された設定処理によ
って無効化されたと見なされるので、削除指示を生成す
る。検出された参照箇所が設定処理ならば、その設定先
に含まれる変数についても影響が及ぶので、処理を再帰
的に適用して、全ての影響箇所を検出する。 (9) 参照処理の追加を要求する場合 参照処理の追加である場合、変更要求として、追加する
位置と参照命令が与えられる。まず、与えられた要求に
基づいて、追加指示を行う。次に、追加する位置からコ
ントロールフローを遡り、追加される参照に対する有効
な設定箇所を求める。さらに、その設定処理の設定元に
含まれる変数についても再帰的に調べ、全ての影響を及
ぼす処理を検出する。こうして、検出した処理を参照の
追加に影響を及ぼすものとして通知する。もし、設定箇
所に到達しないパスが見つかれば、その場合は追加位置
が誤りなので、そのことを通知する。
【0012】
【実施例】本発明の実施例について図面に基づいて説明
する。本実施例に係るプログラム修正支援装置及び方法
は、図4に示すように、種々の制御を行うCPU51
と、制御の指示及びデータの入力を行う入力部52と、
メモリ部55と、データの出力を行う出力部53と、ホ
ストコンピュータ54a及びインタフェース54bと、
ファイル58とを有するものである。前記入力部52に
は、キーボード52a及びマウス52bが設けられ、出
力部53には、表示部53a及びプリンタ53bがあ
り、メモリ部55には、ROM55a及びRAM55b
がある。尚、出力部55としては、上記の他に出力結果
をファイルやフロッピーに格納したり、前記インタフェ
ース54bを介してホストコンピュータ54aに出力す
るようにしても良い。入力部52としては、上記の他
に、タッチパネルやインタフェース54bを介したホス
トコンピュータ54aやフロッピー等から入力させるよ
うにしても良い。
【0013】図5には、本発明の実施例に係るプログラ
ム修正支援装置を機能的に示したものである。本実施例
は、作業者の操作によりプログラムの修正の要求を行う
修正要求手段33と、修正の要求された前記プログラム
の解析を行って、意味情報を得るプログラム解析手段3
1と、前記修正要求手段33により要求された修正の内
容、及び、前記プログラム解析手段31により得られた
前記意味情報に基づいて、要求された修正の影響を受け
るプログラムの影響箇所の指摘とともに、少なくとも、
当該箇所での修正の指示若しくは修正の可能性の指摘、
要求された修正の妥当性の判断、又は、これらの理由付
けのいずれかを含む修正情報を作成する修正情報作成手
段32と、作成された当該修正情報をデータの階層構造
やデータ設定順序により整形出力することにより修正情
報の整列を行う修正情報整列手段24とを有する。図5
に示すように、前記修正要求手段33は前記入力部52
により構成され、前記プログラム解析手段31、修正情
報作成手段32及び修正情報整列手段24は、CPU5
1、プログラムを格納したROM55a及び種々のデー
タを格納するRAM55bにより構成されている。
【0014】本実施例は、図5に示すように、プログラ
ムに関する意味情報を格納する意味情報格納部57と、
修正情報を格納する修正情報格納部59と、修正の対象
となるプログラムを格納するプログラム格納部56とを
有する。当該意味情報格納部57、修正情報格納部59
及びプログラム格納部56は前記ファイル58により構
成されている。前記プログラム解析手段31は、図5及
び図6に示すように、プログラムを解析して、構文構造
情報、又は、変数定義情報を作成する構文等解析部25
と、構文等解析部25により作成された構文構造情報又
は変数定義情報からデータ(変数定義)領域の包含関係
を解析してデータ包含関係情報を作成する包含関係解析
部27と、前記構文等解析部25の出力からプログラム
の分岐を表現するコントロールフロー情報の作成、又
は、変数の設定若しくは参照関係を作成するデータフロ
ー解析部26とを有する。ここで、「意味情報」は、例
えば、構文構造情報、変数定義情報、データの包含関係
情報、コントロールフロー情報、又は変数の設定/参照
関係の情報を含むプログラムの解析結果を示す情報であ
り、例えば、前述した(1) 〜(9) 場合がある。「構文解
析」は、通常、与えられた文字列を構文規則に従って解
析し、対象プログラム言語として許される構造をもつも
のかどうかを同定することにより行われる。
【0015】本実施例に係るプログラム修正支援装置及
び方法に関する動作について、図6及び図7に基づいて
説明する。同図に示すように、ステップS10で、前記
修正要求手段33により作業者がプログラムの修正要求
を行う。当該要求があると、前記プログラム格納部56
から対象となるプログラムが読み出され、前記RAM5
5bに格納される。すると、ステップS11で、前記構
文等解析部25が対象プログラムから、構文構造情報と
変数定義情報を作成する。その際、前記プログラム上の
出現位置を構文構造情報や変数定義情報に埋め込んでお
く。ステップS12で、前記包含関係解析部27は、前
記構文等解析部25により作成された変数の定義情報中
の型から変数のデータ長を得て、親子関係や再定義関係
を合わせて、変数定義領域の包含関係の情報を抽出す
る。ステップS13で、前記データフロー解析部26
は、プログラム中の処理記述部の構文構造を調べ、各命
令による制御の分岐を表現するコントロールフロー情報
と各命令での変数の設定/参照関係情報を作成する。ス
テップS14で、当該プログラム解析部31は、このよ
うにして得られた情報に基づいて前記意味情報を作成し
て、前記意味情報格納部57に格納する。前記意味情報
を作成するアルゴリズムは、処理目的は異なるがコンパ
イラの作成技術に相当するものである。ステップS15
で、前記修正情報作成手段32は、前記修正要求手段3
3からの修正要求を受けると、前記意味情報格納部57
に格納されているプログラムの意味情報に基づいて、修
正要求の内容毎に、影響のおよぶ他の変数や処理を求
め、その定義、参照、設定箇所を検出し、それぞれに該
当する修正指示を作成する。
【0016】修正情報が作成されると、ステップS16
に進み、修正情報整列手段24により、修正情報の整列
を行う。修正情報の整列には、例えば、次のがあ
る。 階層構造による整形の場合には、変数名とともにデ
ータ階層の順にまとめて配置する。この場合、設定や参
照箇所の変更指示も対応する変数名の箇所にまとめる。 設定/参照順序による整形 設定/参照順序による整形の場合は、最初の変更指示を
出発点として指示された設定/参照箇所の依存関係グラ
フを生成し、そこに、変更指示を付加する。このように
して、整列された修正情報は、ステップSJ8で前記出
力部53の表示部53a又はプリンタ53bから出力さ
れることになる。
【0017】以上説明した構文等解析部25、包含関係
解析部27、データフロー解析部26、修正情報作成部
32及び修正情報整列手段24の動作について、項目を
分けて詳しく説明する。 (1) 構文等解析部25の動作 構文等解析部25のアルゴリズムは、コンパイラ等に使
われる公知の技術を用いる。その生成する情報を図8に
示す。これは、記号表(変数定義情報)と構文木(構文
構造情報)から構成されている。図8aは記号表であ
り、記号表に登録されている情報は以下のようなものが
ある。 1.変数名 2.定義されている行番号 3.変数の型 4.変数の初期値 5.上位(親)の変数の情報へのポインタ 6.下位の先頭(長子)の変数の情報へのポインタ 7.同じ親をもち、次に定義されている変数(弟)への
ポインタ 8.その変数が再定義している変数の情報へのポインタ 9.その変数を再定義している変数の情報のリストへの
ポインタ 10.構文木上でその変数が設定されている箇所へのポ
インタのリスト 11.構文木上でその変数が参照されている箇所へのポ
インタのリスト 12.その変数と包含関係にある変数の情報 このうち、10.11.12は以降の処理で設定される
情報で、構文解析の処理の段階では設定されていない。
10.と11.はデータフロー解析部26の処理におい
て設定され、12.は、包含関係解析部27で設定され
る。図8bは構文木であり、プログラムの実行順序に応
じて得られる文のつながりを表すことによりプログラム
の構文構造を表現している。構文木の個々のノードはプ
ログラムの命令文や式に相当し、以下のような情報を持
っている。そして、それら全体でプログラムが構成され
る。 代入文の場合 ・文種別(=代入) 行番号 ベーシックブロックへのポインタ 代入元の式へのポインタ 代入先の変数に対応する名前表のコラムへのポインタ 次の文へのポインタ ・条件分岐文の場合 文種別(=条件分岐) 行番号 ベーシックブロックへのポインタ 条件式情報へのポインタ then部の文の先頭へのポインタ else部の文の先頭へのポインタ 次の文へのポインタ ・条件式の情報 演算子の種別 右辺の式の情報へのポインタ 左辺の式の情報へのポインタ ここで、ベーシックブロックへのポインタというのは、
後述するデータフロー解析部で設定される情報であり、
構文解析部25の処理では設定されていない。
【0018】(2) 包含関係解析部27の動作 記号表から、各変数に対して、構造上包含関係にある変
数、即ち、それを包含する関係にある変数(先祖及びそ
の再定義変数)、その変数に包含される変数(子孫の変
数)、及びそれらの変数を再定義(別名付け)している
変数とその子孫を全て求める。変数の型から、それらの
データ長を計算し、包含関係を先祖、子孫、同一領域、
部分的に共通領域をもつもの、の4つに分類する。それ
らの情報と先祖の開始位置から子孫の開始位置が何バイ
トずれているのかの情報を組にして記号表に登録する。
COBOLによるデータ構造の表記に基づき、以下に例
を示す。 この例で、A1,A2は記号表の親子兄弟のリンクをたどる
ことで、A の子孫であると判定される。これとPICTURE
句で指定されたデータ型の解析により、先祖との開始位
置のずれを求め、以下のような包含関係の情報を作る。 A ((A1, 子孫, 0), (A2,子孫,3)) A1 ((A, 先祖, 0)) A2 ((A, 先祖, 3)) この例では、変数A-R が変数A を再定義しており、それ
らが同一領域を指すと判定される。さらに、親子のリン
クから、A-R1, A-R2が A, A-Rの両方の子孫であるとさ
れる。記号表の包含関係の情報は、 A ((A-R,同一),(A-R1, 子孫, 0), (A-R2, 子孫,3)) A-R1 ((A,先祖, 0), (A-R, 先祖, 0)) 等となる。 この例では、A1, A2とA-R1, A-R2の関係はPICTURE 句以
下で指定されている型情報(構文解析処理により記号表
に登録されている)を用いて、その長さを求める。この
例では、A1, A2がそれぞれ、2バイト、4バイトであ
り、A-R1, A-R2がともに3バイトであることから、A-R1
はA1を包含する(祖先)であることがわかり、A-R2とA1
とは部分的に共通領域をもつと判定される。記号表の包
含関係の情報は、 A ((A1, 子孫,0),(A2,子孫,2), (A-R,同一),(A-R1,同
一),(A-R2,子孫,3)) A-R1 ((A, 先祖,0),(A-R, 先祖,0),(A1,子孫,0),(A2,
部分共通))等となる。
【0019】(3) データフロー解析部26の動作 データフロー解析部26によるデータフローの処理によ
って得られる情報を図9に示す。図9aはベーシックブ
ロック情報であり、この処理では、プログラムをコント
ロールフローに分岐がない1 まとまり(ベーシックブロ
ック)に分割し、各ブロック毎に変数の設定/参照の情
報を登録する。また、図8aに示す各変数の記号表に
も、その設定/参照箇所を登録する。個々のベーシック
ブロック毎に登録する情報は、 ブロックの番号 構文木上のベーシックブロックの開始位置へのポインタ 先行ブロックの番号のリスト 後続ブロックの番号のリスト そのブロックで設定されている変数とその位置へのポイ
ンタの組のリスト そのブロックで参照されている変数とその位置へのポイ
ンタの組のリストである。データフロー解析部26は、
構文木の各ノード(文)に対しても、それが属するベー
シックブロックへのポインタを埋め込む。各ベーシック
ブロックの情報には、先に述べたように構文木の上での
ベーシックブロックの先頭位置のポインタを登録するの
で、相互に参照可能になる。この概略を図9bに示す。
この構造は、構文木の各文について、文種を調べて、以
下のような処理を行うことで作成される。 ・代入文の場合 前の文に分岐/合流がなければ、前の文の同一のブロッ
クとする。そうでなく、前の文が条件分岐文のような分
岐のある文であれば、新たにブロックを作り、then
部、else部の最後のブロックの両方を先行ブロック
として登録する。代入文の代入先に現れる変数をその位
置へのポインタとともに、設定変数リストに登録する。
同時に、記号表のその変数の設定箇所の項には、この構
文木上の位置へのポインタを追加する。代入文の設定元
の式に現れる変数をその位置へのポインタとともに、参
照変数リストに登録する。同時に、記号表のその変数の
参照箇所の項には、この構文木上の位置へのポインタを
追加する。 ・goto文の場合 この文単独で新しいブロックを作り、その飛び先を後続
ブロックとする。
【0020】(4) 修正情報作成手段32の動作 変更要求の内容毎にそれぞれの処理を行う。 ・長さの変更 例4で、101 行目のA1の長さを5バイトから7バイトに
変更するとする。 まず、A1の変更のために以下の指示が生成される。 変更指示 101 X(5) −> X(7) // A1長さ変更 ここで、「//」以降は変更理由を表すコメントである。
次に、上位であるA がデータの包含関係情報より検出さ
れる。この場合は、命じてきに長さの宣言がなされてい
ないので、修正指示は生成されない。記号表からA1の設
定/ 参照箇所を求めると、200 行目の設定と300 行めの
参照が見つかる。まず、設定箇所については、設定元の
B1を取り出し、その長さを求めると、5 バイトであるか
ら、その定義105 行目は変更が必要からもしれない。よ
って以下のような変更可能性の通知が生成される。 変更可能性 105 X(5) -> X(7) // B1 長さ変更
from A1への 200 行での代入 次に、参照箇所300 行目からは設定先のC を取り出し、
その長さを求めると、5 バイトであるから、その定義第
108 行を修正しなければならないことがわかる。よっ
て、以下のような指示が生成される。 変更指示 108 X(5) -> X(7) // C 長さ変更 from
A1からの300 行での代入 さらに、こうして変更指示された変数、B1, C について
も同じ処理を繰り返す。すると、B1の定義の包含関係か
ら、B とBRの定義が影響を受けることを検出できる。BR
については長さを明示してあるので、以下の修正指示を
作成する。 変更可能性 107 X(7) -> X(7) // BR 長さ変更
from B1 の 105 行での変更 B1の参照箇所 400行目を検出し、その比較対象C も影響
を受けることがわかる。 変更可能性 109 X(5) -> X(7) // D 長さ変更 fro
m B1との400 行での比較 ・配列の大きさの変更 以下に示す例5で、101 行目の繰り返し項目(配列)A
の定義をOCCURS5 からOCCURS10に変更すると、 まず、自身の変更指示は、 変更指示 101 5 -> 10 // 配列 A 大きさ変更 包含関係から、102 行目のARの定義を修正の指示が生成
される。 変更指示 102 X(5) -> X(10) // 添字I の範囲 f
rom 配列 A大きさ変更 次に、A の設定箇所201 行目から、添字変数I が見つか
る。I の参照箇所は200 行目のUNTIL なので、それに対
して、変更可能性の通知を生成する。 変更可能性 200 I > 5 -> I > 10 //添字I の範囲
from 配列 A大きさ変更 ・型の変更 型の変更である場合は、COBOLでは、picture 句
と、usage 句の変更がこれに相当する。例として、前記
の例4のA1の変更において、picture 句をPIC9(5) と
変更したとする。これは型の変更であり、A1は数字項目
になる。この場合、長さは変わらない。定義の修正指示
は以下のようになる。 変更指示 101 X(5) -> 9(5) // A1型変更 ついで、これにより影響を受けるのは、200 行目の設定
箇所である。ここは、英数字項目であるB1からA1への設
定である。これは、COBOLの型変換規則では、内容
が数字の場合のみ可能であり、誤りを含む可能性があ
る。そこで、以下のような変更の可能性を通知する。 変更可能性 105 X(5) -> 9(5) // B1型変更 from
A1への200 行での代入 同様に、300 、400 行目についても変更の可能性を通知
する。 ・変数定義の削除 変数定義の削除の例として、前記例4の105 行目のB1の
で定義を削除するとする。まず、以下のような削除指示
を生成する。 削除指示 105 // B1 定義削除 次に、包含関係から、BRの修正が必要になるので、 変更指示 107 X(12) -> X(7) // BR長さの変更 f
rom B1 定義 削除 105行 さらに、B1の参照箇所200 行、400 行について、削除指
示 削除指示 200 // B1 参照削除 from B1 定義削除
105 行 削除指示 400 // B1 参照削除 from B1 定義削除
105 行 また、200 行目の削除から、A1の設定箇所が他にないと
すると、300 行目のA1の参照と101 行目のA1の定義が削
除指示される。 ・設定箇所の削除 設定箇所の削除の例として、前記例4の200 行目のA1の
設定箇所を削除するとする。まず自身の削除指示を生成
する。次に、その位置から、コントロールフローをたど
り、300 行目まで、他のA1の設定箇所がなく到達したと
する。今度は、逆に300 行目からコントロールフローを
遡り、200 行目以外の設定箇所を探す。もし、見つから
なければ、300 行目の設定処理では、A1の値が未定にな
るので、削除指示を出す。見つかった場合は、変更可能
性の通知を出す。また、300 行に削除指示を出し、他に
設定/ 参照個所がなければ、101 行のA1の定義にも削除
指示を出す。200行目に出現するB1や300 行目のC につ
いても操作を再帰的に適用する。 ・参照個所の削除 参照箇所の削除の例として、前記例4の300 行目のA1の
参照箇所を削除するとする。まず、自身の削除指示を生
成する。次に、その位置から、コントロールフローを遡
り、200 行目まで他のA1の設定箇所がなく到達したとす
る。今度は逆に200 行目からコントロールフローを順に
たどり、300 行目以外の参照箇所を探す。もし、見つか
らなければ、200 行目に削除指示を出す。見つかれば、
何もしない。また、200 行に削除指示を出し、他に設定
/ 参照箇所がなければ、101 行のA1の定義にも削除指示
を出す。200行目に出現するBI1 や300 行目のC につい
ても操作を再帰的に適用する。 ・変数の追加 変数の追加の例として、前記例4の106 行目の後に、変
数B3をPIC X(4)の形式で挿入し、A1からデータを受け取
り、D にデータを渡すという変更を行うとする。この場
合、まず、自身の追加指示は、 追加指示 106 03 B3 PIC X(4) // 106行目の後に、B3
追加 包含関係から、BRの定義の修正が必要となる。また、与
えられたデータの受渡し関係から、A1とD の長さと型を
調べ、A1の定義に対して、変更の可能性を通知し、D の
定義に対して、変更指示する。 ・設定処理の追加 設定処理の追加の例として、前記例4の200 行目の後
に、 MOVE B2 TO A1 という処理を追加するとする。追加指示を生成したの
ち、その位置からコントロールフローをたどると、300
行目に到達するとする。この場合、以下の影響の通知を
生成する。 影響通知 300 // from A1 200 行目の後への設定追
加 次に、追加位置からコントロールフローを遡ると、直前
の200 行目にA1の設定が見つかる。これからコントロー
ルフローを順にたどり直すと、この設定処理が明らかに
無効になったことがわかる。そこで、削除指示を作成す
る。関連して出てくるB1,B2,C についても、同様の処理
を繰り返す。 ・参照処理の追加 参照処理の追加の例として、上記の「設定処理の追加」
の変更要求を、B2の参照という観点から見直すと、200
行目からコントロールフローを遡って、B2の設定位置を
求める。見つからなければ、この追加は誤りと判断し、
以下の追加取消指示を生成する。 追加取消 200 MOVE B2 TO A1 // B2 設定箇所不
明 150行目に見つかったとすると、以下の影響通知を生成
する。 追加影響通知 200 // from B2 の設定箇所 150行目
【0021】(6) 修正情報整列手段24の動作 修正指示作成時にコメントとして付加した関連情報と記
号表の情報を元に指定されて形式で指示を整形出力す
る。 ・階層構造による整形 例4に対する修正指示を階層構造毎に纏めると、以下の
ようになる。 A A1 変更指示 101 X(5) -> X(7) // A1 長さ変更 B0 BR 変更可能性 107 X(5) -> X(7) // B1 長さ変更 from B1 の105行での 変更 B1 変更可能性 105 X(5) -> X(7) // B1 長さ変更 from A1 への200行で の代入 C 変更指示 108 X(5) -> X(7) // C 長さ変更 from A1 からの300行 での代入 D 変更可能性 109 X(5) -> X(7) // D 長さ変更 from B1との400行での 比較 ・設定/ 参照順序による整形 上記の例を設定参照の因果関係でまとめると、以下のよ
うになる。 変更指示 101 X(5) -> X(7) // A1 長さの変更 → 変更可能性 105 X(5) -> X(7) // B1 長さ変更 from A1 への200 行での代入 → 変更可能性 107 X(5) -> X(7) // BR 長さ変更 from B1 の105 行での変更 → 変更可能性 109 X(5) -> X(7) // D長さ変更 from B1との400 行での比較 → 変更指示 108 X(5) -> X(7) // C 長さ変更 from A1からの300 行での代入
【0022】以下に、図8及び図9に示した意味情報に
あたる記号表(図8a)、構文木(図8b、図9b))
及びベーシックブロック(図9a)について、COBO
Lで表現される以下に示す例6のプログラムを用いて具
体的に示す。 この例6について、図8aの記号表について、具体的に
数値を記載して作成したものを図10に示す。図10a
に示すように、変数“ZPCD1 ”に注目すると、それが存
在する例6のプログラムの行番号は102 行であるので、
表の「行番号」の欄に“102 ”の数字を記載する。当該
変数については長男“ZPCD11”が存在するので、変数
“ZPCD11”の表のメモリ上のアドレスを変数“ZPCD1 ”
の表の「長男」の欄に記載する。変数“ZPCD1 ”は 200
行で代入先、即ち、“ZPCDIN”が設定されるので、変数
“ZPCD1 ”の表の「設定箇所」に構文木の200 行目の対
応箇所を表す“200 ”の数値が記載され、変数“ZPCD1
”は203 行で代入元となっているので、変数“ZPCD1
”の表の「参照箇所」に構文木の203 行目の対応箇所
を表す“203 ”の数値が記載される。一方、変数の型に
ついては明示的に長さ等の宣言がなされていないので、
変数“ZPCD1 ”の表の「型」の欄については空欄となっ
ている。同様に、変数の初期値、親、弟、再定義及び被
再定義についても空欄となっている。図10bに示した
変数“ZPCD11”の表に注目すると、変数は文字列の3桁
の数字であるので、当該表の「型」の欄に“PIC X(3)”
を記載する。また、変数は先程の“ZPCD1 ”を親として
もつことが前記包含関係解析部27により解析されてい
るので、「親」の欄に“ZPCD1 ”の表のアドレスを記載
し、前記モデル・プログラムの第104 行に“ZPCD11”の
弟の位置に“ZPCD12”の表のアドレスを記載する。参照
箇所としてはモデル・プログラムの第205 行で代入元に
存在するので、“ZPCD11”の表の「参照箇所」の欄に構
文木の第205 行目の対応箇所を示す“205 ”が記載され
ている。同様にして、変数“ZPCD12”の表についても、
同様に作成され、図10cに示す表が得られる。図11
には、図8bに示した構文木をさらに、前述した記号表
との関係でより具体的に作成したものを示す。前記例6
のプログラムに沿って、200 行の文は、その1つ前の行
である199 行からつながる。第200 行の文は、その種別
は、「代入」であり、その代入元は“ZPCDIN”であり、
代入先は“ZPCD1 ”であり、次の文として、201 行が指
定されている。第201 行の文は、その種別は、「条件分
岐」であり、その条件式は“ZPCD12=SPACE”であり、条
件に合致する場合には、第203 行に進み、条件に合致し
ない場合には、第205 行に進む。次の文としては、第20
9 行が指定されている。前記第203 行の文及び第205 行
の文は、代入文であり、第205 行の文は、次に第206 行
の文を指定し、第206 行の文は次に第207 行の文を指定
している。各文に出現する変数は前記記号表で説明され
ている。図12には、実施例に係る構文木とベーシック
ブロックの具体例を示す。各ブロック毎に変数の設定/
参照の情報を登録する。また、各変数の記号表にも、そ
の設定/参照箇所を登録する。同図に示すように、行番
号200 行の文のベーシックブロックには、ブロック番号
が“10”である旨、構文木が行番号“200 ”である旨、
先行する文の構文木が行番号が“201 ”である旨が記載
されている。また、第200 行の文については、代入文の
代入元である変数“ZPCDIN”が参照箇所変数情報とし
て、変数“ZPCD1”が設定箇所変数情報として記載され
ている。以上はCOBOLで表示されたプログラムにつ
いてのみ説明したが、当該例に限られることなく、その
他のFORTRAN等の高級言語で表示されたプログラ
ムにも適用することができる。
【0023】
【発明の効果】以上説明したように、本発明によれば、
プログラムの解析を行い、得られた意味情報及び要求さ
れた修正の内容に基づいて修正を実現することにより、
単に、その修正により影響をうけるプログラムの箇所を
指摘するだけでなく、当該箇所での修正の指示若しくは
修正の可能性の指摘、要求された修正の妥当性の判断、
又は、これらに関する理由付けのいずれかを少なくとも
含む修正情報を作成するようにしている。したがって、
プログラムの修正作業の負担を軽減するとともに、正確
で的確な修正を行うことができる。
【図面の簡単な説明】
【図1】第一の発明の原理ブロック図
【図2】第二の発明の原理ブロック図
【図3】第四の発明の原理流れ図
【図4】実施例に係る機器構成ブロック図
【図5】実施例に係る機器対応説明図
【図6】実施例に係るブロック図
【図7】実施例に係る処理流れ図
【図8】実施例に係る意味情報の例を示す図(1)
【図9】実施例に係る意味情報の例を示す図(2)
【図10】実施例に係る記号表を示す図
【図11】実施例に係る構文木と記号表の例を示す図
【図12】実施例に係る積文木とベーシックブロックの
例を示す図
【図13】従来例に係るブロック図
【符号の説明】
11,21,31…プログラム解析手段 12,22,32 …修正情報作成手段 13,23,33 …修正要求手段 14,24 …修正情報整列手段 15,25…構文等解析部 16,26 …データフロー解析部 17,27…包含関係解析部 56…プログラム格納部 57…意味情報格納部 59…修正情報格納部

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 プログラムの修正の要求を行う修正要求
    手段(13)と、 修正の要求された前記プログラムの解析を行って、意味
    情報を得るプログラム解析手段(11)と、 前記修正要求手段(13)により要求された修正の内
    容、及び、前記プログラム解析手段(11)により得ら
    れた前記意味情報に基づいて、要求された修正の影響を
    受ける影響箇所の指摘とともに、少なくとも、当該影響
    箇所での修正の指示若しくは修正の可能性の指摘、要求
    された修正の妥当性の判断、又は、理由付けのいずれか
    を含む修正情報を作成する修正情報作成手段(12)と
    を有することを特徴とするプログラム修正支援装置。
  2. 【請求項2】 プログラムの修正の要求を行う修正要求
    手段(13)と、 前記プログラムの解析を行って、意味情報を得るプログ
    ラム解析手段(21)と、 前記修正要求手段(13)により要求された修正の内
    容、及び、前記プログラム解析手段(11)により得ら
    れた前記意味情報に基づいて、要求された修正の影響を
    受ける影響箇所の指摘とともに、少なくとも、当該箇所
    での修正の指示若しくは修正の可能性の指摘、要求され
    た修正の妥当性の判断、又は、理由付けのいずれかを含
    む修正情報を作成する修正情報作成手段(12)と、 作成された前記修正情報を整列させる修正情報整列手段
    (14)とを設けるとともに、 前記プログラム解析手段(21)は、 構文構造情報、又は、変数の定義情報を作成する構文等
    解析部(15)、 プログラムの制御の分岐を表現するコントロールフロー
    情報の作成、又は、変数の参照若しくは及び設定箇所の
    検出を行うデータフロー解析部(16)、 及び、変数定義領域の包含関係を解析し、データ包含関
    係情報を作成する包含関係解析部(17)のうちの少な
    くとも1つを有することを特徴とするプログラム修正支
    援装置。
  3. 【請求項3】 前記修正要求手段(23)によるプログ
    ラムの修正の要求は、少なくとも、変数の長さの修正、
    配列の大きさの修正、変数の型の修正、変数定義の削除
    修正、変数の設定箇所の削除修正、変数の参照箇所の削
    除修正、変数定義の追加修正、変数の参照処理の追加修
    正、又は、変数の設定処理の追加修正のうちのいずれか
    であり、 前記修正情報作成手段(22)は、 前記修正要求手段(13)により要求された修正の内
    容、及び、前記プログラム解析手段(11)により得ら
    れた前記意味情報に基づいて、要求された修正の影響を
    受ける影響箇所の指摘とともに、少なくとも、当該箇所
    での修正の指示若しくは修正の可能性の指摘、及び、理
    由付けを行い、 さらに、前記要求が変数定義の追加である場合には、既
    存の定義との整合性の判断、前記要求が変数の設定処理
    の追加である場合には、その追加により影響を受ける設
    定や参照の追加位置の誤りの有無の判断、前記要求が変
    数の参照処理の追加である場合には、その追加により影
    響を受ける設定や参照の追加位置の誤りの有無の判断が
    行われるものであり、 前記修正情報整列手段(14)は、 作成された前記修正情報をデータの階層構造毎にまとめ
    て、修正指示を整列させ、又は作成された前記修正情報
    をデータ毎の設定と参照の因果関係の順序にまとめて、
    修正情報を整列させることを特徴とする請求項2記載の
    プログラム支援装置。
  4. 【請求項4】 プログラムの修正の要求があると(S
    1)、 対象となるプロクラムの解析を行い、意味情報を得ると
    ともに(S2)、 要求された修正の内容、及び、得られた前記意味情報に
    基づいて、要求された修正の影響を受ける影響箇所の指
    摘とともに、少なくとも、当該影響箇所での修正の指
    示、修正の可能性の指摘、要求された修正の妥当性の判
    断、若しくは理由付けのいずれかを含む修正情報を作成
    する(S3)ことを特徴とするプログラム修正支援方
    法。
JP6068337A 1994-04-06 1994-04-06 プログラム修正支援装置及び方法 Pending JPH07281883A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6068337A JPH07281883A (ja) 1994-04-06 1994-04-06 プログラム修正支援装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6068337A JPH07281883A (ja) 1994-04-06 1994-04-06 プログラム修正支援装置及び方法

Publications (1)

Publication Number Publication Date
JPH07281883A true JPH07281883A (ja) 1995-10-27

Family

ID=13370935

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6068337A Pending JPH07281883A (ja) 1994-04-06 1994-04-06 プログラム修正支援装置及び方法

Country Status (1)

Country Link
JP (1) JPH07281883A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000029742A (ja) * 1998-05-21 2000-01-28 Lucent Technol Inc オ―プンシステムを閉じる方法
JP2007199800A (ja) * 2006-01-24 2007-08-09 Hitachi Software Eng Co Ltd デグレート防止支援プログラムおよびデグレート防止支援方法
JP2008226010A (ja) * 2007-03-14 2008-09-25 Hitachi Ltd コンパイル方法及びコンパイル装置
CN100461109C (zh) * 2004-04-28 2009-02-11 富士通株式会社 语义任务计算
JP2010191598A (ja) * 2009-02-17 2010-09-02 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
JP2013025716A (ja) * 2011-07-25 2013-02-04 Shinichi Ishida モジュールの構造解析を支援する装置及びプログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000029742A (ja) * 1998-05-21 2000-01-28 Lucent Technol Inc オ―プンシステムを閉じる方法
CN100461109C (zh) * 2004-04-28 2009-02-11 富士通株式会社 语义任务计算
JP2007199800A (ja) * 2006-01-24 2007-08-09 Hitachi Software Eng Co Ltd デグレート防止支援プログラムおよびデグレート防止支援方法
JP2008226010A (ja) * 2007-03-14 2008-09-25 Hitachi Ltd コンパイル方法及びコンパイル装置
JP2010191598A (ja) * 2009-02-17 2010-09-02 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
JP2013025716A (ja) * 2011-07-25 2013-02-04 Shinichi Ishida モジュールの構造解析を支援する装置及びプログラム
US9128807B2 (en) 2011-07-25 2015-09-08 Shinichi Ishida Module structural analysis supporting device and program

Similar Documents

Publication Publication Date Title
US8510650B2 (en) Multiple synchronized views for creating, analyzing, editing, and using mathematical formulas
US4860203A (en) Apparatus and method for extracting documentation text from a source code program
US7899836B2 (en) Apparatus and method for providing a condition builder interface
EP0643851B1 (en) Debugger program which includes correlation of computer program source code with optimized objet code
JP5775829B2 (ja) ソフトウェアの構造可視化プログラムおよびシステム
US7543286B2 (en) Method and system for mapping tags to classes using namespaces
US20040225964A1 (en) Method and system for storing pending changes to data
JP3262493B2 (ja) プログラムのデータ構造を表示する方法、及びデータ構造表示装置
JPH07281883A (ja) プログラム修正支援装置及び方法
JPH10105551A (ja) プロセッサを用いて第1グラフの単一化の一部として第1節と第2節を結合する方法
CN103049504A (zh) 基于源代码查询的半自动插桩方法
Bahlke et al. Context-sensitive editing with PSG environments
JP3516843B2 (ja) データベースアクセス方法
WO2020230119A1 (en) System and method of computer-assisted computer programming
US5649201A (en) Program analyzer to specify a start position of a function in a source program
US20090222447A1 (en) Data processing apparatus and data processing method
JPH06149551A (ja) プログラム仕様書自動生成方法
JP3240154B2 (ja) デ−タ入力方法
CN117215535A (zh) 一种基于建筑数据交换标准的语句处理方法、装置和设备
JP2728504B2 (ja) 入力命令文検査装置
JPH05274130A (ja) 情報処理装置および方法
Genevès et al. Equipping IDEs with XML-Path Reasoning Capabilities
JP2580336B2 (ja) 言語処理系における名前の属性検査処理方式
Inostroza et al. The Rascal Approach to Code in Prose, Computed Properties, and Language Extension
JPH03222038A (ja) プログラム作成処理システム

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20011016