JP3262493B2 - プログラムのデータ構造を表示する方法、及びデータ構造表示装置 - Google Patents
プログラムのデータ構造を表示する方法、及びデータ構造表示装置Info
- Publication number
- JP3262493B2 JP3262493B2 JP09074496A JP9074496A JP3262493B2 JP 3262493 B2 JP3262493 B2 JP 3262493B2 JP 09074496 A JP09074496 A JP 09074496A JP 9074496 A JP9074496 A JP 9074496A JP 3262493 B2 JP3262493 B2 JP 3262493B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- data item
- information
- area definition
- item
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
Description
【0001】
【産業上の利用分野】この発明は、例えば、プログラム
におけるデータ構造と記憶域上での配置を視覚的かつ、
直感的に理解することを支援するシステム及び方法に関
するものである。
におけるデータ構造と記憶域上での配置を視覚的かつ、
直感的に理解することを支援するシステム及び方法に関
するものである。
【0002】
【従来の技術】他人が書いた既存のプログラムを保守し
なければならない状況は、ソフトウェアのライフ・サイ
クルにおいては、非常に頻繁に発生し、ライフサイクル
全体のコストの80%は保守に費やされているという報
告もある。既存のプログラムの保守においては、使用さ
れているデータの構造を正確に把握することが重要であ
る。データの構造の不正確な把握によって保守作業が行
われた場合は、既に作成されているデータ領域へ意図し
ない新たなデータを上書きしまうことや、意図しないデ
ータ領域に書き込みを行ったために、後に書き込みを行
ったデータにより消滅することもある。また、金額等の
領域においては、データを誤って認識し(例えば、1桁
ずれた領域で再定義を行った場合、1,000,000円を10,00
0,000円と認識)、取り返しの付かない重大なシステム障
害や、運用上の障害に発展する可能性がある。
なければならない状況は、ソフトウェアのライフ・サイ
クルにおいては、非常に頻繁に発生し、ライフサイクル
全体のコストの80%は保守に費やされているという報
告もある。既存のプログラムの保守においては、使用さ
れているデータの構造を正確に把握することが重要であ
る。データの構造の不正確な把握によって保守作業が行
われた場合は、既に作成されているデータ領域へ意図し
ない新たなデータを上書きしまうことや、意図しないデ
ータ領域に書き込みを行ったために、後に書き込みを行
ったデータにより消滅することもある。また、金額等の
領域においては、データを誤って認識し(例えば、1桁
ずれた領域で再定義を行った場合、1,000,000円を10,00
0,000円と認識)、取り返しの付かない重大なシステム障
害や、運用上の障害に発展する可能性がある。
【0003】このため、プログラムの保守を行うに際し
ては、入念なテストが必要であり、テスト、コーディン
グミスの発見、コーディングの修正・コンパイル、再テ
ストという工程を正常稼働に至まで反復する必要があ
る。この一方、新規に作成するプログラムにおいてもデ
ータ領域を正しく定義する必要があり、これに失敗した
場合は、上記問題を生ずるため、既存のプログラムの保
守のみならず、新規にプログラムを開発する過程におい
ても、データの構造の正確な把握とデータ領域の正しい
定義は重要である。
ては、入念なテストが必要であり、テスト、コーディン
グミスの発見、コーディングの修正・コンパイル、再テ
ストという工程を正常稼働に至まで反復する必要があ
る。この一方、新規に作成するプログラムにおいてもデ
ータ領域を正しく定義する必要があり、これに失敗した
場合は、上記問題を生ずるため、既存のプログラムの保
守のみならず、新規にプログラムを開発する過程におい
ても、データの構造の正確な把握とデータ領域の正しい
定義は重要である。
【0004】また、PL/I、COBOL、 C、 Fortran、アセ
ンブラ、Pascal等の多くのプログラム言語において、一
旦定義したデータ領域を再定義するコーディング方法が
採用されている。このデータ領域を再定義するコーディ
ング方法は、共通の物理的領域をレコード長、レコード
属性等の異なる複数の異なるデータ項目で定義するた
め、データの構造を正確に把握することの難易度が増大
する傾向にある。また、データ領域を定義したコーディ
ングと、再定義したコーディングは、物理的に離れた位
置に表示されることが多く、データ領域を定義するデー
タ項目の数が増大するにつれ、離れた位置に存在するこ
ととなり、プログラムのコーディングを見るだけでデー
タの構造を正確に把握することの難易度が増大する傾向
はさらに強くなる。
ンブラ、Pascal等の多くのプログラム言語において、一
旦定義したデータ領域を再定義するコーディング方法が
採用されている。このデータ領域を再定義するコーディ
ング方法は、共通の物理的領域をレコード長、レコード
属性等の異なる複数の異なるデータ項目で定義するた
め、データの構造を正確に把握することの難易度が増大
する傾向にある。また、データ領域を定義したコーディ
ングと、再定義したコーディングは、物理的に離れた位
置に表示されることが多く、データ領域を定義するデー
タ項目の数が増大するにつれ、離れた位置に存在するこ
ととなり、プログラムのコーディングを見るだけでデー
タの構造を正確に把握することの難易度が増大する傾向
はさらに強くなる。
【0005】このため、プログラム開発、プログラム解
析を迅速かつ正確に行うための、プログラムにおけるデ
ータ構造と記憶域上での配置を視覚的かつ、直感的に理
解することを支援するシステム及び方法の出現が望まれ
てきた。
析を迅速かつ正確に行うための、プログラムにおけるデ
ータ構造と記憶域上での配置を視覚的かつ、直感的に理
解することを支援するシステム及び方法の出現が望まれ
てきた。
【0006】かかる従来の問題に関連して、M. A.Jack
sonは、Data-Structure Diagram (以下「Jacson Diagr
am」という)を用いた方式を提案している(J.Martin, C.
McClure, "Structutre Techniquies: The Basis for
CASE",PRENTICE HALL, Englewood Cliffs, N.J. 0763
2. Page 209.)。このJacson Diagramは、図 に示すよ
うに、データ領域のデータ構造を、各データ項目の階層
関係を示すhierarchy chartを用いて視覚的に表現して
いる。しかし、Jacson Diagramは、プログラムの設計時
に使用されるものであり、既存もしくはコーディング途
中のプログラムのデータ構造を理解しやすい形式で表現
するためのものではない。また、Jacson Diagramはデー
タ構造の階層関係を表現するのみであり、各データ項目
が記憶域上でどのような領域を占め、どのように重なり
合っているのかを表現することはできない。
sonは、Data-Structure Diagram (以下「Jacson Diagr
am」という)を用いた方式を提案している(J.Martin, C.
McClure, "Structutre Techniquies: The Basis for
CASE",PRENTICE HALL, Englewood Cliffs, N.J. 0763
2. Page 209.)。このJacson Diagramは、図 に示すよ
うに、データ領域のデータ構造を、各データ項目の階層
関係を示すhierarchy chartを用いて視覚的に表現して
いる。しかし、Jacson Diagramは、プログラムの設計時
に使用されるものであり、既存もしくはコーディング途
中のプログラムのデータ構造を理解しやすい形式で表現
するためのものではない。また、Jacson Diagramはデー
タ構造の階層関係を表現するのみであり、各データ項目
が記憶域上でどのような領域を占め、どのように重なり
合っているのかを表現することはできない。
【0007】また、IBM Technical Disclosure Bulleti
n、JA892-1240 MT, K. Fujii and H. Shinomiは、再定
義したデータ構造のコーディングを、一旦定義したデー
タ構造のコーディングの先頭位置と一致させ、その傍ら
に表示させるという方式を提案している。この方式は、
定義したデータ構造のコーディングと再定義したデータ
構造のコーディングを同時に認識することが可能となる
が、各データ項目の記憶域上の重なり合いを直感的に表
現することはできない。また、アライメントによる境界
合わせも表現できない。
n、JA892-1240 MT, K. Fujii and H. Shinomiは、再定
義したデータ構造のコーディングを、一旦定義したデー
タ構造のコーディングの先頭位置と一致させ、その傍ら
に表示させるという方式を提案している。この方式は、
定義したデータ構造のコーディングと再定義したデータ
構造のコーディングを同時に認識することが可能となる
が、各データ項目の記憶域上の重なり合いを直感的に表
現することはできない。また、アライメントによる境界
合わせも表現できない。
【0008】特開平7−230379はソースプログラ
ムのデータ構造をレコード階層構造に従った構造図で表
示する方式を提案している。この構造図により表示する
方式は、各データ項目が記憶域上でどのような領域を占
め、どのように重なり合っているのかを表現することは
できるが、定義領域と再定義領域の対応関係を明確に表
現することはできない。また、この方式は、メモリサイ
ズを箱の横方向の長さで表現しようとしているが、ユー
ザが開発・使用している一般的なプログラムでは、その
サイズがあまりにも大き過ぎて直感的に表現できるよう
に表示することは困難である。また、その表示の方式も
コーディングと近い表現ではなく、プログラマにとって
プログラムを変更するための資料としては抽象的であ
る。また、この方式は、図形的な表現を行っているた
め、GUI(グラフィカル・ユーザ・インターフェス)
を必要としている。
ムのデータ構造をレコード階層構造に従った構造図で表
示する方式を提案している。この構造図により表示する
方式は、各データ項目が記憶域上でどのような領域を占
め、どのように重なり合っているのかを表現することは
できるが、定義領域と再定義領域の対応関係を明確に表
現することはできない。また、この方式は、メモリサイ
ズを箱の横方向の長さで表現しようとしているが、ユー
ザが開発・使用している一般的なプログラムでは、その
サイズがあまりにも大き過ぎて直感的に表現できるよう
に表示することは困難である。また、その表示の方式も
コーディングと近い表現ではなく、プログラマにとって
プログラムを変更するための資料としては抽象的であ
る。また、この方式は、図形的な表現を行っているた
め、GUI(グラフィカル・ユーザ・インターフェス)
を必要としている。
【0009】
【発明が解決しようとする課題】この発明の目的は、プ
ログラム中で使用されているデータの構造の階層関係、
記憶域上での配置と占める範囲を視覚的に表示すること
により、プログラマがデータの構成を正確かつ効果的に
理解することを可能にするシステムを提供することにあ
る。
ログラム中で使用されているデータの構造の階層関係、
記憶域上での配置と占める範囲を視覚的に表示すること
により、プログラマがデータの構成を正確かつ効果的に
理解することを可能にするシステムを提供することにあ
る。
【0010】この発明の他の目的は、プログラムにおけ
るデータ構造と記憶域上での配置を視覚的かつ、直感的
に理解することを可能にするシステムを提供することに
ある。
るデータ構造と記憶域上での配置を視覚的かつ、直感的
に理解することを可能にするシステムを提供することに
ある。
【0011】この発明のさらに他の目的は、大きなデー
タ構造に対しても、レベル毎に詳細の表示を省略するこ
とにより、データのアライメントやデータ領域の重なり
等を一目で把握することができることを可能にするシス
テムを提供することにある。
タ構造に対しても、レベル毎に詳細の表示を省略するこ
とにより、データのアライメントやデータ領域の重なり
等を一目で把握することができることを可能にするシス
テムを提供することにある。
【0012】この発明のさらに他の目的は、プログラム
言語に依存せずあらゆる言語に対応することのできる表
示方式を提供することにある。
言語に依存せずあらゆる言語に対応することのできる表
示方式を提供することにある。
【0013】
【課題を解決するための手段】本発明によれば、プログ
ラムを入力とし、その中で使用されているデータの構造
の階層関係、記憶域上での配置と占める範囲を視覚的に
表示することにより、プログラマがデータの構造を正確
かつ効果的に理解することを可能にするシステム及び方
法が提供される。
ラムを入力とし、その中で使用されているデータの構造
の階層関係、記憶域上での配置と占める範囲を視覚的に
表示することにより、プログラマがデータの構造を正確
かつ効果的に理解することを可能にするシステム及び方
法が提供される。
【0014】本発明の1の態様においては、第1、第2
のデータ領域定義ブロックのデータ項目階層情報を解析
し、第1、第2データ領域定義ブロック中の階層関係の
関係付けを行うことによって、複数のデータ項目エント
リを含むデータ構造情報を作成する段階と、第2のデー
タ領域定義ブロックのデータ項目再定義情報を解析し、
第1データ領域定義ブロック中の被再定義データ項目
と、第2のデータ領域定義ブロックの再定義関係の関係
付けを行い、被再定義データ項目と、再定義データ項目
に対応するデータ項目エントリを更新する段階と、デー
タ項目長情報に基づいて、第1のデータ領域定義ブロッ
クに含まれるデータ項目の各々についてデータ項目オフ
セット情報を導出し、データ項目エントリに付加する段
階と、データ項目長情報とデータ項目再定義情報と被再
定義データ項目のオフセット情報に基づいて、第2のデ
ータ領域定義ブロックに含まれるデータ項目の各々につ
いてデータ項目オフセット情報を導出し、データ項目エ
ントリに付加する段階と、データ項目階層情報に従った
順序付けで、第1のデータ領域定義ブロックと、第2の
データ領域定義ブロックに含まれるデータ項目を同一オ
フセットのデータ項目オフセット情報を有しているデー
タ項目のデータ項目名から1行として表示されるべき行
データを作成する段階と、行データに含まれるデータ項
目名の各々に各データ項目名が表示される場所を示す位
置情報を関連付ける段階と、行データに含まれるデータ
項目名を位置情報によって指定された位置に表示する段
階とを含むコンピュータに記憶されたプログラムが使用
するデータのデータ構造をデータ項目名、データ項目階
層情報、データ項目属性情報、データ項目長情報を含む
複数のデータ項目によって定義する複数のデータ領域定
義ブロックを含み、少なくとも第1のデータ領域定義ブ
ロックに含まれる被再定義データ項目をデータ項目再定
義情報により再定義する第2のデータ領域定義ブロック
が存在するデータ領域定義部分のデータ構造を表示する
ためのコンピュータにおいて実行される方法が提供され
る。この「データ項目エントリ」は、本発明の好適な実
施例において後述する、図5の各データ項目に相当する
構造300に対応する概念であるが、このエントリにお
いて管理しているオフセット情報等が各データ項目固有
に関連付けられていれば、どのようなデータの持ち方を
行ってもよい。
のデータ領域定義ブロックのデータ項目階層情報を解析
し、第1、第2データ領域定義ブロック中の階層関係の
関係付けを行うことによって、複数のデータ項目エント
リを含むデータ構造情報を作成する段階と、第2のデー
タ領域定義ブロックのデータ項目再定義情報を解析し、
第1データ領域定義ブロック中の被再定義データ項目
と、第2のデータ領域定義ブロックの再定義関係の関係
付けを行い、被再定義データ項目と、再定義データ項目
に対応するデータ項目エントリを更新する段階と、デー
タ項目長情報に基づいて、第1のデータ領域定義ブロッ
クに含まれるデータ項目の各々についてデータ項目オフ
セット情報を導出し、データ項目エントリに付加する段
階と、データ項目長情報とデータ項目再定義情報と被再
定義データ項目のオフセット情報に基づいて、第2のデ
ータ領域定義ブロックに含まれるデータ項目の各々につ
いてデータ項目オフセット情報を導出し、データ項目エ
ントリに付加する段階と、データ項目階層情報に従った
順序付けで、第1のデータ領域定義ブロックと、第2の
データ領域定義ブロックに含まれるデータ項目を同一オ
フセットのデータ項目オフセット情報を有しているデー
タ項目のデータ項目名から1行として表示されるべき行
データを作成する段階と、行データに含まれるデータ項
目名の各々に各データ項目名が表示される場所を示す位
置情報を関連付ける段階と、行データに含まれるデータ
項目名を位置情報によって指定された位置に表示する段
階とを含むコンピュータに記憶されたプログラムが使用
するデータのデータ構造をデータ項目名、データ項目階
層情報、データ項目属性情報、データ項目長情報を含む
複数のデータ項目によって定義する複数のデータ領域定
義ブロックを含み、少なくとも第1のデータ領域定義ブ
ロックに含まれる被再定義データ項目をデータ項目再定
義情報により再定義する第2のデータ領域定義ブロック
が存在するデータ領域定義部分のデータ構造を表示する
ためのコンピュータにおいて実行される方法が提供され
る。この「データ項目エントリ」は、本発明の好適な実
施例において後述する、図5の各データ項目に相当する
構造300に対応する概念であるが、このエントリにお
いて管理しているオフセット情報等が各データ項目固有
に関連付けられていれば、どのようなデータの持ち方を
行ってもよい。
【0015】本発明の他の1態様においては、データ項
目長情報に基づいて、第1のデータ領域定義ブロックに
含まれるデータ項目の各々についてデータ項目オフセッ
ト情報を導出する段階と、データ項目長情報と被再定義
データ項目のオフセット情報に基づいて、第2のデータ
領域定義ブロックに含まれるデータ項目の各々について
データ項目オフセット情報を導出する段階と、データ項
目階層情報に従った順序付けで、第1のデータ領域定義
ブロックと、第2のデータ領域定義ブロックに含まれる
データ項目を同一オフセットのオフセット情報を有して
いるデータ項目のデータ項目名を1行として出力する段
階とを含むコンピュータに記憶されたプログラムが使用
するデータのデータ構造をデータ項目名、データ項目階
層情報、データ項目長情報を含む複数のデータ項目によ
って定義する複数のデータ領域定義ブロックを含み、少
なくとも第1のデータ領域定義ブロックに含まれる被再
定義データ項目を再定義する第2のデータ領域定義ブロ
ックが存在するデータ領域定義部分のデータ構造を表示
するためのコンピュータにおいて実行される方法が提供
される。なお、ここでいう「出力」とは、LCD、CR
T等の表示画面に表示させることや、プリンタによっ
て、用紙、帳票等の媒体に印刷すること、記憶装置にデ
ータを書き出すこと、シリアルポート、モデム、通信回
線等を介して、データを送信すること等を含む概念であ
る。
目長情報に基づいて、第1のデータ領域定義ブロックに
含まれるデータ項目の各々についてデータ項目オフセッ
ト情報を導出する段階と、データ項目長情報と被再定義
データ項目のオフセット情報に基づいて、第2のデータ
領域定義ブロックに含まれるデータ項目の各々について
データ項目オフセット情報を導出する段階と、データ項
目階層情報に従った順序付けで、第1のデータ領域定義
ブロックと、第2のデータ領域定義ブロックに含まれる
データ項目を同一オフセットのオフセット情報を有して
いるデータ項目のデータ項目名を1行として出力する段
階とを含むコンピュータに記憶されたプログラムが使用
するデータのデータ構造をデータ項目名、データ項目階
層情報、データ項目長情報を含む複数のデータ項目によ
って定義する複数のデータ領域定義ブロックを含み、少
なくとも第1のデータ領域定義ブロックに含まれる被再
定義データ項目を再定義する第2のデータ領域定義ブロ
ックが存在するデータ領域定義部分のデータ構造を表示
するためのコンピュータにおいて実行される方法が提供
される。なお、ここでいう「出力」とは、LCD、CR
T等の表示画面に表示させることや、プリンタによっ
て、用紙、帳票等の媒体に印刷すること、記憶装置にデ
ータを書き出すこと、シリアルポート、モデム、通信回
線等を介して、データを送信すること等を含む概念であ
る。
【0016】本発明の他の1態様においては、第1のデ
ータ領域定義ブロックのデータ項目階層情報を解析し、
第1データ領域定義ブロック中の階層関係の関係付けを
行う段階と、第2のデータ領域定義ブロックのデータ項
目階層情報を解析し、第2データ領域定義ブロック中の
階層関係の関係付けを行う段階と、第2のデータ領域定
義ブロックのデータ項目再定義情報を解析し、第1デー
タ領域定義ブロック中の被再定義データ項目と、第2の
データ領域定義ブロックの再定義関係の関係付けを行う
段階と、データ項目長情報に基づいて、第1のデータ領
域定義ブロックに含まれるデータ項目の各々についてデ
ータ項目オフセット情報を導出する段階と、データ項目
長情報とデータ項目再定義情報と被再定義データ項目の
オフセット情報に基づいて、第2のデータ領域定義ブロ
ックに含まれるデータ項目の各々についてデータ項目オ
フセット情報を導出する段階と、データ項目階層情報に
従った順序付けで、第1のデータ領域定義ブロックと、
第2のデータ領域定義ブロックに含まれるデータ項目を
同一オフセットのデータ項目オフセット情報を有してい
るデータ項目のデータ項目名を1行として表示する段階
と、同一オフセットのオフセット情報を有しているデー
タ項目のデータ項目オフセット情報をデータ項目名が表
示された行に関連付けて表示する段階と、を含むコンピ
ュータに記憶されたプログラムが使用するデータのデー
タ構造をデータ項目名、データ項目階層情報、データ項
目属性情報、データ項目長情報を含む複数のデータ項目
によって定義する複数のデータ領域定義ブロックを含
み、少なくとも第1のデータ領域定義ブロックに含まれ
る被再定義データ項目をデータ項目再定義情報により再
定義する第2のデータ領域定義ブロックが存在するデー
タ領域定義部分のデータ構造を表示するためのコンピュ
ータにおいて実行される方法が提供される。
ータ領域定義ブロックのデータ項目階層情報を解析し、
第1データ領域定義ブロック中の階層関係の関係付けを
行う段階と、第2のデータ領域定義ブロックのデータ項
目階層情報を解析し、第2データ領域定義ブロック中の
階層関係の関係付けを行う段階と、第2のデータ領域定
義ブロックのデータ項目再定義情報を解析し、第1デー
タ領域定義ブロック中の被再定義データ項目と、第2の
データ領域定義ブロックの再定義関係の関係付けを行う
段階と、データ項目長情報に基づいて、第1のデータ領
域定義ブロックに含まれるデータ項目の各々についてデ
ータ項目オフセット情報を導出する段階と、データ項目
長情報とデータ項目再定義情報と被再定義データ項目の
オフセット情報に基づいて、第2のデータ領域定義ブロ
ックに含まれるデータ項目の各々についてデータ項目オ
フセット情報を導出する段階と、データ項目階層情報に
従った順序付けで、第1のデータ領域定義ブロックと、
第2のデータ領域定義ブロックに含まれるデータ項目を
同一オフセットのデータ項目オフセット情報を有してい
るデータ項目のデータ項目名を1行として表示する段階
と、同一オフセットのオフセット情報を有しているデー
タ項目のデータ項目オフセット情報をデータ項目名が表
示された行に関連付けて表示する段階と、を含むコンピ
ュータに記憶されたプログラムが使用するデータのデー
タ構造をデータ項目名、データ項目階層情報、データ項
目属性情報、データ項目長情報を含む複数のデータ項目
によって定義する複数のデータ領域定義ブロックを含
み、少なくとも第1のデータ領域定義ブロックに含まれ
る被再定義データ項目をデータ項目再定義情報により再
定義する第2のデータ領域定義ブロックが存在するデー
タ領域定義部分のデータ構造を表示するためのコンピュ
ータにおいて実行される方法が提供される。
【0017】本発明の他の1態様においては、データ項
目名と、第1のデータ領域定義ブロックと第2のデータ
領域定義ブロックのデータ項目階層情報を解析すること
によって作成された階層関係情報と、データ項目再定義
情報を解析することによって作成された再定義関係情報
と、第1のデータ領域定義ブロックに含まれるデータ項
目の場合は、データ長によって計算され、第2のデータ
領域定義ブロックに含まれるデータ項目の場合は、デー
タ長と被再定義データ項目のオフセット情報に基づいて
計算されたデータ項目オフセット情報とを含む複数のデ
ータ項目エントリを作成する手段と、複数のデータ項目
エントリから、同一オフセットのオフセット情報を有す
るデータ項目エントリを特定する手段と、特定されたデ
ータ項目エントリのデータ項目名を階層関係情報に従っ
た順序付けで連結することによって、行データを作成す
る手段と、行データに含まれるデータ項目名の各々に各
データ項目名が表示される場所を示す位置情報を関連付
ける手段と、行データに含まれるデータ項目名を位置情
報によって指定された位置に表示する手段とを含むコン
ピュータに記憶されたプログラムが使用するデータのデ
ータ構造をデータ項目名、データ項目階層情報、データ
項目属性情報、データ項目長情報を含む複数のデータ項
目によって定義する複数のデータ領域定義ブロックを含
み、少なくとも第1のデータ領域定義ブロックに含まれ
る被再定義データ項目をデータ項目再定義情報により再
定義する第2のデータ領域定義ブロックが存在するデー
タ領域定義部分のデータ構造を表示する装置が提供され
る。
目名と、第1のデータ領域定義ブロックと第2のデータ
領域定義ブロックのデータ項目階層情報を解析すること
によって作成された階層関係情報と、データ項目再定義
情報を解析することによって作成された再定義関係情報
と、第1のデータ領域定義ブロックに含まれるデータ項
目の場合は、データ長によって計算され、第2のデータ
領域定義ブロックに含まれるデータ項目の場合は、デー
タ長と被再定義データ項目のオフセット情報に基づいて
計算されたデータ項目オフセット情報とを含む複数のデ
ータ項目エントリを作成する手段と、複数のデータ項目
エントリから、同一オフセットのオフセット情報を有す
るデータ項目エントリを特定する手段と、特定されたデ
ータ項目エントリのデータ項目名を階層関係情報に従っ
た順序付けで連結することによって、行データを作成す
る手段と、行データに含まれるデータ項目名の各々に各
データ項目名が表示される場所を示す位置情報を関連付
ける手段と、行データに含まれるデータ項目名を位置情
報によって指定された位置に表示する手段とを含むコン
ピュータに記憶されたプログラムが使用するデータのデ
ータ構造をデータ項目名、データ項目階層情報、データ
項目属性情報、データ項目長情報を含む複数のデータ項
目によって定義する複数のデータ領域定義ブロックを含
み、少なくとも第1のデータ領域定義ブロックに含まれ
る被再定義データ項目をデータ項目再定義情報により再
定義する第2のデータ領域定義ブロックが存在するデー
タ領域定義部分のデータ構造を表示する装置が提供され
る。
【0018】本発明の他の1態様においては、データ項
目長情報に基づいて、第1のデータ領域定義ブロックに
含まれるデータ項目の各々についてデータ項目オフセッ
ト情報を導出する手段と、データ項目長情報と被再定義
データ項目のオフセット情報に基づいて、第2のデータ
領域定義ブロックに含まれるデータ項目の各々について
データ項目オフセット情報を導出する手段と、データ項
目階層情報に従った順序付けで、第1のデータ領域定義
ブロックと、第2のデータ領域定義ブロックに含まれる
データ項目を同一オフセットのオフセット情報を有して
いるデータ項目のデータ項目名を1行として出力する手
段とを含むコンピュータに記憶されたプログラムが使用
するデータのデータ構造をデータ項目名、データ項目階
層情報、データ項目長情報を含む複数のデータ項目によ
って定義する複数のデータ領域定義ブロックを含み、少
なくとも第1のデータ領域定義ブロックに含まれる被再
定義データ項目を再定義する第2のデータ領域定義ブロ
ックが存在するデータ領域定義部分のデータ構造を表示
する装置が提供される。
目長情報に基づいて、第1のデータ領域定義ブロックに
含まれるデータ項目の各々についてデータ項目オフセッ
ト情報を導出する手段と、データ項目長情報と被再定義
データ項目のオフセット情報に基づいて、第2のデータ
領域定義ブロックに含まれるデータ項目の各々について
データ項目オフセット情報を導出する手段と、データ項
目階層情報に従った順序付けで、第1のデータ領域定義
ブロックと、第2のデータ領域定義ブロックに含まれる
データ項目を同一オフセットのオフセット情報を有して
いるデータ項目のデータ項目名を1行として出力する手
段とを含むコンピュータに記憶されたプログラムが使用
するデータのデータ構造をデータ項目名、データ項目階
層情報、データ項目長情報を含む複数のデータ項目によ
って定義する複数のデータ領域定義ブロックを含み、少
なくとも第1のデータ領域定義ブロックに含まれる被再
定義データ項目を再定義する第2のデータ領域定義ブロ
ックが存在するデータ領域定義部分のデータ構造を表示
する装置が提供される。
【0019】本発明の他の1態様においては、表示装置
にプログラムを表示する手段と、プログラム中のデータ
項目がユーザによって特定されたことを検出する手段
と、特定されたデータ項目のデータ構造を表示すること
のユーザからの指示を検出する段階と、ユーザからの指
示に応答して、データ項目名と、第1のデータ領域定義
ブロックと第2のデータ領域定義ブロックのデータ項目
階層情報を解析することによって作成された階層関係情
報と、データ項目再定義情報を解析することによって作
成された再定義関係情報と、第1のデータ領域定義ブロ
ックに含まれるデータ項目の場合は、データ長によって
計算され、第2のデータ領域定義ブロックに含まれるデ
ータ項目の場合は、データ長と被再定義データ項目のオ
フセット情報に基づいて計算されたデータ項目オフセッ
ト情報とを含む複数のデータ項目エントリを作成する手
段と、複数のデータ項目エントリから、同一オフセット
のオフセット情報を有するデータ項目エントリのデータ
項目名を階層関係情報に従った順序付けで連結すること
によって、オフセット情報を有する行データを作成する
手段と、行データに含まれるデータ項目名の各々に表示
装置において各データ項目名が表示される場所を示す位
置情報を関連付ける手段と、行データに含まれるデータ
項目名を表示装置の指定された位置に表示する手段と、
行データのオフセット情報を指定された位置に関連付け
て表示装置に表示する手段と、含むコンピュータに記憶
されたプログラムが使用するデータのデータ構造をデー
タ項目名、データ項目階層情報、データ項目属性情報、
データ項目長情報を含む複数のデータ項目によって定義
する複数のデータ領域定義ブロックを含み、少なくとも
第1のデータ領域定義ブロックに含まれる被再定義デー
タ項目をデータ項目再定義情報により再定義する第2の
データ領域定義ブロックが存在するデータ領域定義部分
のデータ構造を表示する装置が提供される。
にプログラムを表示する手段と、プログラム中のデータ
項目がユーザによって特定されたことを検出する手段
と、特定されたデータ項目のデータ構造を表示すること
のユーザからの指示を検出する段階と、ユーザからの指
示に応答して、データ項目名と、第1のデータ領域定義
ブロックと第2のデータ領域定義ブロックのデータ項目
階層情報を解析することによって作成された階層関係情
報と、データ項目再定義情報を解析することによって作
成された再定義関係情報と、第1のデータ領域定義ブロ
ックに含まれるデータ項目の場合は、データ長によって
計算され、第2のデータ領域定義ブロックに含まれるデ
ータ項目の場合は、データ長と被再定義データ項目のオ
フセット情報に基づいて計算されたデータ項目オフセッ
ト情報とを含む複数のデータ項目エントリを作成する手
段と、複数のデータ項目エントリから、同一オフセット
のオフセット情報を有するデータ項目エントリのデータ
項目名を階層関係情報に従った順序付けで連結すること
によって、オフセット情報を有する行データを作成する
手段と、行データに含まれるデータ項目名の各々に表示
装置において各データ項目名が表示される場所を示す位
置情報を関連付ける手段と、行データに含まれるデータ
項目名を表示装置の指定された位置に表示する手段と、
行データのオフセット情報を指定された位置に関連付け
て表示装置に表示する手段と、含むコンピュータに記憶
されたプログラムが使用するデータのデータ構造をデー
タ項目名、データ項目階層情報、データ項目属性情報、
データ項目長情報を含む複数のデータ項目によって定義
する複数のデータ領域定義ブロックを含み、少なくとも
第1のデータ領域定義ブロックに含まれる被再定義デー
タ項目をデータ項目再定義情報により再定義する第2の
データ領域定義ブロックが存在するデータ領域定義部分
のデータ構造を表示する装置が提供される。
【0020】本発明の他の1態様においては、データ項
目長情報に基づいて、第1のデータ領域定義ブロックに
含まれるデータ項目の各々についてデータ項目オフセッ
ト情報を導出することをコンピュータに指示するプログ
ラムコード手段と、データ項目長情報と被再定義データ
項目のオフセット情報に基づいて、第2のデータ領域定
義ブロックに含まれるデータ項目の各々についてデータ
項目オフセット情報を導出することをコンピュータに指
示するプログラムコード手段と、データ項目階層情報に
従った順序付けで、第1のデータ領域定義ブロックと、
第2のデータ領域定義ブロックに含まれるデータ項目を
同一オフセットのオフセット情報を有しているデータ項
目のデータ項目名を1行として表示することをコンピュ
ータに指示するプログラムコード手段とを含むコンピュ
ータに記憶されたプログラムが使用するデータのデータ
構造をデータ項目名、データ項目階層情報、データ項目
長情報を含む複数のデータ項目によって定義する複数の
データ領域定義ブロックを含み、少なくとも第1のデー
タ領域定義ブロックに含まれる被再定義データ項目を再
定義する第2のデータ領域定義ブロックが存在するデー
タ領域定義部分のデータ構造を表示するためのプログラ
ムを格納するコンピュータによって読み取り可能な記憶
媒体が提供される。この記憶媒体には、CD−ROM等
の持ち運び可能な記憶媒体や、ハードディスク等のコン
ピュータに接続された記憶媒体、また、ネットワークを
介してアクセス可能な記憶装置等を含む概念である。
目長情報に基づいて、第1のデータ領域定義ブロックに
含まれるデータ項目の各々についてデータ項目オフセッ
ト情報を導出することをコンピュータに指示するプログ
ラムコード手段と、データ項目長情報と被再定義データ
項目のオフセット情報に基づいて、第2のデータ領域定
義ブロックに含まれるデータ項目の各々についてデータ
項目オフセット情報を導出することをコンピュータに指
示するプログラムコード手段と、データ項目階層情報に
従った順序付けで、第1のデータ領域定義ブロックと、
第2のデータ領域定義ブロックに含まれるデータ項目を
同一オフセットのオフセット情報を有しているデータ項
目のデータ項目名を1行として表示することをコンピュ
ータに指示するプログラムコード手段とを含むコンピュ
ータに記憶されたプログラムが使用するデータのデータ
構造をデータ項目名、データ項目階層情報、データ項目
長情報を含む複数のデータ項目によって定義する複数の
データ領域定義ブロックを含み、少なくとも第1のデー
タ領域定義ブロックに含まれる被再定義データ項目を再
定義する第2のデータ領域定義ブロックが存在するデー
タ領域定義部分のデータ構造を表示するためのプログラ
ムを格納するコンピュータによって読み取り可能な記憶
媒体が提供される。この記憶媒体には、CD−ROM等
の持ち運び可能な記憶媒体や、ハードディスク等のコン
ピュータに接続された記憶媒体、また、ネットワークを
介してアクセス可能な記憶装置等を含む概念である。
【0021】
【実施例】以下、図面を参照して本発明の実施例を説明
する。図1を参照すると、本発明を実施するためのハー
ドウェア構成の概観図が示されている。システム100
は、中央処理装置(CPU)1とメモリ4とを含んでい
る。CPU1とメモリ4は、バス2を介して、補助記憶
装置としてのハードディスク装置13とを接続してあ
る。フロッピーディスク装置(またはMO、CD−RO
M等の駆動装置)20はフロッピーディスクコントロー
ラ19を介してバス2へ接続されている。
する。図1を参照すると、本発明を実施するためのハー
ドウェア構成の概観図が示されている。システム100
は、中央処理装置(CPU)1とメモリ4とを含んでい
る。CPU1とメモリ4は、バス2を介して、補助記憶
装置としてのハードディスク装置13とを接続してあ
る。フロッピーディスク装置(またはMO、CD−RO
M等の駆動装置)20はフロッピーディスクコントロー
ラ19を介してバス2へ接続されている。
【0022】フロッピーディスク装置(またはMO、C
D−ROM等の駆動装置)20には、フロッピーディス
ク(またはMO、CD−ROM等の媒体)が挿入され、
このフロッピーディスク等やハードディスク装置13、
ROM14には、オペレーティングシステムと協働して
CPU等に命令を与え、本発明を実施するためのコンピ
ュータ・プログラムのコードを記録することができ、メ
モリ4にロードされることによって実行される。このコ
ンピュータ・プログラムのコードは圧縮し、または、複
数に分割して、複数の媒体に記録することもできる。
D−ROM等の駆動装置)20には、フロッピーディス
ク(またはMO、CD−ROM等の媒体)が挿入され、
このフロッピーディスク等やハードディスク装置13、
ROM14には、オペレーティングシステムと協働して
CPU等に命令を与え、本発明を実施するためのコンピ
ュータ・プログラムのコードを記録することができ、メ
モリ4にロードされることによって実行される。このコ
ンピュータ・プログラムのコードは圧縮し、または、複
数に分割して、複数の媒体に記録することもできる。
【0023】システム100は更に、ユーザ・インター
フェース・ハードウェアを備えたシステムとすることが
でき、ユーザ・インターフェース・ハードウェアとして
は、例えば、入力をするためのポインティング・デバイ
ス(マウス、ジョイスティック等)7またはキーボード
6や、視覚データをユーザに提示するためのディスプレ
イ12がある。また、パラレルポート16を介してプリ
ンタを接続することや、シリアルポート15を介してモ
デムを接続することが可能であり、シリアルポート15
およびモデムまたは通信アダプタ18を介して他のコン
ピュータと通信を行うことが可能である。
フェース・ハードウェアを備えたシステムとすることが
でき、ユーザ・インターフェース・ハードウェアとして
は、例えば、入力をするためのポインティング・デバイ
ス(マウス、ジョイスティック等)7またはキーボード
6や、視覚データをユーザに提示するためのディスプレ
イ12がある。また、パラレルポート16を介してプリ
ンタを接続することや、シリアルポート15を介してモ
デムを接続することが可能であり、シリアルポート15
およびモデムまたは通信アダプタ18を介して他のコン
ピュータと通信を行うことが可能である。
【0024】従って、本発明は、通常のパーソナルコン
ピュータ(PC)、やワークステーションやこれらの組
合せによって実施可能であることを容易に理解できるで
あろう。ただし、これらの構成要素は例示であり、その
全ての構成成要素が本発明の必須の構成要素となるわけ
ではない。例えば、図1は、スタンド・アロン環境のシ
ステムを示しているが、クライアント/サーバ・システ
ムとして本発明を実現し、サーバ・マシンに本発明のシ
ステム100を配置し、クライアント・マシンは、サー
バ・マシンに対して、イーサネット、トークン・リング
などでLAN接続し、クライアント・マシン側には、プ
ログラムの入力のための入力装置と、結果を見るための
表示装置を配置してもよい。
ピュータ(PC)、やワークステーションやこれらの組
合せによって実施可能であることを容易に理解できるで
あろう。ただし、これらの構成要素は例示であり、その
全ての構成成要素が本発明の必須の構成要素となるわけ
ではない。例えば、図1は、スタンド・アロン環境のシ
ステムを示しているが、クライアント/サーバ・システ
ムとして本発明を実現し、サーバ・マシンに本発明のシ
ステム100を配置し、クライアント・マシンは、サー
バ・マシンに対して、イーサネット、トークン・リング
などでLAN接続し、クライアント・マシン側には、プ
ログラムの入力のための入力装置と、結果を見るための
表示装置を配置してもよい。
【0025】オペレーティング・システムとしては、W
indows(マイクロソフトの商標)、OS/2(I
BMの商標)、AIX(IBMの商標)上のX−WIN
DOWシステム(MITの商標)などの、標準でGUI
マルチウインドウ環境をサポートするものが望ましい
が、本発明は、PC−DOS(IBMの商標)、MS−
DOS(マイクロソフトの登録商標)などのキャラクタ
・ベース環境でも実現可能であり、特定のオペレーティ
ング・システム環境に限定されるものではない。
indows(マイクロソフトの商標)、OS/2(I
BMの商標)、AIX(IBMの商標)上のX−WIN
DOWシステム(MITの商標)などの、標準でGUI
マルチウインドウ環境をサポートするものが望ましい
が、本発明は、PC−DOS(IBMの商標)、MS−
DOS(マイクロソフトの登録商標)などのキャラクタ
・ベース環境でも実現可能であり、特定のオペレーティ
ング・システム環境に限定されるものではない。
【0026】次に、本発明を読者が理解できるように、
本発明で入力されるプログラムの実施例と、本発明でシ
ュルチョクされるデータ構造の実施例を説明する。図3
は、入力されるプログラムのデータ宣言部の1実施例で
あり、このプログラムで使用するデータのデータ領域を
定義している(データ領域定義部分)。ここでは、PL/I
を例としてコーディングされている。このデータ宣言部
は、本実施例においてはソースプログラム内に存在して
いるが、ソースプログラムと異なる場所にその一部また
は全部を格納し、コンパイル時にリンクするようにして
もよい。
本発明で入力されるプログラムの実施例と、本発明でシ
ュルチョクされるデータ構造の実施例を説明する。図3
は、入力されるプログラムのデータ宣言部の1実施例で
あり、このプログラムで使用するデータのデータ領域を
定義している(データ領域定義部分)。ここでは、PL/I
を例としてコーディングされている。このデータ宣言部
は、本実施例においてはソースプログラム内に存在して
いるが、ソースプログラムと異なる場所にその一部また
は全部を格納し、コンパイル時にリンクするようにして
もよい。
【0027】図3に示すコーディングのデータ構造にお
いて、DCL(デクレア文)125単位に区分けを行
い、各デクレアー文をブロックとして認識することとす
る。そして、ブロック131、133、135は夫々、
データ領域定義ブロックと呼ぶ。また、このデータ領域
定義ブロックは、共通のデータ領域を含む定義をしてい
る。データ領域定義ブロック131は、データ項目名1
29"TOP_REC"のデータ項目130を定義しており、こ
のデータ項目130は、その直ぐ下位の構造として"F
1"、"F2"、"F3"のデータ項目を持つ階層構造を持つこと
がデータ項目階層情報127(「01」,「02」等の
情報)によって定義されている。"F1"は、さらに"F1
1","F12","F13"の3個のデータ項目130から構成さ
れ、"F1"自体は10バイトを占める。"F3(5)"は、5個の要
素から構成される配列を示している。"F3"の一つの要素
は"F31"の1バイト、"F32"の5バイトの合計6バイトから
なり、5個の配列要素により"F3(5)"自体は30バイトを占
める。本願明細書において、このようにデータ項目のデ
ータ長を決定するための情報をデータ項目長情報137
と呼ぶこととし、"F2"で定義されている"CHAR(10)"の"1
0"のようなバイト数のデータだけではなく、"F3(5)"の
ような配列情報や、"FIXED BIN"のようなデータ項目の
属性情報をも包含する概念である。
いて、DCL(デクレア文)125単位に区分けを行
い、各デクレアー文をブロックとして認識することとす
る。そして、ブロック131、133、135は夫々、
データ領域定義ブロックと呼ぶ。また、このデータ領域
定義ブロックは、共通のデータ領域を含む定義をしてい
る。データ領域定義ブロック131は、データ項目名1
29"TOP_REC"のデータ項目130を定義しており、こ
のデータ項目130は、その直ぐ下位の構造として"F
1"、"F2"、"F3"のデータ項目を持つ階層構造を持つこと
がデータ項目階層情報127(「01」,「02」等の
情報)によって定義されている。"F1"は、さらに"F1
1","F12","F13"の3個のデータ項目130から構成さ
れ、"F1"自体は10バイトを占める。"F3(5)"は、5個の要
素から構成される配列を示している。"F3"の一つの要素
は"F31"の1バイト、"F32"の5バイトの合計6バイトから
なり、5個の配列要素により"F3(5)"自体は30バイトを占
める。本願明細書において、このようにデータ項目のデ
ータ長を決定するための情報をデータ項目長情報137
と呼ぶこととし、"F2"で定義されている"CHAR(10)"の"1
0"のようなバイト数のデータだけではなく、"F3(5)"の
ような配列情報や、"FIXED BIN"のようなデータ項目の
属性情報をも包含する概念である。
【0028】レコード"TOP_REC"は、0バイト目から50バ
イト目までの範囲を占めているが、全く同じ範囲をレコ
ード"REDEF_REC"が占めているのが表現されている。こ
れはデータの再定義もしくは別名と言われるものであ
る。このように、"REDEF_REC"のような再定義を行うデ
ータ項目を、再定義データ項目といい、"TOP_REC"のよ
うな再定義されるデータ項目を、被再定義データ項目と
呼ぶ。この再定義の関係は、"DEF"というデータ項目再
定義情報139によってシステムに認識される。データ
の再定義は、1レコード全体ごとだけてなく、大きな構
造の一部を再定義することもある。レコード"REDEF_F"
は"TOP_REC"の中の"F2"の部分のみを再定義している。
再定義が明確に表現されるということは、データに関す
る修正の及ぶレコードの範囲が明らかになることを意味
する。たとえば、この例の場合、"REDEF_F"中の"RF1"に
関するデータの修正が、"REDEF_REC"中の"R3"、そし
て、"TOP_REC"中の"F2"へも、影響が及ぶことを明確に
表現することになっている。
イト目までの範囲を占めているが、全く同じ範囲をレコ
ード"REDEF_REC"が占めているのが表現されている。こ
れはデータの再定義もしくは別名と言われるものであ
る。このように、"REDEF_REC"のような再定義を行うデ
ータ項目を、再定義データ項目といい、"TOP_REC"のよ
うな再定義されるデータ項目を、被再定義データ項目と
呼ぶ。この再定義の関係は、"DEF"というデータ項目再
定義情報139によってシステムに認識される。データ
の再定義は、1レコード全体ごとだけてなく、大きな構
造の一部を再定義することもある。レコード"REDEF_F"
は"TOP_REC"の中の"F2"の部分のみを再定義している。
再定義が明確に表現されるということは、データに関す
る修正の及ぶレコードの範囲が明らかになることを意味
する。たとえば、この例の場合、"REDEF_F"中の"RF1"に
関するデータの修正が、"REDEF_REC"中の"R3"、そし
て、"TOP_REC"中の"F2"へも、影響が及ぶことを明確に
表現することになっている。
【0029】本発明の好適な実施例においては、図3に
示したデータ領域定義部は、図4のように表現され、出
力される。左側にならんでいる数値151はバイト数で
表現されている。この数値は、各データ項目の先頭位置
(オフセット)に対応した数値である。横に引かれた点
線間は等バイト間隔ではない。点線153は各データ項
目の占める範囲の切れ目に引かれている。点線間を等間
隔のバイト数にして、鍵括弧"["155の縦の線の長さ
でデータの大きさを表現することも可能であるが、通
常、各データはかなりのサイズになり、表示装置に表示
しきれなくなることから、本発明の好適な実施例におい
ては点線によりデータの範囲の切れ目を明確にし、その
切れ目にバイト数(オフセット)を書くこととしてい
る。オフセットは、図13に示すように、<バイト数
>.<ビット数>とういう形式で表現することもでき
る。入力された各データ領域定義ブロック131,13
3,135は、その再定義の関係に基づいて、データ領
域定義ブロック単位に横方向に並べられている141,
143,145。この図に示すような本発明のデータ構
造の表示より、各データ項目に関して、各データの記憶
域上での占める範囲、データの階層関係、データの再定
義やレコード間でのデータの共有、および、配列とその
サイズが明確に表現されることとなる。
示したデータ領域定義部は、図4のように表現され、出
力される。左側にならんでいる数値151はバイト数で
表現されている。この数値は、各データ項目の先頭位置
(オフセット)に対応した数値である。横に引かれた点
線間は等バイト間隔ではない。点線153は各データ項
目の占める範囲の切れ目に引かれている。点線間を等間
隔のバイト数にして、鍵括弧"["155の縦の線の長さ
でデータの大きさを表現することも可能であるが、通
常、各データはかなりのサイズになり、表示装置に表示
しきれなくなることから、本発明の好適な実施例におい
ては点線によりデータの範囲の切れ目を明確にし、その
切れ目にバイト数(オフセット)を書くこととしてい
る。オフセットは、図13に示すように、<バイト数
>.<ビット数>とういう形式で表現することもでき
る。入力された各データ領域定義ブロック131,13
3,135は、その再定義の関係に基づいて、データ領
域定義ブロック単位に横方向に並べられている141,
143,145。この図に示すような本発明のデータ構
造の表示より、各データ項目に関して、各データの記憶
域上での占める範囲、データの階層関係、データの再定
義やレコード間でのデータの共有、および、配列とその
サイズが明確に表現されることとなる。
【0030】次に、図2のブロック図を参照して、本発
明のシステム構成について説明する。本発明の好適な実
施例において入力されるプログラム101は、ハードデ
ィスク、マグネットテープ(MT)、フロッピーディス
ク等の媒体に格納されているソースプログラムである
が、外部システムから通信回線を介して入力されとソー
スプログラムであってもよい。また、公知の手法によ
り、オブジェクトモジュールをソースプログラムに変換
することが可能であるため、入力されるプログラムは、
ソースプログラムに限定されず、オブジェクトモジュー
ルであってもよい。さらに、ソースプログラムまたはオ
ブジェクトモジュール全体だけではなく、データ構造を
定義している部分のみを抽出されたものを入力としても
よい。このデータ構造を定義している部分は、コンパイ
ル時または実行時にソースプログラムにリンクされるイ
ンクルード・ファイル(COBOLではコピー句と呼ば
れる等、種々の名称が付けられている)と呼ばれるデー
タ構造定義文の全体だけではなく、その一部であっても
よい。
明のシステム構成について説明する。本発明の好適な実
施例において入力されるプログラム101は、ハードデ
ィスク、マグネットテープ(MT)、フロッピーディス
ク等の媒体に格納されているソースプログラムである
が、外部システムから通信回線を介して入力されとソー
スプログラムであってもよい。また、公知の手法によ
り、オブジェクトモジュールをソースプログラムに変換
することが可能であるため、入力されるプログラムは、
ソースプログラムに限定されず、オブジェクトモジュー
ルであってもよい。さらに、ソースプログラムまたはオ
ブジェクトモジュール全体だけではなく、データ構造を
定義している部分のみを抽出されたものを入力としても
よい。このデータ構造を定義している部分は、コンパイ
ル時または実行時にソースプログラムにリンクされるイ
ンクルード・ファイル(COBOLではコピー句と呼ば
れる等、種々の名称が付けられている)と呼ばれるデー
タ構造定義文の全体だけではなく、その一部であっても
よい。
【0031】本発明の好適な実施例において、入力装置
111は、好適には、入力するプログラムを指定した
り、データ構造を表示するデータ項目を指定するキーボ
ード6またはマウス7等のポインティングデバイスで構
成される。また、入力制御部113は、好適には、マル
チウインドウ環境で構成され、プログラムまたはプログ
ラム中のデータ定義部分が入力装置111によって指定
されたことを検出し、その情報をデータ構造解析部10
3に伝達することができる。また、表示に関する制御情
報の入力(表示を個所限定するための入力、スクロール
を指示するための入力、後述する畳み込みのための入力
等)を検出して、その情報を表示制御部123に伝達す
ることができる。
111は、好適には、入力するプログラムを指定した
り、データ構造を表示するデータ項目を指定するキーボ
ード6またはマウス7等のポインティングデバイスで構
成される。また、入力制御部113は、好適には、マル
チウインドウ環境で構成され、プログラムまたはプログ
ラム中のデータ定義部分が入力装置111によって指定
されたことを検出し、その情報をデータ構造解析部10
3に伝達することができる。また、表示に関する制御情
報の入力(表示を個所限定するための入力、スクロール
を指示するための入力、後述する畳み込みのための入力
等)を検出して、その情報を表示制御部123に伝達す
ることができる。
【0032】データ構造解析部103は、プログラム1
01を入力とし、プログラム101の中の変数宣言か
ら、プログラム101に含まれるデータ項目のデータ構
造を解析する。本発明の好適な実施例においては、デー
タ構造解析部103は、プログラム101に含まれる全
てのデータ領域定義ブロックを抽出し、それに含まれる
各データ項目について階層関係についての情報(データ
構造情報105)を抽出・保存する。
01を入力とし、プログラム101の中の変数宣言か
ら、プログラム101に含まれるデータ項目のデータ構
造を解析する。本発明の好適な実施例においては、デー
タ構造解析部103は、プログラム101に含まれる全
てのデータ領域定義ブロックを抽出し、それに含まれる
各データ項目について階層関係についての情報(データ
構造情報105)を抽出・保存する。
【0033】本発明の好適な実施例における、データ構
造情報105の概念図を図5に示す。各データ項目13
0について、データ項目名310、データ項目のタイプ
等の属性情報320、オフセット情報330、データ項
目サイズ情報(データ項目長情報)340、再定義情報
350、上位へのポインタ360、下位へのポインタ3
70を管理するデータ項目のエントリ300が作成され
る。データ項目名310は、"REDEF_REC"等のデータ項
目の変数名をそのまま使用することも可能であるが、"G
002-001/RG001-001"等の入力されたデータ項目に夫々対
応する変換された名称を使用してもよい。各エントリ
が、入力されたプログラムのデータ項目を特定できれ
ば、データ項目名310は、数字や記号等で表現しても
よい。
造情報105の概念図を図5に示す。各データ項目13
0について、データ項目名310、データ項目のタイプ
等の属性情報320、オフセット情報330、データ項
目サイズ情報(データ項目長情報)340、再定義情報
350、上位へのポインタ360、下位へのポインタ3
70を管理するデータ項目のエントリ300が作成され
る。データ項目名310は、"REDEF_REC"等のデータ項
目の変数名をそのまま使用することも可能であるが、"G
002-001/RG001-001"等の入力されたデータ項目に夫々対
応する変換された名称を使用してもよい。各エントリ
が、入力されたプログラムのデータ項目を特定できれ
ば、データ項目名310は、数字や記号等で表現しても
よい。
【0034】データ項目のタイプ等の属性情報320に
は、そのデータ項目が文字項目か数字項目か等を判別す
るための情報が管理されている。図において、属性情報
320は、"FIXED BIN","CHAR(6)"等の情報を管理して
いるが、文字項目は"C"、数字項目は"N"等属性情報を象
徴したものを管理することもできる。オフセット情報3
30は、そのデータ項目が位置するデータ領域での開始
位置を示す。各データ項目についてのオフセットの算出
方法については後述する。データ項目サイズ情報340
は、各データ項目が占めるデータ領域上のデータ長を示
している。データ項目長情報(サイズ情報)340は、"C
HAR(6)"の"(6)"等だけでなく、"FIXEDBIN","BIT"等の
データ項目長の判断に使用される全ての情報を含む概念
である。図において、オフセット330、データ項目長
情報(サイズ情報)340はビットを単位に表現されてい
るが、バイト単位等の他の単位によって管理することも
できる。再定義情報350は、そのデータ項目が再定義
するデータ項目または、再定義されるデータ項目をポイ
ントする情報を管理する。本発明の好適な実施例におい
ては、再定義の関係を示す情報を各データ項目のエント
リ300において管理しているが、データ構造情報10
5とは別に管理することも可能である。
は、そのデータ項目が文字項目か数字項目か等を判別す
るための情報が管理されている。図において、属性情報
320は、"FIXED BIN","CHAR(6)"等の情報を管理して
いるが、文字項目は"C"、数字項目は"N"等属性情報を象
徴したものを管理することもできる。オフセット情報3
30は、そのデータ項目が位置するデータ領域での開始
位置を示す。各データ項目についてのオフセットの算出
方法については後述する。データ項目サイズ情報340
は、各データ項目が占めるデータ領域上のデータ長を示
している。データ項目長情報(サイズ情報)340は、"C
HAR(6)"の"(6)"等だけでなく、"FIXEDBIN","BIT"等の
データ項目長の判断に使用される全ての情報を含む概念
である。図において、オフセット330、データ項目長
情報(サイズ情報)340はビットを単位に表現されてい
るが、バイト単位等の他の単位によって管理することも
できる。再定義情報350は、そのデータ項目が再定義
するデータ項目または、再定義されるデータ項目をポイ
ントする情報を管理する。本発明の好適な実施例におい
ては、再定義の関係を示す情報を各データ項目のエント
リ300において管理しているが、データ構造情報10
5とは別に管理することも可能である。
【0035】上位へのポインタ360は、そのデータ項
目の上位に位置するデータ項目をポイントしている。ま
た、下位へのポインタ370は、そのデータ項目の下位
に位置するデータ項目をポイントしている。各エントリ
において"X"は、ポイントするものが無いことを示して
いる。下位へのポインタ370は、ポイントすべきデー
タ項目が複数であるため、リスト構造600を介して下
位のデータ項目のうち最初に出現するデータ項目に対応
するリスト構造をポイントしている。リスト構造600
は、そのリスト構造に対応するデータ項目をポイントす
る要素へのポインタ610と、次のデータ項目に対応す
るリスト構造をポイントする次へのポインタ630を有
している。但し、リスト構造600は、下位へのポイン
タ370が、下位のデータ項目をポイントするために必
須のものではなく、下位へのポインタ370のエントリ
において、ポイントすべきデータ項目を特定する複数の
情報を管理することもできる。この上位へのポインタ3
60、下位へのポインタ370は、その一方のみで、デ
ータ構造を定義できるため、各データ項目のエントリ3
00にいずれかが存在すればよい。
目の上位に位置するデータ項目をポイントしている。ま
た、下位へのポインタ370は、そのデータ項目の下位
に位置するデータ項目をポイントしている。各エントリ
において"X"は、ポイントするものが無いことを示して
いる。下位へのポインタ370は、ポイントすべきデー
タ項目が複数であるため、リスト構造600を介して下
位のデータ項目のうち最初に出現するデータ項目に対応
するリスト構造をポイントしている。リスト構造600
は、そのリスト構造に対応するデータ項目をポイントす
る要素へのポインタ610と、次のデータ項目に対応す
るリスト構造をポイントする次へのポインタ630を有
している。但し、リスト構造600は、下位へのポイン
タ370が、下位のデータ項目をポイントするために必
須のものではなく、下位へのポインタ370のエントリ
において、ポイントすべきデータ項目を特定する複数の
情報を管理することもできる。この上位へのポインタ3
60、下位へのポインタ370は、その一方のみで、デ
ータ構造を定義できるため、各データ項目のエントリ3
00にいずれかが存在すればよい。
【0036】なお、この属性情報320、データ項目サ
イズ情報340は、各データ項目のエントリ300に必
須のものではない。これは、データ項目エントリ300
は、入力されたプログラム101のデータ項目を特定す
るデータ項目名310というデータを有しているため、
入力されたプログラム101から、その属性情報を特定
することが可能だからであり、図2に示す表示制御部1
23または、レイアウト情報生成部107に直接これら
の情報を渡すことにより、図4に示すデータ構造の表示
を行うことができるためである。
イズ情報340は、各データ項目のエントリ300に必
須のものではない。これは、データ項目エントリ300
は、入力されたプログラム101のデータ項目を特定す
るデータ項目名310というデータを有しているため、
入力されたプログラム101から、その属性情報を特定
することが可能だからであり、図2に示す表示制御部1
23または、レイアウト情報生成部107に直接これら
の情報を渡すことにより、図4に示すデータ構造の表示
を行うことができるためである。
【0037】本発明の好適な実施例においては、このデ
ータ構造情報105は、レイアウト情報生成部107に
渡され、レイアウト情報109に加工される。この手順
については後に詳述する。レイアウト情報109は、そ
の概念図(図6)に示すように共通のオフセットに対し
て関連付けられている。この共通のオフセットを有する
データ項目の集合を行データと呼ぶ。行データにおいて
は、各データ項目は、データ領域定義ブロックの順番、
階層上位の順番で順序付けられている。各データ項目エ
ントリ211,213...には、データ項目名、デー
タ項目のタイプ等の属性情報、データ項目サイズ情報
(データ項目長情報)が管理されているが、データ構造
情報105と同様に、この属性情報、データ項目サイズ
情報は、各データ項目のエントリに必須のものではな
い。これは、データ項目エントリは、入力されたプログ
ラム101のデータ項目を特定するデータ項目名を有し
ているため、入力されたプログラム101または、デー
タ構造情報105から、その属性情報等を特定すること
が可能だからであり、図2に示す表示制御部123に直
接これらの情報を渡すことにより、図4に示すデータ構
造の表示を行うことができるためである。
ータ構造情報105は、レイアウト情報生成部107に
渡され、レイアウト情報109に加工される。この手順
については後に詳述する。レイアウト情報109は、そ
の概念図(図6)に示すように共通のオフセットに対し
て関連付けられている。この共通のオフセットを有する
データ項目の集合を行データと呼ぶ。行データにおいて
は、各データ項目は、データ領域定義ブロックの順番、
階層上位の順番で順序付けられている。各データ項目エ
ントリ211,213...には、データ項目名、デー
タ項目のタイプ等の属性情報、データ項目サイズ情報
(データ項目長情報)が管理されているが、データ構造
情報105と同様に、この属性情報、データ項目サイズ
情報は、各データ項目のエントリに必須のものではな
い。これは、データ項目エントリは、入力されたプログ
ラム101のデータ項目を特定するデータ項目名を有し
ているため、入力されたプログラム101または、デー
タ構造情報105から、その属性情報等を特定すること
が可能だからであり、図2に示す表示制御部123に直
接これらの情報を渡すことにより、図4に示すデータ構
造の表示を行うことができるためである。
【0038】表示制御部123は、レイアウト情報10
9の配置に基づき、表示装置121に表示を行う。図が
大きくなった時のスクロール、レベルを指定しての畳み
込み等の表示の変更は、入力装置111より縦横のスク
ロールや表示すべきレベルなどの情報が入力され表示制
御部123により処理され表示装置121に表示され
る。
9の配置に基づき、表示装置121に表示を行う。図が
大きくなった時のスクロール、レベルを指定しての畳み
込み等の表示の変更は、入力装置111より縦横のスク
ロールや表示すべきレベルなどの情報が入力され表示制
御部123により処理され表示装置121に表示され
る。
【0039】本発明の好適な実施例においては、本発明
の方法は、対話式に実行されるため、入力装置111、
入力制御部113、表示制御部123、表示装置121
が図に示されているが、これらの要素は必須の構成要素
ではない。例えば、本発明を自動サブミットによって実
行されたバッチジョブによって実施した場合、入力すべ
きプログラム、または、データ構造部は、JCL(ジョ
ブ・コントロール・ランゲージ)の指定により特定する
ことが可能であり、出力されるべきレイアウト情報は、
リモートのプリンタに出力することも、後に画面表示ま
たは、プリンタに出力するために、各種記憶媒体に格納
しておくことも可能であるからである。
の方法は、対話式に実行されるため、入力装置111、
入力制御部113、表示制御部123、表示装置121
が図に示されているが、これらの要素は必須の構成要素
ではない。例えば、本発明を自動サブミットによって実
行されたバッチジョブによって実施した場合、入力すべ
きプログラム、または、データ構造部は、JCL(ジョ
ブ・コントロール・ランゲージ)の指定により特定する
ことが可能であり、出力されるべきレイアウト情報は、
リモートのプリンタに出力することも、後に画面表示ま
たは、プリンタに出力するために、各種記憶媒体に格納
しておくことも可能であるからである。
【0040】図7から図10に、図4に対する表示上の
操作を示す。現実的なプログラムにおいては、通常デー
タ構造はかなりの大きさとなり、ディスプレイ等の表示
装置上に表示しようとしても、一画面には表示しきれな
いことが多い。そのような場合、図に対する縦横のスク
ロールも有効ではあるが、スクロールを行っても一画面
で見ることができる部分は図の一部分であるので、デー
タ構造全体の把握は難しい。そこで、データの階層関係
や再定義の構造を画面上に残したまま、構造の一部の表
示を省略(畳み込む)方式を提案する。畳み込みの方式に
は、 1.表示レベルを指定しての畳み込みと、 2.指定したデータの下位構造の畳み込みの2種類が考
えられる。
操作を示す。現実的なプログラムにおいては、通常デー
タ構造はかなりの大きさとなり、ディスプレイ等の表示
装置上に表示しようとしても、一画面には表示しきれな
いことが多い。そのような場合、図に対する縦横のスク
ロールも有効ではあるが、スクロールを行っても一画面
で見ることができる部分は図の一部分であるので、デー
タ構造全体の把握は難しい。そこで、データの階層関係
や再定義の構造を画面上に残したまま、構造の一部の表
示を省略(畳み込む)方式を提案する。畳み込みの方式に
は、 1.表示レベルを指定しての畳み込みと、 2.指定したデータの下位構造の畳み込みの2種類が考
えられる。
【0041】表示レベルを指定しての畳み込みは、最上
位から何レベルまでを指定し、その下位構造の表示を畳
み込む表示のしかたである。図7は最上位レベルのみ、
つまり表示レベル1の場合の表示である。図において、
表示省略された(畳み込まれた)下位構造は、図中の">>>
>>"で示されている。このレベルで表示すると、再定義
の関係のみが図上に表示されることになる。本発明の好
適な実施例においては、この畳み込みを示す記号は">>>
>>"によって表現されているが、畳み込みを行っている
ことを直感的に認識できればよく、種々の記号や文字に
よって代替可能である。
位から何レベルまでを指定し、その下位構造の表示を畳
み込む表示のしかたである。図7は最上位レベルのみ、
つまり表示レベル1の場合の表示である。図において、
表示省略された(畳み込まれた)下位構造は、図中の">>>
>>"で示されている。このレベルで表示すると、再定義
の関係のみが図上に表示されることになる。本発明の好
適な実施例においては、この畳み込みを示す記号は">>>
>>"によって表現されているが、畳み込みを行っている
ことを直感的に認識できればよく、種々の記号や文字に
よって代替可能である。
【0042】図7を見ると、図4と比較し縦横何れの方
向にも、図自体の大きさが縮小されているのが分かる。
これにより表示装置一画面に収まりきれない図も収まる
ようになる。図8は、レベルとして2を与えて、上位か
ら2レベルまでを表示した場合である。再定義された各
データ構造の上位2レベルまでが表示されているのが分
かる。図中"F1"の下位構造("F11","F12","F13")が畳み
込まれて">>>>>"として表示されている。"TOP_RECの構
造だけを見るとこの"F1"の構造に相当する"["は一行分
の長さにすることが出来るように思えるが、"TOP_REC"
を再定義している"REDEF_REC"の構造を見ると、"TOP_RE
C"の"F1"に相当する記憶域に、第2レベルとして"R1"と"
R2"が存在していることから、"F1"の範囲に相当する"["
は縦に2行になっている。このように、"再定義がある場
合、一つのレコードのみで畳み込みを判断せず、再定義
された全てのレコードの畳み込みの状況を参照しながら
畳み込む必要がある"。
向にも、図自体の大きさが縮小されているのが分かる。
これにより表示装置一画面に収まりきれない図も収まる
ようになる。図8は、レベルとして2を与えて、上位か
ら2レベルまでを表示した場合である。再定義された各
データ構造の上位2レベルまでが表示されているのが分
かる。図中"F1"の下位構造("F11","F12","F13")が畳み
込まれて">>>>>"として表示されている。"TOP_RECの構
造だけを見るとこの"F1"の構造に相当する"["は一行分
の長さにすることが出来るように思えるが、"TOP_REC"
を再定義している"REDEF_REC"の構造を見ると、"TOP_RE
C"の"F1"に相当する記憶域に、第2レベルとして"R1"と"
R2"が存在していることから、"F1"の範囲に相当する"["
は縦に2行になっている。このように、"再定義がある場
合、一つのレコードのみで畳み込みを判断せず、再定義
された全てのレコードの畳み込みの状況を参照しながら
畳み込む必要がある"。
【0043】"F1"に相当する記憶域(0バイトから10バイ
トの間)において、図4と図8を比較すると、畳み込み
によって図8では2バイト目と8バイト目を示す横方向の
点線が必要無くなっていることが分かる。以下50バイト
目までに、第3レベル以下の表示の省略の結果、合計4本
の点線が必要なくなっている。その分、図を表示するス
ペースが節約されていることになる。これによって、表
示装置一画面に収まりきれない図も収まるようになる。
トの間)において、図4と図8を比較すると、畳み込み
によって図8では2バイト目と8バイト目を示す横方向の
点線が必要無くなっていることが分かる。以下50バイト
目までに、第3レベル以下の表示の省略の結果、合計4本
の点線が必要なくなっている。その分、図を表示するス
ペースが節約されていることになる。これによって、表
示装置一画面に収まりきれない図も収まるようになる。
【0044】指定したデータの下位構造の畳み込みは、
表示装置に表示された図上でデータ項目を選択し、その
下位構造の表示を省略する方式であり、図4上で"REDEF
_F"を選択し、下位構造を畳み込んだ図が図8である。"
REDEF_F"の下の"RF1"、"RF2"、"RF3"の構造のみが、畳
み込まれている。この畳み込みの方式の場合も、上記し
たように、再定義されたデータ構造をも考慮する必要が
ある。図9の場合は、"REDEF_F"のレコードと同じ記憶
域を持つ"TOP_REC"中の"F2"と"REDDEF_REC"中の"R3"
が、その下位に構造をもたないデータ項目であったか
ら、畳み込みも単純であった。
表示装置に表示された図上でデータ項目を選択し、その
下位構造の表示を省略する方式であり、図4上で"REDEF
_F"を選択し、下位構造を畳み込んだ図が図8である。"
REDEF_F"の下の"RF1"、"RF2"、"RF3"の構造のみが、畳
み込まれている。この畳み込みの方式の場合も、上記し
たように、再定義されたデータ構造をも考慮する必要が
ある。図9の場合は、"REDEF_F"のレコードと同じ記憶
域を持つ"TOP_REC"中の"F2"と"REDDEF_REC"中の"R3"
が、その下位に構造をもたないデータ項目であったか
ら、畳み込みも単純であった。
【0045】それに対して、図10は、下位構造を畳み
込むために"TOP_REC"中の"F1"を選択した場合である
が、その同じ記憶域に相当する"REDEF_REC"中の部分(0
バイト目から10バイト目)を見ると、"R1"と"R2"という2
つのデータが存在しかつ、"R2"はまたその下位構造に"R
21"、"R22"を持つことが分かる。ここでは、"REDEF_RE
C"側の構造は畳み込みを指定されていないことから、畳
み込みは行わない。しかし、"TOP_REC"中の"F1"の下位
構造が畳み込まれることから、"F11"、"F12"、"F13"も
畳み込まれ、"F11"と"F12"の切れ目の2バイト目を表す
点線も必要なくなり、"REDEF_REC"中でも2バイト目は、
データ項目間の切れ目となっていないことから、2バイ
ト目の点線は消去可能になる。その結果、"TOP_REC"側
に対応して、"REDEF_REC"側でも、下位構造を畳み込む
ことは行われないが、当初2行分で表現されていた"R1"
を表現する"["が1行分の長さに変更されている。上記の
再定義を考慮した、畳み込みによる表示省略も本発明の
独自な点である。
込むために"TOP_REC"中の"F1"を選択した場合である
が、その同じ記憶域に相当する"REDEF_REC"中の部分(0
バイト目から10バイト目)を見ると、"R1"と"R2"という2
つのデータが存在しかつ、"R2"はまたその下位構造に"R
21"、"R22"を持つことが分かる。ここでは、"REDEF_RE
C"側の構造は畳み込みを指定されていないことから、畳
み込みは行わない。しかし、"TOP_REC"中の"F1"の下位
構造が畳み込まれることから、"F11"、"F12"、"F13"も
畳み込まれ、"F11"と"F12"の切れ目の2バイト目を表す
点線も必要なくなり、"REDEF_REC"中でも2バイト目は、
データ項目間の切れ目となっていないことから、2バイ
ト目の点線は消去可能になる。その結果、"TOP_REC"側
に対応して、"REDEF_REC"側でも、下位構造を畳み込む
ことは行われないが、当初2行分で表現されていた"R1"
を表現する"["が1行分の長さに変更されている。上記の
再定義を考慮した、畳み込みによる表示省略も本発明の
独自な点である。
【0046】図14は、本発明の好適な実施例におい
て、入力されたプログラムがデータ構造表示されるまで
の処理手順を示すフローチャートである。この処理手順
においては、まず、データ構造解析が行われる(ステッ
プ403)。このデータ構造解析の処理内容に関しては
後に詳述する。次に、ユーザはポインティングデバイス
7を使用して、データ構造を表示すべきデータ項目を特
定する(ステップ405)。このデータ項目の特定は、
キーボード6により、データ項目を直接入力することに
よって行われてもよい。但し、このデータ項目を選択す
るステップは、本発明の方法において必須の構成要素に
なるとは限らない。これは、ステップ403のデータ構
造解析部において、指定されたデータ項目のみを解析
し、データ構造情報105を作成することも可能である
し、入力されたプログラム101に存在する全てのデー
タ構造定義部分部についてデータ構造情報105を作成
することも可能だからである。
て、入力されたプログラムがデータ構造表示されるまで
の処理手順を示すフローチャートである。この処理手順
においては、まず、データ構造解析が行われる(ステッ
プ403)。このデータ構造解析の処理内容に関しては
後に詳述する。次に、ユーザはポインティングデバイス
7を使用して、データ構造を表示すべきデータ項目を特
定する(ステップ405)。このデータ項目の特定は、
キーボード6により、データ項目を直接入力することに
よって行われてもよい。但し、このデータ項目を選択す
るステップは、本発明の方法において必須の構成要素に
なるとは限らない。これは、ステップ403のデータ構
造解析部において、指定されたデータ項目のみを解析
し、データ構造情報105を作成することも可能である
し、入力されたプログラム101に存在する全てのデー
タ構造定義部分部についてデータ構造情報105を作成
することも可能だからである。
【0047】そして、ステップ407において、選択さ
れたデータ項目を含む再定義を考慮したデータ構造を発
見する。この、選択されたデータ項目を含む再定義を考
慮したデータ構造とは、選択されたデータ項目を含む共
通領域定義データブロック郡を意味する。例えば、図3
において、指定されたデータ項目がブロック135にお
けるRF2であった場合、このデータ項目を含むデータ領
域定義ブロック135と、データ領域定義ブロック13
5と共通のデータ領域を定義しているデータ領域定義ブ
ロック131と、データ領域定義ブロック131と共通
のデータ領域を定義しているデータ領域定義ブロック1
33のデータ構造が検出される。
れたデータ項目を含む再定義を考慮したデータ構造を発
見する。この、選択されたデータ項目を含む再定義を考
慮したデータ構造とは、選択されたデータ項目を含む共
通領域定義データブロック郡を意味する。例えば、図3
において、指定されたデータ項目がブロック135にお
けるRF2であった場合、このデータ項目を含むデータ領
域定義ブロック135と、データ領域定義ブロック13
5と共通のデータ領域を定義しているデータ領域定義ブ
ロック131と、データ領域定義ブロック131と共通
のデータ領域を定義しているデータ領域定義ブロック1
33のデータ構造が検出される。
【0048】その後、ステップ407で検出されたデー
タ構造についてレイアウト情報の生成処理が行われる
(ステップ409)。この処理内容に関しては後に詳述
する。そして、ステップ409で作成されたレイアウト
情報109、ステップ403で作成されたデータ構造情
報105に基づいて、データ構造図表示処理が行われる
(ステップ411)。この処理内容に関しても後に詳述
する。その後、別のデータ項目を含むデータ構造を表示
するか否か判断され(ステップ413)、表示すること
が求められている場合は、その別のデータ項目につい
て、405,407,409,411,413の各ステ
ップを実行する。本発明の好適な実施例においては、こ
のステップ413の判断は、他の共通領域定義ブロック
に属するデータ項目が指定されているか否かを判断して
いる。複数の共通領域定義ブロックのデータ構造を表示
必要性は必ずしもあるわけではないので、このステップ
も本発明の必須の構成要素ではない。
タ構造についてレイアウト情報の生成処理が行われる
(ステップ409)。この処理内容に関しては後に詳述
する。そして、ステップ409で作成されたレイアウト
情報109、ステップ403で作成されたデータ構造情
報105に基づいて、データ構造図表示処理が行われる
(ステップ411)。この処理内容に関しても後に詳述
する。その後、別のデータ項目を含むデータ構造を表示
するか否か判断され(ステップ413)、表示すること
が求められている場合は、その別のデータ項目につい
て、405,407,409,411,413の各ステ
ップを実行する。本発明の好適な実施例においては、こ
のステップ413の判断は、他の共通領域定義ブロック
に属するデータ項目が指定されているか否かを判断して
いる。複数の共通領域定義ブロックのデータ構造を表示
必要性は必ずしもあるわけではないので、このステップ
も本発明の必須の構成要素ではない。
【0049】図15は、本発明の好適な実施例におい
て、入力されたプログラムがデータ構造解析されるため
の処理手順を示すフローチャートである。この処理手順
においては、まず、対象プログラムの読み込みが行われ
る(ステップ423)。そして、データ領域定義ブロッ
クごとに階層関係と各データ項目が管理している情報を
解析する。具体的には、図5に示す、各データ項目のエ
ントリ300に、データ項目名310、データ項目のタ
イプ等の属性情報320、データ項目サイズ情報(デー
タ項目長情報)340、上位へのポインタ360、下位
へのポインタ370が出力される。そして、各データ項
目間の再定義関係を解析して、関係するものは連結す
る。具体的には、図5に示す、各データ項目のエントリ
300の再定義情報350に連結すべきデータ項目をポ
イントするための情報が入力される。このステップ42
5とステップ427をすべてのデータ項目について実行
する(ステップ429)。
て、入力されたプログラムがデータ構造解析されるため
の処理手順を示すフローチャートである。この処理手順
においては、まず、対象プログラムの読み込みが行われ
る(ステップ423)。そして、データ領域定義ブロッ
クごとに階層関係と各データ項目が管理している情報を
解析する。具体的には、図5に示す、各データ項目のエ
ントリ300に、データ項目名310、データ項目のタ
イプ等の属性情報320、データ項目サイズ情報(デー
タ項目長情報)340、上位へのポインタ360、下位
へのポインタ370が出力される。そして、各データ項
目間の再定義関係を解析して、関係するものは連結す
る。具体的には、図5に示す、各データ項目のエントリ
300の再定義情報350に連結すべきデータ項目をポ
イントするための情報が入力される。このステップ42
5とステップ427をすべてのデータ項目について実行
する(ステップ429)。
【0050】その後、ステップ431において、データ
領域定義ブロックごとに、先頭のデータ項目のオフセッ
トと、各データ項目のサイズから、各データ項目のオフ
セットを計算する。具体的には、図5に示す、各データ
項目のエントリ300のオフセット情報330に各デー
タ項目について計算されたオフセット値が保管される。
このオフセット値の計算は、まず各データ領域定義ブロ
ックに於ける先頭のデータ項目のオフセット情報が、そ
のデータ項目が再定義しているデータ項目のオフセット
値に設定される。再定義するデータ項目が無い場合は、
0が設定される。このオフセット値に、そのデータ領域
定義ブロックにおける階層に従って、下位のデータ項目
のサイズ(データ長)が加算される。このとき、22ビ
ットのサイズのデータ項目の場合、3バイト(8による
除算の商、小数点切り上げ)とするように、アライメン
トを考慮したオフセット値を算出することが望ましい。
領域定義ブロックごとに、先頭のデータ項目のオフセッ
トと、各データ項目のサイズから、各データ項目のオフ
セットを計算する。具体的には、図5に示す、各データ
項目のエントリ300のオフセット情報330に各デー
タ項目について計算されたオフセット値が保管される。
このオフセット値の計算は、まず各データ領域定義ブロ
ックに於ける先頭のデータ項目のオフセット情報が、そ
のデータ項目が再定義しているデータ項目のオフセット
値に設定される。再定義するデータ項目が無い場合は、
0が設定される。このオフセット値に、そのデータ領域
定義ブロックにおける階層に従って、下位のデータ項目
のサイズ(データ長)が加算される。このとき、22ビ
ットのサイズのデータ項目の場合、3バイト(8による
除算の商、小数点切り上げ)とするように、アライメン
トを考慮したオフセット値を算出することが望ましい。
【0051】図3のデータ領域定義ブロック133を用
いて具体的に説明すると、まず、データ領域定義ブロッ
ク133の先頭のデータ項目であるREDEF_RECには、TOP
_RECのオフセット値0がセットされる。次に、REDEF_RE
Cのデータ長が現在のオフセット値に加算される。REDEF
_RECのデータ長は、定義されていないため、0が現在の
オフセット値に加算される(データ長が定義されていな
いデータ項目に対しては、加算を行わない方法もあ
る)。次に、R1のオフセット値に現在のオフセット値
(0)がセットされる。そして、現在のオフセット値に
R1のデータ長(4)が加算される。そして、R2のオフセ
ット値に現在のオフセット値(4)がセットされ、現在
のオフセット値にR2のデータ長(0)が加算される。次
にR21のオフセット値に現在のオフセット値(4)がセ
ットされて、現在のオフセット値にR21のデータ長
(4)が加算される。次にR22のオフセット値に現在の
オフセット値(8)がセットされ、現在のオフセット値
にR22のデータ長(2)が加算される。次にR3のオフセ
ット値に現在のオフセット値(10)がセットされ、現
在のオフセット値にR3のデータ長(10)が加算され
る。次にR4のオフセット値に現在のオフセット値(2
0)がセットされる。
いて具体的に説明すると、まず、データ領域定義ブロッ
ク133の先頭のデータ項目であるREDEF_RECには、TOP
_RECのオフセット値0がセットされる。次に、REDEF_RE
Cのデータ長が現在のオフセット値に加算される。REDEF
_RECのデータ長は、定義されていないため、0が現在の
オフセット値に加算される(データ長が定義されていな
いデータ項目に対しては、加算を行わない方法もあ
る)。次に、R1のオフセット値に現在のオフセット値
(0)がセットされる。そして、現在のオフセット値に
R1のデータ長(4)が加算される。そして、R2のオフセ
ット値に現在のオフセット値(4)がセットされ、現在
のオフセット値にR2のデータ長(0)が加算される。次
にR21のオフセット値に現在のオフセット値(4)がセ
ットされて、現在のオフセット値にR21のデータ長
(4)が加算される。次にR22のオフセット値に現在の
オフセット値(8)がセットされ、現在のオフセット値
にR22のデータ長(2)が加算される。次にR3のオフセ
ット値に現在のオフセット値(10)がセットされ、現
在のオフセット値にR3のデータ長(10)が加算され
る。次にR4のオフセット値に現在のオフセット値(2
0)がセットされる。
【0052】図16は、本発明の好適な実施例におい
て、レイアウト情報を生成するための処理手順を示すフ
ローチャートである。手順は、ステップ441で開始
し、まず、最初のデータ領域定義ブロックの先頭に位置
するデータ項目(TOP_REC)がポイントされる(ステップ
444)。そして、現在のオフセット値に0がセットさ
れる(ステップ443)。次に、現在のオフセット値を有
しているデータ項目を現在のオフセット値の行データに
セットする(ステップ457)。なお、このステップ4
57の前に、条件式445,449,453が存在する
が、現在のオフセット値が0の場合は、これらの条件式
はすべてNOとなるのでここでは説明しない。
て、レイアウト情報を生成するための処理手順を示すフ
ローチャートである。手順は、ステップ441で開始
し、まず、最初のデータ領域定義ブロックの先頭に位置
するデータ項目(TOP_REC)がポイントされる(ステップ
444)。そして、現在のオフセット値に0がセットさ
れる(ステップ443)。次に、現在のオフセット値を有
しているデータ項目を現在のオフセット値の行データに
セットする(ステップ457)。なお、このステップ4
57の前に、条件式445,449,453が存在する
が、現在のオフセット値が0の場合は、これらの条件式
はすべてNOとなるのでここでは説明しない。
【0053】このステップ157におけるセットの順番
は、データの階層から決定されるが、具体的には、最初
のデータ領域定義ブロックの先頭に位置するデータ項目
(TOP_REC)が現在のオフセット値を有しているか否か判
断され、現在のオフセット値を有している場合は、行デ
ータに、そのデータ項目名等がセットされる。次に、こ
のデータ項目(TOP_REC)の下位のF1がポイントされ、こ
のデータ項目が現在のオフセット値を有しているか否か
判断され、現在のオフセット値を有している場合は、行
データに、そのデータ項目名等がセットされる。その
後、このデータ項目(F1)の下位のF11がポイントされ、
このデータ項目が現在のオフセット値を有しているか否
か判断され、現在のオフセット値を有している場合は、
行データに、そのデータ項目名等がセットされる。
は、データの階層から決定されるが、具体的には、最初
のデータ領域定義ブロックの先頭に位置するデータ項目
(TOP_REC)が現在のオフセット値を有しているか否か判
断され、現在のオフセット値を有している場合は、行デ
ータに、そのデータ項目名等がセットされる。次に、こ
のデータ項目(TOP_REC)の下位のF1がポイントされ、こ
のデータ項目が現在のオフセット値を有しているか否か
判断され、現在のオフセット値を有している場合は、行
データに、そのデータ項目名等がセットされる。その
後、このデータ項目(F1)の下位のF11がポイントされ、
このデータ項目が現在のオフセット値を有しているか否
か判断され、現在のオフセット値を有している場合は、
行データに、そのデータ項目名等がセットされる。
【0054】次に、このデータ項目(F11)の下位のデー
タ項目は存在しないため、リスト構造600の次へのポ
インタ情報630を参照し、次のデータ項目(F12)にポ
インタが渡される。そして次のデータ項目が現在のオフ
セット値を有しているか否か判断され、現在のオフセッ
ト値を有している場合は、行データに、そのデータ項目
名等がセットされる。その後、次のデータ項目(F13)に
ポインタが渡される。そして次のデータ項目が現在のオ
フセット値を有しているか否か判断され、現在のオフセ
ット値を有している場合は、行データに、そのデータ項
目名等がセットされる。そして、次のデータ項目(F13)
には次のデータ項目が存在していないため、上位のデー
タ項目(F1)の次のデータ項目(F2)にポインタが渡され
る。そして、同様にして、現在のオフセット値を有して
いるデータ項目が探索される。最初のデータ領域定義ブ
ロックがすべて探索されると、次のデータ領域定義ブロ
ックにおいても同様な探索が行われる。
タ項目は存在しないため、リスト構造600の次へのポ
インタ情報630を参照し、次のデータ項目(F12)にポ
インタが渡される。そして次のデータ項目が現在のオフ
セット値を有しているか否か判断され、現在のオフセッ
ト値を有している場合は、行データに、そのデータ項目
名等がセットされる。その後、次のデータ項目(F13)に
ポインタが渡される。そして次のデータ項目が現在のオ
フセット値を有しているか否か判断され、現在のオフセ
ット値を有している場合は、行データに、そのデータ項
目名等がセットされる。そして、次のデータ項目(F13)
には次のデータ項目が存在していないため、上位のデー
タ項目(F1)の次のデータ項目(F2)にポインタが渡され
る。そして、同様にして、現在のオフセット値を有して
いるデータ項目が探索される。最初のデータ領域定義ブ
ロックがすべて探索されると、次のデータ領域定義ブロ
ックにおいても同様な探索が行われる。
【0055】なお、次のデータ項目を探索する場合は、
現在のオフセット値と、データ項目のオフセット値を比
較し、データ項目のオフセット値が現在のオフセット値
以上である場合、ポインタを次のデータ項目に渡さず
に、上位のデータ項目にポインタを渡す方が、効率的に
探索を行うことができる。これは、次のデータ項目のオ
フセット値は現在のデータ項目のオフセット値よりも大
きな値を有しているためである。このような階層構造を
有しているデータの情報に関する方法は、人工知能等の
分野において種々提案されており、当業者に公知の技法
が多く存在する。また、データ項目を、データ領域定義
ブロック、階層情報の順番でソートしセットを行っても
よい。
現在のオフセット値と、データ項目のオフセット値を比
較し、データ項目のオフセット値が現在のオフセット値
以上である場合、ポインタを次のデータ項目に渡さず
に、上位のデータ項目にポインタを渡す方が、効率的に
探索を行うことができる。これは、次のデータ項目のオ
フセット値は現在のデータ項目のオフセット値よりも大
きな値を有しているためである。このような階層構造を
有しているデータの情報に関する方法は、人工知能等の
分野において種々提案されており、当業者に公知の技法
が多く存在する。また、データ項目を、データ領域定義
ブロック、階層情報の順番でソートしセットを行っても
よい。
【0056】次に、ステップ459において、現在のオ
フセット値の行データにセットされたデータ項目の中で
最小のデータ長を、現在のオフセット値に加算する。例
えば、現在のオフセット値が4の場合、そのデータ行に
セットされるデータ項目はF13,R2,R21であるが、この中
で最小サイズのデータ項目は、R21であり、そのデータ
長(4)が現在のオフセット値(4)に加算され、現在
のオフセット値は8に更新されることとなる。
フセット値の行データにセットされたデータ項目の中で
最小のデータ長を、現在のオフセット値に加算する。例
えば、現在のオフセット値が4の場合、そのデータ行に
セットされるデータ項目はF13,R2,R21であるが、この中
で最小サイズのデータ項目は、R21であり、そのデータ
長(4)が現在のオフセット値(4)に加算され、現在
のオフセット値は8に更新されることとなる。
【0057】この最小サイズのデータ項目が、被再定義
データ項目よりも短い長さのデータ項目であるか(ステ
ップ445)、配列の最下行のデータ項目であるか(ス
テップ449)、アライメントを必要とするデータ項目
か(ステップ453)が判断される。
データ項目よりも短い長さのデータ項目であるか(ステ
ップ445)、配列の最下行のデータ項目であるか(ス
テップ449)、アライメントを必要とするデータ項目
か(ステップ453)が判断される。
【0058】図11に示すように、最小サイズのデータ
項目が、被再定義データ項目よりも短い長さのデータ項
目である場合、その行には、配置すべきデータ項目が存
在しないと判断し、オフセットのみの行を作成する。
項目が、被再定義データ項目よりも短い長さのデータ項
目である場合、その行には、配置すべきデータ項目が存
在しないと判断し、オフセットのみの行を作成する。
【0059】図12に示しように、最小サイズのデータ
項目が、配列の最下行のデータ項目である場合、":"を
データ項目としてセットする(ステップ451)。
項目が、配列の最下行のデータ項目である場合、":"を
データ項目としてセットする(ステップ451)。
【0060】図13に示すように、最小サイズのデータ
項目が、アライメントを必要とするデータ項目である場
合、実際には表示されないダミーのデータ項目を行デー
タに挿入する(ステップ455)。
項目が、アライメントを必要とするデータ項目である場
合、実際には表示されないダミーのデータ項目を行デー
タに挿入する(ステップ455)。
【0061】そして、現在のオフセットがデータ構造の
最後の場合(ステップ461)、具体的には、現在のオ
フセットを有するデータ項目が存在しないと判断された
場合、データ構造図の最後のオフセットの数字と、点線
を描くための、データ項目の存在しない行データ303
を追加する。本発明の好適な実施例においては、この最
終の行データ303は最終であることを示すフラグを有
している。
最後の場合(ステップ461)、具体的には、現在のオ
フセットを有するデータ項目が存在しないと判断された
場合、データ構造図の最後のオフセットの数字と、点線
を描くための、データ項目の存在しない行データ303
を追加する。本発明の好適な実施例においては、この最
終の行データ303は最終であることを示すフラグを有
している。
【0062】図17は、本発明の好適な実施例におい
て、データ構造を表示するための処理手順を示すフロー
チャートである。手順はステップ471で開始し、まず
後述する画面上への図の描画処理が行われる(ステップ
473)。次に、入力装置からの畳み込み、終了等の入
力が有った場合、入力制御部は、その入力を検出し(ス
テップ475)、その入力が、表示レベル指定の畳み込
みの入力であるか、指定データの下位の畳み込みの入力
であるか、表示終了の入力であるかを判断する(ステッ
プ477,481,485)。表示レベル指定の畳み込
みの入力であった場合、全ての行データ中のデータ項目
をチェックして、指定されたレベルよりも深いデータ項
目に非表示フラグを立てる(ステップ479)。指定デ
ータ下位の畳み込みの入力であった場合、全ての行デー
タ中のデータ項目をチェックして、指定されたデータ項
目よりも下位のデータ項目に非表示フラグを立てる(ス
テップ483)。
て、データ構造を表示するための処理手順を示すフロー
チャートである。手順はステップ471で開始し、まず
後述する画面上への図の描画処理が行われる(ステップ
473)。次に、入力装置からの畳み込み、終了等の入
力が有った場合、入力制御部は、その入力を検出し(ス
テップ475)、その入力が、表示レベル指定の畳み込
みの入力であるか、指定データの下位の畳み込みの入力
であるか、表示終了の入力であるかを判断する(ステッ
プ477,481,485)。表示レベル指定の畳み込
みの入力であった場合、全ての行データ中のデータ項目
をチェックして、指定されたレベルよりも深いデータ項
目に非表示フラグを立てる(ステップ479)。指定デ
ータ下位の畳み込みの入力であった場合、全ての行デー
タ中のデータ項目をチェックして、指定されたデータ項
目よりも下位のデータ項目に非表示フラグを立てる(ス
テップ483)。
【0063】図18は、本発明の好適な実施例におい
て、データ構造を表示するための処理手順を示すフロー
チャートである。手順はステップ501で開始し、ま
ず、最初の行データがポイントされる(ステップ50
3)。次に、各行データごとに、含まれるデータ項目ご
とに非表示フラグを調べ、非表示フラグがあるものを除
外しながら各データ項目のX方向の座標を決定する(ス
テップ505)。行データに含まれるデータ項目の各々
に、そのデータ項目が表示されるべきX方向の座標値が
関連付けられる。X方向の座標値は、表示する各データ
項目名の最大長を設定しておき、その長さと、各階層間
に設けられる間隔が増分され、各データ項目に設定され
る。なお、再定義データ項目か否かの判断により、デー
タ項目間の間隔を変化させることも可能であり、また、
各階層のデータ項目名の内最大長さの項目名を検出し、
その長さをその階層に於けるX座標の増分に使用するこ
ともできる。そして、行データ中に非表示フラグの立っ
ていないデータ項目が存在する場合(ステップ507)
は、行に相当するY座標を1行分増加させる(ステップ
511)。
て、データ構造を表示するための処理手順を示すフロー
チャートである。手順はステップ501で開始し、ま
ず、最初の行データがポイントされる(ステップ50
3)。次に、各行データごとに、含まれるデータ項目ご
とに非表示フラグを調べ、非表示フラグがあるものを除
外しながら各データ項目のX方向の座標を決定する(ス
テップ505)。行データに含まれるデータ項目の各々
に、そのデータ項目が表示されるべきX方向の座標値が
関連付けられる。X方向の座標値は、表示する各データ
項目名の最大長を設定しておき、その長さと、各階層間
に設けられる間隔が増分され、各データ項目に設定され
る。なお、再定義データ項目か否かの判断により、デー
タ項目間の間隔を変化させることも可能であり、また、
各階層のデータ項目名の内最大長さの項目名を検出し、
その長さをその階層に於けるX座標の増分に使用するこ
ともできる。そして、行データ中に非表示フラグの立っ
ていないデータ項目が存在する場合(ステップ507)
は、行に相当するY座標を1行分増加させる(ステップ
511)。
【0064】上記の一連のステップが、全ての行データ
について行われた場合(ステップ511)、ポインタは
再び最初の行データに戻される(ステップ513)。そ
して、現在の行データのオフセット情報から、オフセッ
トの数値151(図4参照)を描画し、続いて同一のオ
フセットであることを示す点線157を描画する(ステ
ップ515)。次に、データ項目名、非表示の記号、ま
たは配列の記号を書き(ステップ517)、鍵括弧の縦
線を描画する(ステップ519)。図18に示すよう
に、これらの一連のステップを全ての行データについて
行う(ステップ521)。
について行われた場合(ステップ511)、ポインタは
再び最初の行データに戻される(ステップ513)。そ
して、現在の行データのオフセット情報から、オフセッ
トの数値151(図4参照)を描画し、続いて同一のオ
フセットであることを示す点線157を描画する(ステ
ップ515)。次に、データ項目名、非表示の記号、ま
たは配列の記号を書き(ステップ517)、鍵括弧の縦
線を描画する(ステップ519)。図18に示すよう
に、これらの一連のステップを全ての行データについて
行う(ステップ521)。
【0065】図19は、本発明をマルチウインドウ環境
で、対話式に実施したときの表示例を示す図である。本
発明の好適な実施例においては、本発明は、図に示すよ
うな、マルチウインドウ環境において実施される。ユー
ザは、図に示すように、表示装置の表示画面600のウ
インドウ601にプログラムを呼び出し、表示させる。
次にユーザは、マウスのポインタによりクリックするこ
とにより、データ項目の指定を行い、図2に示す入力制
御部113はこれを検出する。図19に示すように、入
力ファイル(NURYOKU)を読み込むためのデータ項目(TOP_
REC)は、プログラムの読み込み命令中で指定されてい
る。データ項目の指定はデータ領域定義部分に存在する
データ領域を選択してもよいが、通常複数のプログラム
で共通のデータ定義部分を重複して定義することを避け
るべく、テータ定義部分をプログラムと別のファイルに
格納している場合が多いため、プログラム中のデータ項
目を指定させ、そのデータ項目にリンクしているデータ
定義部分にアクセスする方が好ましい。
で、対話式に実施したときの表示例を示す図である。本
発明の好適な実施例においては、本発明は、図に示すよ
うな、マルチウインドウ環境において実施される。ユー
ザは、図に示すように、表示装置の表示画面600のウ
インドウ601にプログラムを呼び出し、表示させる。
次にユーザは、マウスのポインタによりクリックするこ
とにより、データ項目の指定を行い、図2に示す入力制
御部113はこれを検出する。図19に示すように、入
力ファイル(NURYOKU)を読み込むためのデータ項目(TOP_
REC)は、プログラムの読み込み命令中で指定されてい
る。データ項目の指定はデータ領域定義部分に存在する
データ領域を選択してもよいが、通常複数のプログラム
で共通のデータ定義部分を重複して定義することを避け
るべく、テータ定義部分をプログラムと別のファイルに
格納している場合が多いため、プログラム中のデータ項
目を指定させ、そのデータ項目にリンクしているデータ
定義部分にアクセスする方が好ましい。
【0066】このように、データ項目が指定された後、
ユーザは、そのデータ項目のデータ構造図を表示させる
命令を与える。具体的には、タイトルバーのプルダウン
メニューから、データ構造図の作成を指示する方法や、
特別のボタン型アイコンをクリックする方法、キーボー
ドからコマンドを入力する方法等がある。図2の入力制
御部113は、このユーザからの命令を検出して、本発
明の方法を実行する。そして、本発明の出力すべきデー
タが、表示制御部123に渡されると、表示制御部12
3は、新たなウインドウ603をオープンし、図19に
示す、データ構造図を表示する。
ユーザは、そのデータ項目のデータ構造図を表示させる
命令を与える。具体的には、タイトルバーのプルダウン
メニューから、データ構造図の作成を指示する方法や、
特別のボタン型アイコンをクリックする方法、キーボー
ドからコマンドを入力する方法等がある。図2の入力制
御部113は、このユーザからの命令を検出して、本発
明の方法を実行する。そして、本発明の出力すべきデー
タが、表示制御部123に渡されると、表示制御部12
3は、新たなウインドウ603をオープンし、図19に
示す、データ構造図を表示する。
【0067】このデータ構造図は、種々の機能を有して
いる。第1の機能としては、既に説明したように、この
データ構造図において、所望のデータ項目を畳み込む機
能である。この畳み込み機能はユーザがデータ項目指定
後、畳み込みを指示することにより、前述の図17で説
明した一連の手続きが実行される。
いる。第1の機能としては、既に説明したように、この
データ構造図において、所望のデータ項目を畳み込む機
能である。この畳み込み機能はユーザがデータ項目指定
後、畳み込みを指示することにより、前述の図17で説
明した一連の手続きが実行される。
【0068】第2の機能としては、図20は、本発明の
好適な実施例において採用される追加機能を説明する図
であが、図に示すように、このデータ構造図のデータ項
目をユーザがマウスポインタによってダブルクリックす
ると、新たなウインドウ610がオープンされる。この
ウインドウ610には、そのデータ項目の有している種
々の情報が表示される。
好適な実施例において採用される追加機能を説明する図
であが、図に示すように、このデータ構造図のデータ項
目をユーザがマウスポインタによってダブルクリックす
ると、新たなウインドウ610がオープンされる。この
ウインドウ610には、そのデータ項目の有している種
々の情報が表示される。
【0069】第3の機能としては、図20に示すウイン
ドウ610の情報に基づいて、プログラムを更新する機
能である。例えば、ユーザは、データ項目名F32をT32に
修正し、更新を指示する命令を行うと、表示制御部11
3はこれを検出し、変更データを基にプログラム101
を更新する。プログラム101を更新する。また、サイ
ズ621の変更等は、データ構造に影響を与えるため、
特別な処理が必要となる。例えば、F12のサイズ情報6
21が2バイトから4バイトに変更(例えば西暦の年の
情報を2バイトから4バイトにする)する場合、変更が
発生したデータ項目のオフセット情報が参照され、この
データ項目のオフセット情報以下の行データが探索され
る。そして、その行データに存在するデータ項目で、オ
フセット+サイズが、更新前のF12のオフセット+サイ
ズ以上のものが特定され、F12のサイズの変更量に従っ
て、更新される。ここの例ではR1のサイズが4バイトか
ら6バイトに更新される。
ドウ610の情報に基づいて、プログラムを更新する機
能である。例えば、ユーザは、データ項目名F32をT32に
修正し、更新を指示する命令を行うと、表示制御部11
3はこれを検出し、変更データを基にプログラム101
を更新する。プログラム101を更新する。また、サイ
ズ621の変更等は、データ構造に影響を与えるため、
特別な処理が必要となる。例えば、F12のサイズ情報6
21が2バイトから4バイトに変更(例えば西暦の年の
情報を2バイトから4バイトにする)する場合、変更が
発生したデータ項目のオフセット情報が参照され、この
データ項目のオフセット情報以下の行データが探索され
る。そして、その行データに存在するデータ項目で、オ
フセット+サイズが、更新前のF12のオフセット+サイ
ズ以上のものが特定され、F12のサイズの変更量に従っ
て、更新される。ここの例ではR1のサイズが4バイトか
ら6バイトに更新される。
【0070】第4の機能としては、ウインドウ603に
表示されている各データ項目は、各データ項目が有して
いる種々の属性によって色分けすることができる機能で
ある。色分けはデータ項目のタイプ623やレベル61
1等に従って行うことができる。
表示されている各データ項目は、各データ項目が有して
いる種々の属性によって色分けすることができる機能で
ある。色分けはデータ項目のタイプ623やレベル61
1等に従って行うことができる。
【0071】以上本願発明の好適な実施例について説明
を行ったが、本発明の技術思想はこの実施例に拘束され
るものではなく、設計段階で種々の変更が可能である。
例えば、本発明の好適な実施例においては、処理の効率
化のため、データ構造解析部103によってデータ構造
情報105を作成し、レイアウト情報生成部107によ
ってレイアウト情報109を作成している。しかし、こ
のように、1.プログラム101を入力し、データ構造
情報105を出力、2.データ構造情報105を入力
し、レイアウト情報109を出力、3.レイアウト情報
109を入力し、構造図を出力といったような3段階の
処理を行う必要性はない。
を行ったが、本発明の技術思想はこの実施例に拘束され
るものではなく、設計段階で種々の変更が可能である。
例えば、本発明の好適な実施例においては、処理の効率
化のため、データ構造解析部103によってデータ構造
情報105を作成し、レイアウト情報生成部107によ
ってレイアウト情報109を作成している。しかし、こ
のように、1.プログラム101を入力し、データ構造
情報105を出力、2.データ構造情報105を入力
し、レイアウト情報109を出力、3.レイアウト情報
109を入力し、構造図を出力といったような3段階の
処理を行う必要性はない。
【0072】このことは、以下に示すようなアルゴリズ
ムによって、実現可能であることは、当業者に容易に理
解できる事項であろう。
ムによって、実現可能であることは、当業者に容易に理
解できる事項であろう。
【0073】 1.レイアウト情報生成部メインルーチン void プログラムからレイアウト情報生成() { data = ファイルから一つ分のデータ項目宣言を返す(); while (data != NULL) { if (dataが再定義宣言の始まり) { layout = 再定義の元データ構造に関するレイアウト情報の 先頭の行ヘッドを返す(data); offset = 被再定義項目のオフセットを返す(data); y_level = そのレイアウト構造でその時もっとも横方向に 深いレベルを返す(layout); } else { layout = 新たに空のレイアウト情報を作り先頭の行ヘッド を返す(data); offset = 0; y_level = 0; } data = 下位構造中のデータ項目の追加(data, offset, y_level, layout, &size); } }
【0074】 2.指定されたデータ以下の下位構造中のデータ項目をレイアウト情報に追加 し、その構造の次のデータ項目宣言を返す(そのデータも含むサブツリー構造) データ項目宣言 下位構造中のデータ項目の追加(data, offset, y_level, layout, *size) { y_level = y_level + 1; pdata_st = データ項目構造を作り値をセットしポインタを 返す(data, offset, y_level, &data_size); そのオフセットの行データ項目リストの最後にデータ項目構造を 追加(pdata_st, offset, layout); if (dataが最下位のデータ項目なら) { if (offsetとdataのタイプを比較して境界合わせが必要) { そのオフセットの行中のオフセット値を更新する (offset, offset+不使用領域のサイズ,layout); そのオフセットの行ヘッド作り行ヘッド・リストに 挿入(offset, layout); 実際には表示されないダミーのデータ項目構造をリストに 追加(offset, y_level, layout); offset = offset + 不使用領域のサイズ; } if (offset+data_sizeの値を持つ行ヘッドが無い) { そのオフセットの行ヘッド作り行ヘッド・リストに 挿入(offset+data_size, layout); } } else { data_size = 0; next_data = ファイルから一つ分のデータ項目宣言を返す(); while (next_dataの宣言レベル > dataの宣言レベル) { next_data = 下位構造中のデータ項目の追加(next_data, offset, y_level, layout, &one_size); data_size = data_size + one_size; } } // endif if (dataが配列) { データ項目の横方向レベルに1を加えたレベルで':'をリストに 追加する(offset+data_size, y_level, layout); size = data_size * dataの配列の要素数; if (offset+sizeの行ヘッドがまだ存在していない) { そのオフセットの行ヘッド作り行ヘッド・リストに 挿入(offset, layout); } } else { size = data_size; } 最終的なサイズをdataのデータ項目情報に設定する(pdata_st, size); return (next_data); }
【0075】このアルゴリズムを、フローチャートを用
いて説明する。図21、22は、本発明の他の実施例に
おいて、入力されたプログラムがデータ構造表示される
までの処理手順を示すフローチャートである。図21に
示す処理は、データ定義ブロックの先頭に位置するデー
タ項目(図3、4の例だと、TOP_REC,REDEF_REC,REDEF_
Fの3つ)のオフセットとレベル(X座標または、階層
情報に対応)のイニシャライズ等を行っている。手順は
ステップ701で開始し、まず、ファイルから1データ
項目宣言が返される(ステップ703)。本発明の好適
な実施例においては、図3に示すデータ宣言が各行単位
に入力される。この入力された1行のデータ項目宣言が
データ定義ブロックの始まりであるか否かの判断がなさ
れる(ブロック705)。但し、1行単位ではなく、デ
リミタによって区切られる文字列の単位に入力してもよ
い。このときコメント行等はスキップされる。本発明の
好適な実施例においてはPL/Iでプログラムがコーデ
ィングされているためデクレア(DCL、DECLAR
E)等を含む文字列か否かによって容易に判断すること
ができる。
いて説明する。図21、22は、本発明の他の実施例に
おいて、入力されたプログラムがデータ構造表示される
までの処理手順を示すフローチャートである。図21に
示す処理は、データ定義ブロックの先頭に位置するデー
タ項目(図3、4の例だと、TOP_REC,REDEF_REC,REDEF_
Fの3つ)のオフセットとレベル(X座標または、階層
情報に対応)のイニシャライズ等を行っている。手順は
ステップ701で開始し、まず、ファイルから1データ
項目宣言が返される(ステップ703)。本発明の好適
な実施例においては、図3に示すデータ宣言が各行単位
に入力される。この入力された1行のデータ項目宣言が
データ定義ブロックの始まりであるか否かの判断がなさ
れる(ブロック705)。但し、1行単位ではなく、デ
リミタによって区切られる文字列の単位に入力してもよ
い。このときコメント行等はスキップされる。本発明の
好適な実施例においてはPL/Iでプログラムがコーデ
ィングされているためデクレア(DCL、DECLAR
E)等を含む文字列か否かによって容易に判断すること
ができる。
【0076】この入力された1行のデータ項目宣言がデ
ータ定義ブロックの始まりであると判断された場合は、
このデータ項目が他のデータ項目を再定義しているか否
かが判断される(ブロック707)。本発明の好適な実
施例においてはPL/Iでプログラムがコーディングさ
れているため再定義情報(DEF,DEFINED)等
を含む文字列か否かによって容易に判断することができ
る。
ータ定義ブロックの始まりであると判断された場合は、
このデータ項目が他のデータ項目を再定義しているか否
かが判断される(ブロック707)。本発明の好適な実
施例においてはPL/Iでプログラムがコーディングさ
れているため再定義情報(DEF,DEFINED)等
を含む文字列か否かによって容易に判断することができ
る。
【0077】データ項目が他のデータ項目を再定義して
いないと判断された場合は、そのデータ項目のデータ項
目名は、図4のTOP_RECのようにオフセット、レベルと
もにもっとも小さい値にセットされるため、ここのステ
ップではオフセット及びレベル値が初期設定される(ス
テップ709)。データ項目が他のデータ項目を再定義
していると判断された場合は、そのデータ項目のデータ
項目名は、図4のREDEF_FのようにREDEF_Fが再定義を行
っているF2と同一のオフセットに表示し、先行するデー
タ領域定義ブロック133よりも大きなレベル値で表示
する必要があるため、オフセットに、被再定義データ項
目のオフセット値が設定され、レベルには先行するデー
タ領域定義ブロックのレベル値の最大のものまたは、そ
の最大値に定数を加算した値が設定される(ステップ7
11)。そして、後述する下位構造中のデータ項目の追
加処理が行われる(ブロック713)。
いないと判断された場合は、そのデータ項目のデータ項
目名は、図4のTOP_RECのようにオフセット、レベルと
もにもっとも小さい値にセットされるため、ここのステ
ップではオフセット及びレベル値が初期設定される(ス
テップ709)。データ項目が他のデータ項目を再定義
していると判断された場合は、そのデータ項目のデータ
項目名は、図4のREDEF_FのようにREDEF_Fが再定義を行
っているF2と同一のオフセットに表示し、先行するデー
タ領域定義ブロック133よりも大きなレベル値で表示
する必要があるため、オフセットに、被再定義データ項
目のオフセット値が設定され、レベルには先行するデー
タ領域定義ブロックのレベル値の最大のものまたは、そ
の最大値に定数を加算した値が設定される(ステップ7
11)。そして、後述する下位構造中のデータ項目の追
加処理が行われる(ブロック713)。
【0078】図22は、この下位構造中のデータ項目の
追加処理を示す図である。手順はステップ731で開始
し、まず、レベルがインクリメントされる(ステップ7
33)。次に、メインルーチンから渡されたデータから
データ項目に相当するデータ項目構造を造り、オフセッ
トレベル等を設定する(ステップ735)。具体的に
は、各データ項目に図5のデータ項目に相当する構造3
00のエントリが作成される。次に行データのリストの
最後にデータ項目情報を追加する(ステップ737)。
次に、入力されたデータ項目宣言が最下位のものである
か否かが判断される(ステップ739)。入力されたデ
ータ項目宣言が最下位のものであるか否の判断は、その
データ項目宣言に、属性情報や、サイズ情報が含まれて
いるか否かによって容易に行うことができる。
追加処理を示す図である。手順はステップ731で開始
し、まず、レベルがインクリメントされる(ステップ7
33)。次に、メインルーチンから渡されたデータから
データ項目に相当するデータ項目構造を造り、オフセッ
トレベル等を設定する(ステップ735)。具体的に
は、各データ項目に図5のデータ項目に相当する構造3
00のエントリが作成される。次に行データのリストの
最後にデータ項目情報を追加する(ステップ737)。
次に、入力されたデータ項目宣言が最下位のものである
か否かが判断される(ステップ739)。入力されたデ
ータ項目宣言が最下位のものであるか否の判断は、その
データ項目宣言に、属性情報や、サイズ情報が含まれて
いるか否かによって容易に行うことができる。
【0079】そして、このデータ項目宣言が、最下位で
あった場合は、さらに、オフセットとデータサイズの関
係から、境界合わせの処理が必要であるか否かが判断さ
れる(ステップ747)。すなわち、図11乃至13で
説明したようにアライメントによる処理が必要であるか
否かが判断される。この処理が必要であると判断された
場合、そのオフセットの行のオフセット値を境界合わせ
を考慮したものに変更し(ステップ749)、表示され
ないダミーのデータ項目をリストに追加する(ステップ
751)すなわち、新たなデータ項目宣言の入力を行
う。そして、次の行データの開始を示す行ヘッドが存在
しない場合、行ヘッドの追加を行う(ステップ75
3)。
あった場合は、さらに、オフセットとデータサイズの関
係から、境界合わせの処理が必要であるか否かが判断さ
れる(ステップ747)。すなわち、図11乃至13で
説明したようにアライメントによる処理が必要であるか
否かが判断される。この処理が必要であると判断された
場合、そのオフセットの行のオフセット値を境界合わせ
を考慮したものに変更し(ステップ749)、表示され
ないダミーのデータ項目をリストに追加する(ステップ
751)すなわち、新たなデータ項目宣言の入力を行
う。そして、次の行データの開始を示す行ヘッドが存在
しない場合、行ヘッドの追加を行う(ステップ75
3)。
【0080】ステップ739において、データ項目宣言
が、最下位ではないと判断された場合は、行データに、
下位構造中のデータ項目の追加を再帰的に行い(ステッ
プ741)、上位のデータ項目のサイズ情報を下位のデ
ータ項目のサイズ情報の合算した値とするために、サイ
ズ情報の加算処理を行う(ステップ743)。これらの
処理を下位構造について繰り返す(ステップ745)。
が、最下位ではないと判断された場合は、行データに、
下位構造中のデータ項目の追加を再帰的に行い(ステッ
プ741)、上位のデータ項目のサイズ情報を下位のデ
ータ項目のサイズ情報の合算した値とするために、サイ
ズ情報の加算処理を行う(ステップ743)。これらの
処理を下位構造について繰り返す(ステップ745)。
【0081】次に、データ項目が配列のデータ項目か否
かの判断を行い(ステップ755)、配列であると判断
された場合は、":"に相当するデータ項目情報を行デー
タに追加し、サイズ情報を、その配列全体のサイズに設
定する(ステップ757)。また、行ヘッドが無けれ
ば、行ヘッドの追加処理を行う(ステップ759)。そ
して、最下位でないデータ項目のサイズ情報を下位のデ
ータ項目のサイズ情報の合算した値とするために、サイ
ズ情報の加算処理を行う(ステップ763)。
かの判断を行い(ステップ755)、配列であると判断
された場合は、":"に相当するデータ項目情報を行デー
タに追加し、サイズ情報を、その配列全体のサイズに設
定する(ステップ757)。また、行ヘッドが無けれ
ば、行ヘッドの追加処理を行う(ステップ759)。そ
して、最下位でないデータ項目のサイズ情報を下位のデ
ータ項目のサイズ情報の合算した値とするために、サイ
ズ情報の加算処理を行う(ステップ763)。
【0082】
【発明の効果】以上説明したように、この発明によれ
ば、各データ項目について、各データ項目の記憶域上で
の占める範囲、データ項目間の階層関係、データ項目の
再定義やデータ項目間でのデータ領域の共有、配列とそ
のサイズを明確に表現することができる。これによりプ
ログラマが正確なデータ構造を視覚的かつ、直感的に理
解することを可能にし、プログラムのコーディングミス
や、誤った保守作業の発生を軽減することが可能とな
る。また、本発明の1態様によれば、大きなデータ構造
に対しても、レベル毎に詳細の表示を省略することによ
り、データのアライメントやデータ領域の重なり等を一
目で把握することができるという効果が得られる。
ば、各データ項目について、各データ項目の記憶域上で
の占める範囲、データ項目間の階層関係、データ項目の
再定義やデータ項目間でのデータ領域の共有、配列とそ
のサイズを明確に表現することができる。これによりプ
ログラマが正確なデータ構造を視覚的かつ、直感的に理
解することを可能にし、プログラムのコーディングミス
や、誤った保守作業の発生を軽減することが可能とな
る。また、本発明の1態様によれば、大きなデータ構造
に対しても、レベル毎に詳細の表示を省略することによ
り、データのアライメントやデータ領域の重なり等を一
目で把握することができるという効果が得られる。
【0083】
【図1】 ハードウェア構成の一実施例を示すブロック
図である。
図である。
【図2】 本発明のシステム構成の一実施例を示す機能
ブロック図である。
ブロック図である。
【図3】 入力されるプログラムのデータ構造定義部分
を示す図である。
を示す図である。
【図4】 本発明の好適な実施例において出力された、
データ構造の表示を示す図である。
データ構造の表示を示す図である。
【図5】 本発明の好適な実施例におけるデータ構造情
報の概念図である。
報の概念図である。
【図6】 本発明の好適な実施例におけるレイアウト情
報の概念図である。
報の概念図である。
【図7】 本発明の好適な実施例において出力された、
データ構造の表示を示す図である。
データ構造の表示を示す図である。
【図8】 本発明の好適な実施例において出力された、
データ構造の表示を示す図である。
データ構造の表示を示す図である。
【図9】 本発明の好適な実施例において出力された、
データ構造の表示を示す図である。
データ構造の表示を示す図である。
【図10】 本発明の好適な実施例において出力され
た、データ構造の表示を示す図である。
た、データ構造の表示を示す図である。
【図11】 本発明の好適な実施例において表示される
データ構造の入力及び出力の例を示す図である。
データ構造の入力及び出力の例を示す図である。
【図12】 本発明の好適な実施例において表示される
データ構造の入力及び出力の例を示す図である。
データ構造の入力及び出力の例を示す図である。
【図13】 本発明の好適な実施例において表示される
データ構造の入力及び出力の例を示す図である。
データ構造の入力及び出力の例を示す図である。
【図14】 本発明の好適な実施例において、入力され
たプログラムがデータ構造表示されるまでの処理手順を
示すフローチャートである。
たプログラムがデータ構造表示されるまでの処理手順を
示すフローチャートである。
【図15】 本発明の好適な実施例において、入力され
たプログラムがデータ構造解析されるための処理手順を
示すフローチャートである。
たプログラムがデータ構造解析されるための処理手順を
示すフローチャートである。
【図16】 本発明の好適な実施例において、レイアウ
ト情報を生成するための処理手順を示すフローチャート
である。
ト情報を生成するための処理手順を示すフローチャート
である。
【図17】 本発明の好適な実施例において、データ構
造を表示するための処理手順を示すフローチャートであ
る。
造を表示するための処理手順を示すフローチャートであ
る。
【図18】 本発明の好適な実施例において、データ構
造を表示するための処理手順を示すフローチャートであ
る。
造を表示するための処理手順を示すフローチャートであ
る。
【図19】 本発明をマルチウインドウ環境で、対話式
に実施したときの表示例を示す図である。
に実施したときの表示例を示す図である。
【図20】 本発明の好適な実施例において採用される
追加機能を説明する図である。
追加機能を説明する図である。
【図21】 本発明の他の実施例において、入力された
プログラムがデータ構造表示されるまでの処理手順を示
すフローチャートである。
プログラムがデータ構造表示されるまでの処理手順を示
すフローチャートである。
【図22】 本発明の他の実施例において、入力された
プログラムがデータ構造表示されるまでの処理手順を示
すフローチャートである。
プログラムがデータ構造表示されるまでの処理手順を示
すフローチャートである。
【0083】
101 プログラム 103 データ構造解析部 105 データ構造情報 107 レイアウト情報生成部 109 レイアウト情報 111 入力装置 113 入力制御部 121 表示装置 123 表示装置制御部 125 デクレア文 127 データ項目階層情報 129 データ項目名 130 データ項目 139 データ項目再定義情報 300 データ項目エントリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 藤 井 邦 和 神奈川県大和市下鶴間1623番地14 日本 アイ・ビー・エム株式会社 大和事業所 内 (56)参考文献 特開 平1−273130(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/06,9/44
Claims (6)
- 【請求項1】 コンピュータに記憶されたプログラムが使
用するデータのデータ構造をデータ項目名、データ項目
階層情報、データ項目属性情報、データ項目長情報を含
む複数のデータ項目によって定義する複数のデータ領域
定義ブロックを含み、少なくとも第1のデータ領域定義
ブロックに含まれる被再定義データ項目をデータ項目再
定義情報により再定義する第2のデータ領域定義ブロッ
クが存在するデータ領域定義部分のデータ構造を表示す
るためのコンピュータにおいて実行される方法であっ
て、 (a) 前記第1のデータ領域定義ブロックのデータ項目階
層情報を解析し、前記第1データ領域定義ブロック中の
階層関係の関係付けを行い、前記第2のデータ領域定義
ブロックのデータ項目階層情報を解析し、前記第2デー
タ領域定義ブロック中の階層関係の関係付けを行うこと
によって、複数のデータ項目エントリを含むデータ構造
情報を作成する段階と、 (b) 前記第2のデータ領域定義ブロックのデータ項目再
定義情報を解析し、前記第1データ領域定義ブロック中
の被再定義データ項目と、前記第2のデータ領域定義ブ
ロックの再定義関係の関係付けを行い、前記被再定義デ
ータ項目と、前記再定義データ項目に対応するデータ項
目エントリを更新する段階と、 (c) 前記データ項目長情報に基づいて、前記第1のデー
タ領域定義ブロックに含まれるデータ項目の各々につい
てデータ項目オフセット情報を導出し、前記データ項目
エントリに付加する段階と、 (d) 前記データ項目長情報と前記データ項目再定義情報
と前記被再定義データ項目のオフセット情報に基づい
て、前記第2のデータ領域定義ブロックに含まれるデー
タ項目の各々についてデータ項目オフセット情報を導出
し、前記データ項目エントリに付加する段階と、 (e) 前記データ項目階層情報に従った順序付けで、前記
第1のデータ領域定義ブロックと、前記第2のデータ領
域定義ブロックに含まれるデータ項目を同一オフセット
のデータ項目オフセット情報を有しているデータ項目の
データ項目名から1行として表示されるべき行データを
作成する段階と、 (f) 前記行データに含まれるデータ項目名の各々に各デ
ータ項目名が表示される場所を示す位置情報を関連付け
る段階と、 (g) 前記行データに含まれるデータ項目名を前記位置情
報によって指定された位置に表示する段階と、 を含む方法。 - 【請求項2】コンピュータに記憶されたプログラムが使
用するデータのデータ構造をデータ項目名、データ項目
階層情報、データ項目長情報を含む複数のデータ項目に
よって定義する複数のデータ領域定義ブロックを含み、
少なくとも第1のデータ領域定義ブロックに含まれる被
再定義データ項目を再定義する第2のデータ領域定義ブ
ロックが存在するデータ領域定義部分のデータ構造を表
示するためのコンピュータにおいて実行される方法であ
って、 (a) 前記データ項目長情報に基づいて、前記第1のデー
タ領域定義ブロックに含まれるデータ項目の各々につい
てデータ項目オフセット情報を導出する段階と、 (b) 前記データ項目長情報と前記被再定義データ項目の
オフセット情報に基づいて、前記第2のデータ領域定義
ブロックに含まれるデータ項目の各々についてデータ項
目オフセット情報を導出する段階と、 (c) 前記データ項目階層情報に従った順序付けで、前記
第1のデータ領域定義ブロックと、前記第2のデータ領
域定義ブロックに含まれるデータ項目を同一オフセット
のオフセット情報を有しているデータ項目のデータ項目
名を1行として出力する段階と、 を含む方法。 - 【請求項3】コンピュータに記憶されたプログラムが使
用するデータのデータ構造をデータ項目名、データ項目
階層情報、データ項目属性情報、データ項目長情報を含
む複数のデータ項目によって定義する複数のデータ領域
定義ブロックを含み、少なくとも第1のデータ領域定義
ブロックに含まれる被再定義データ項目をデータ項目再
定義情報により再定義する第2のデータ領域定義ブロッ
クが存在するデータ領域定義部分のデータ構造を表示す
るためのコンピュータにおいて実行される方法であっ
て、 (a) 前記第1のデータ領域定義ブロックのデータ項目階
層情報を解析し、前記第1データ領域定義ブロック中の
階層関係の関係付けを行う段階と、 (b) 前記第2のデータ領域定義ブロックのデータ項目階
層情報を解析し、前記第2データ領域定義ブロック中の
階層関係の関係付けを行う段階と、 (c) 前記第2のデータ領域定義ブロックのデータ項目再
定義情報を解析し、前記第1データ領域定義ブロック中
の被再定義データ項目と、前記第2のデータ領域定義ブ
ロックの再定義関係の関係付けを行う段階と、 (d) 前記データ項目長情報に基づいて、前記第1のデー
タ領域定義ブロックに含まれるデータ項目の各々につい
てデータ項目オフセット情報を導出する段階と、 (e) 前記データ項目長情報と前記データ項目再定義情報
と前記被再定義データ項目のオフセット情報に基づい
て、前記第2のデータ領域定義ブロックに含まれるデー
タ項目の各々についてデータ項目オフセット情報を導出
する段階と、 (f) 前記データ項目階層情報に従った順序付けで、前記
第1のデータ領域定義ブロックと、前記第2のデータ領
域定義ブロックに含まれるデータ項目を同一オフセット
のデータ項目オフセット情報を有しているデータ項目の
データ項目名を1行として表示する段階と、 (g) 前記同一オフセットのオフセット情報を有している
データ項目のデータ項目オフセット情報を前記データ項
目名が表示された行に関連付けて表示する段階と、 を含む方法。 - 【請求項4】コンピュータに記憶されたプログラムが使
用するデータのデータ構造をデータ項目名、データ項目
階層情報、データ項目属性情報、データ項目長情報を含
む複数のデータ項目によって定義する複数のデータ領域
定義ブロックを含み、少なくとも第1のデータ領域定義
ブロックに含まれる被再定義データ項目をデータ項目再
定義情報により再定義する第2のデータ領域定義ブロッ
クが存在するデータ領域定義部分のデータ構造を表示す
る装置であって、 (a) 前記データ項目名と、前記第1のデータ領域定義ブ
ロックと前記第2のデータ領域定義ブロックのデータ項
目階層情報を解析することによって作成された階層関係
情報と、前記データ項目再定義情報を解析することによ
って作成された再定義関係情報と、前記第1のデータ領
域定義ブロックに含まれるデータ項目の場合は、前記デ
ータ長によって計算され、前記第2のデータ領域定義ブ
ロックに含まれるデータ項目の場合は、前記データ長と
前記被再定義データ項目のオフセット情報に基づいて計
算されたデータ項目オフセット情報とを含む複数のデー
タ項目エントリを作成する手段と、 (b) 前記複数のデータ項目エントリから、同一オフセッ
トのオフセット情報を有するデータ項目エントリを特定
する手段と、 (c) 前記特定されたデータ項目エントリのデータ項目名
を前記階層関係情報に従った順序付けで連結することに
よって、行データを作成する手段と、 (d) 前記行データに含まれるデータ項目名の各々に各デ
ータ項目名が表示される場所を示す位置情報を関連付け
る手段と、 (e) 前記行データに含まれるデータ項目名を前記位置情
報によって指定された位置に表示する手段と、 を含む装置。 - 【請求項5】コンピュータに記憶されたプログラムが使
用するデータのデータ構造をデータ項目名、データ項目
階層情報、データ項目長情報を含む複数のデータ項目に
よって定義する複数のデータ領域定義ブロックを含み、
少なくとも第1のデータ領域定義ブロックに含まれる被
再定義データ項目を再定義する第2のデータ領域定義ブ
ロックが存在するデータ領域定義部分のデータ構造を表
示する装置であって、 (a) 前記データ項目長情報に基づいて、前記第1のデー
タ領域定義ブロックに含まれるデータ項目の各々につい
てデータ項目オフセット情報を導出する手段と、 (b) 前記データ項目長情報と前記被再定義データ項目の
オフセット情報に基づいて、前記第2のデータ領域定義
ブロックに含まれるデータ項目の各々についてデータ項
目オフセット情報を導出する手段と、 (c) 前記データ項目階層情報に従った順序付けで、前記
第1のデータ領域定義ブロックと、前記第2のデータ領
域定義ブロックに含まれるデータ項目を同一オフセット
のオフセット情報を有しているデータ項目のデータ項目
名を1行として出力する手段と、 を含む装置。 - 【請求項6】表示装置と、入力装置を有しており、コン
ピュータに記憶されたプログラムが使用するデータのデ
ータ構造をデータ項目名、データ項目階層情報、データ
項目属性情報、データ項目長情報を含む複数のデータ項
目によって定義する複数のデータ領域定義ブロックを含
み、少なくとも第1のデータ領域定義ブロックに含まれ
る被再定義データ項目をデータ項目再定義情報により再
定義する第2のデータ領域定義ブロックが存在するデー
タ領域定義部分のデータ構造を表示する装置であって、 表示装置と、入力装置を有しており、コンピュータに記
憶されたプログラムが使用するデータのデータ構造をデ
ータ項目名、データ項目階層情報、データ項目属性情
報、データ項目長情報を含む複数のデータ項目によって
定義する複数のデータ領域定義ブロックを含み、少なく
とも第1のデータ領域定義ブロックに含まれる被再定義
データ項目をデータ項目再定義情報により再定義する第
2のデータ領域定義ブロックが存在するデータ領域定義
部分のデータ構造を表示する装置であって、 (a) 前記表示装置に前記プログラムを表示する手段と、 (b) 前記プログラム中のデータ項目がユーザによって特
定されたことを検出する手段と、 (c) 前記特定されたデータ項目のデータ構造を表示する
ことのユーザからの指示を検出する段階と、 (d) 前記ユーザからの指示に応答して、前記データ項目
名と、前記第1のデータ領域定義ブロックと前記第2の
データ領域定義ブロックのデータ項目階層情報を解析す
ることによって作成された階層関係情報と、前記データ
項目再定義情報を解析することによって作成された再定
義関係情報と、前記第1のデータ領域定義ブロックに含
まれるデータ項目の場合は、前記データ長によって計算
され、前記第2のデータ領域定義ブロックに含まれるデ
ータ項目の場合は、前記データ長と前記被再定義データ
項目のオフセット情報に基づいて計算されたデータ項目
オフセット情報とを含む複数のデータ項目エントリを作
成する手段と、 (e) 前記複数のデータ項目エントリから、同一オフセッ
トのオフセット情報を有するデータ項目エントリのデー
タ項目名を前記階層関係情報に従った順序付けで連結す
ることによって、オフセット情報を有する行データを作
成する手段と、 (f) 前記行データに含まれるデータ項目名の各々に前記
表示装置において各データ項目名が表示される場所を示
す位置情報を関連付ける手段と、 (g) 前記行データに含まれるデータ項目名を前記表示装
置の指定された位置に表示する手段と、 (h) 前記行データのオフセット情報を前記指定された位
置に関連付けて前記表示装置に表示する手段と、 を含む装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09074496A JP3262493B2 (ja) | 1996-04-12 | 1996-04-12 | プログラムのデータ構造を表示する方法、及びデータ構造表示装置 |
DE69705986T DE69705986D1 (de) | 1996-04-12 | 1997-03-21 | Gerät und Verfahren zum Anzeigen von Datenstrukturen mit dazugehörigem Aufzeichnungsträger |
EP97301960A EP0801347B1 (en) | 1996-04-12 | 1997-03-21 | A data structure display device and method and recording medium therefor |
US08/841,972 US5960433A (en) | 1996-04-12 | 1997-04-08 | Method for displaying a data structure of a program |
US08/824,690 US5923881A (en) | 1996-04-12 | 1997-04-08 | Data structure display system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09074496A JP3262493B2 (ja) | 1996-04-12 | 1996-04-12 | プログラムのデータ構造を表示する方法、及びデータ構造表示装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09282150A JPH09282150A (ja) | 1997-10-31 |
JP3262493B2 true JP3262493B2 (ja) | 2002-03-04 |
Family
ID=14007104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09074496A Expired - Fee Related JP3262493B2 (ja) | 1996-04-12 | 1996-04-12 | プログラムのデータ構造を表示する方法、及びデータ構造表示装置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US5923881A (ja) |
EP (1) | EP0801347B1 (ja) |
JP (1) | JP3262493B2 (ja) |
DE (1) | DE69705986D1 (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6961084B1 (en) * | 1999-10-07 | 2005-11-01 | Ess Technology, Inc. | Programmable image transform processor |
US20030018581A1 (en) * | 2000-02-16 | 2003-01-23 | Bratton Timothy R. | Delivering media data to portable computing devices |
US7010606B1 (en) | 2000-06-05 | 2006-03-07 | International Business Machines Corporation | System and method for caching a network connection |
US6745189B2 (en) | 2000-06-05 | 2004-06-01 | International Business Machines Corporation | System and method for enabling multi-indexing of objects |
US6823328B2 (en) | 2000-06-05 | 2004-11-23 | International Business Machines Corporation | System and method for enabling unified access to multiple types of data |
US6963876B2 (en) | 2000-06-05 | 2005-11-08 | International Business Machines Corporation | System and method for searching extended regular expressions |
US6611837B2 (en) | 2000-06-05 | 2003-08-26 | International Business Machines Corporation | System and method for managing hierarchical objects |
US6931393B1 (en) | 2000-06-05 | 2005-08-16 | International Business Machines Corporation | System and method for enabling statistical matching |
US7016917B2 (en) | 2000-06-05 | 2006-03-21 | International Business Machines Corporation | System and method for storing conceptual information |
GB0125165D0 (en) * | 2001-10-19 | 2001-12-12 | Ibm | A database and method of storing and retrieving data |
US7231633B2 (en) * | 2003-07-15 | 2007-06-12 | Lsi Corporation | Debugging with set verbosity level during read and analysis of executable code and associated comments while logging according to set verbosity level |
WO2006064563A1 (ja) * | 2004-12-16 | 2006-06-22 | Mitsubishi Denki Kabushiki Kaisha | データ変換装置及びデータ変換方法及びデータ変換システム |
US7730471B2 (en) * | 2005-07-13 | 2010-06-01 | Compuware Corporation | Method and system for processing COBOL language record description entries that specify data items that include a varying length characteristic and computer readable storage medium for storing instructions for performing the method |
US8079037B2 (en) | 2005-10-11 | 2011-12-13 | Knoa Software, Inc. | Generic, multi-instance method and GUI detection system for tracking and monitoring computer applications |
US20100242024A1 (en) * | 2009-03-17 | 2010-09-23 | Gonzales Ii Jesus Orlando | User Interface System and Method for Controlling Conversion of a Source Job Control Language File into a Test Job Control Language File |
JP5458065B2 (ja) | 2011-07-25 | 2014-04-02 | 伸一 石田 | モジュールの構造解析を支援する装置及びプログラム |
US9225772B2 (en) | 2011-09-26 | 2015-12-29 | Knoa Software, Inc. | Method, system and program product for allocation and/or prioritization of electronic resources |
WO2015015622A1 (ja) * | 2013-08-01 | 2015-02-05 | 松崎 務 | 装置及びプログラム |
KR101762283B1 (ko) * | 2016-05-19 | 2017-07-31 | 주식회사 티맥스 소프트 | 인코딩이 다른 환경에서 jcl을 재사용하기 위한 소트 스크립트 변환 방법 및 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0778717B2 (ja) * | 1989-01-19 | 1995-08-23 | シャープ株式会社 | データ表示装置 |
JP2830354B2 (ja) * | 1990-04-12 | 1998-12-02 | 株式会社日立製作所 | 同値データ項目検出方法 |
US5749082A (en) * | 1990-06-11 | 1998-05-05 | Ricoh Company, Ltd. | Display system including data display fields in which characters are scrolled |
US5175856A (en) * | 1990-06-11 | 1992-12-29 | Supercomputer Systems Limited Partnership | Computer with integrated hierarchical representation (ihr) of program wherein ihr file is available for debugging and optimizing during target execution |
US5506985A (en) * | 1991-10-17 | 1996-04-09 | Ricoh Company, Ltd. | Method and apparatus for format conversion of a hierarchically structured page description language document |
US5504891A (en) * | 1991-10-17 | 1996-04-02 | Ricoh Company, Ltd. | Method and apparatus for format conversion of a hierarchically structured page description language document |
US5806072A (en) * | 1991-12-20 | 1998-09-08 | Olympus Optical Co., Ltd. | Electronic imaging apparatus having hierarchical image data storage structure for computer-compatible image data management |
JPH064277A (ja) * | 1992-06-23 | 1994-01-14 | Hitachi Ltd | Gui制御プログラム自動生成方法および装置 |
JP3175399B2 (ja) * | 1993-05-18 | 2001-06-11 | セイコーエプソン株式会社 | カードデータ管理装置 |
US5432942A (en) * | 1993-06-10 | 1995-07-11 | The United States Of America As Represented By The Secretary Of The Navy | Data structure extraction, conversion and display tool |
JPH07141168A (ja) * | 1993-11-19 | 1995-06-02 | Hitachi Ltd | 階層仕様情報作成方法 |
JPH07230379A (ja) * | 1994-02-18 | 1995-08-29 | Fujitsu Ltd | プログラム構造表示方法およびプログラム構造表示装置 |
JPH07311677A (ja) * | 1994-05-18 | 1995-11-28 | Nec Corp | 操作処理装置 |
US5657460A (en) * | 1995-04-11 | 1997-08-12 | Data View, Inc. | System and method for storing and displaying data |
JP3020849B2 (ja) * | 1995-09-28 | 2000-03-15 | シャープ株式会社 | データ検索装置 |
-
1996
- 1996-04-12 JP JP09074496A patent/JP3262493B2/ja not_active Expired - Fee Related
-
1997
- 1997-03-21 DE DE69705986T patent/DE69705986D1/de not_active Expired - Lifetime
- 1997-03-21 EP EP97301960A patent/EP0801347B1/en not_active Expired - Lifetime
- 1997-04-08 US US08/824,690 patent/US5923881A/en not_active Expired - Fee Related
- 1997-04-08 US US08/841,972 patent/US5960433A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5923881A (en) | 1999-07-13 |
US5960433A (en) | 1999-09-28 |
JPH09282150A (ja) | 1997-10-31 |
DE69705986D1 (de) | 2001-09-13 |
EP0801347B1 (en) | 2001-08-08 |
EP0801347A1 (en) | 1997-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3262493B2 (ja) | プログラムのデータ構造を表示する方法、及びデータ構造表示装置 | |
US6237004B1 (en) | System and method for displaying data using graphical user interface control elements | |
US5673390A (en) | Method and system for displaying error messages | |
JP3136035B2 (ja) | データベースシステム用インターフェースのための自動レイアウト・ジェネレータ及びその生成方法 | |
JP4140980B2 (ja) | プログラムツリーを表示するコンピュータプログラムの構文依存しない表示方法 | |
US8386919B2 (en) | System for displaying an annotated programming file | |
US7490287B2 (en) | Time series data analysis apparatus and method | |
US6670973B1 (en) | System and method for representing the information technology infrastructure of an organization | |
US7644370B2 (en) | Method of componentisation of a graphically defined formula | |
US20030090473A1 (en) | Multiple screen automatic programming interface | |
US20070168909A1 (en) | System And Method For Context-Sensitive Help In A Design Environment | |
US6951010B2 (en) | Program specification generating system | |
WO1995034038A1 (en) | Method and apparatus for context sensitive text displays | |
US5469539A (en) | Method for abstracting/detailing structuring elements of system specification information | |
JP4921103B2 (ja) | ブール式を可視化するための装置、方法およびプログラム | |
US7203925B1 (en) | Graphical compiler | |
EP0675453B1 (en) | Method and apparatus for generating a hardware configuration display | |
JP2010039751A (ja) | ソフトウェア開発システム | |
US20060095406A1 (en) | Displaying explain data for a SQL query of a database | |
JPH0317741A (ja) | プログラム作成支援装置 | |
JP3722854B2 (ja) | データ編集装置 | |
CN115712426A (zh) | 一种实时修改船舶监测报警系统图形界面的方法及系统 | |
Yuen et al. | Assembly language software development system | |
JP2662533B2 (ja) | ロジック・アナライザ | |
Kolb et al. | Programming environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |