JPH077347B2 - 言語処理系における擬似入出力処理方式 - Google Patents

言語処理系における擬似入出力処理方式

Info

Publication number
JPH077347B2
JPH077347B2 JP62224264A JP22426487A JPH077347B2 JP H077347 B2 JPH077347 B2 JP H077347B2 JP 62224264 A JP62224264 A JP 62224264A JP 22426487 A JP22426487 A JP 22426487A JP H077347 B2 JPH077347 B2 JP H077347B2
Authority
JP
Japan
Prior art keywords
pseudo
input
output
real
library
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP62224264A
Other languages
English (en)
Other versions
JPS6466750A (en
Inventor
真由美 堀内
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 JP62224264A priority Critical patent/JPH077347B2/ja
Publication of JPS6466750A publication Critical patent/JPS6466750A/ja
Publication of JPH077347B2 publication Critical patent/JPH077347B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Description

【発明の詳細な説明】 〔概要〕 例えばCOBOLやFORTRAN等の計算機言語で作成されたプロ
グラムのデバッグにあたって,実ファイルに対する入出
力を回避し,擬似的な入出力を実行する言語処理系にお
ける擬似入出力処理方式に関し, 実入出力環境が整わない場合であっても,効率的にかつ
必要十分な動作テストを可能とすることを目的とし, プログラム翻訳時に,指定オプションによって,実入出
力ライブラリ呼出し命令に代えて擬似入出力ライブラリ
呼出し命令を展開する擬似入出力ライブラリ呼出し展開
部を備えると共に,上記擬似入出力ライブラリ呼出し命
令により,実入出力の実行可否を判別する実入出力環境
判別部と,実入出力が実行可である場合に実入出力ライ
ブラリを呼び出す実入出力ライブラリ呼出し実行部と,
実入出力が実行不可である場合に入出力を擬似する擬似
処理部とを有する擬似入出力ライブラリを備えるように
構成する。
〔産業上の利用分野〕
本発明は,例えばCOBOLやFORTRAN等の計算機言語で作成
されたプログラムのデバッグにあたって,実ファイルに
対する入出力を回避し,擬似的な入出力を実行する言語
処理系における擬似入出力処理方式に関する。
ワークステーション(WS)の普及に伴って,プログラム
の分散開発が主流となりつつあり,ワークステーション
上でホスト計算機用のプログラム開発(プログラムの作
成〜テスト)が必要となっている。しかし,ワークステ
ーション上での開発環境はおのずと制約が多く,テスト
内容が限られる。また,大規模プログラム開発におい
て,プログラムを多数で分担開発したり,トップダウン
的に開発することがあるが,全プログラムが完成しない
と,部分的なプログラムのテストができないといった問
題が発生し,開発効率の低下を招いている。このよな問
題を解決し,ワークステーションなどからも効率的に開
発中プログラムのデバッグを可能とすることが望まれて
いる。
〔従来の技術〕
第4図は従来方式の例を示す。
プログラムの動作環境を完全に整えることなく,テスト
を行う手段として,次の2方式が考えられる。
(i) 仮の動作環境を作る。
(ii) 実行不可能な命令を迂回する。
この(i)の方式では,ファイルをいわゆるダミーデー
タセットに割り当てたり,CALL命令で呼び出された後,
復帰するだけの機能を持つテストのためのプログラムを
作成するなどして,存在しないものを他のもので代用す
る。しかし,このような作業を開発者自身の手で行うの
は,作業量が多く,かなり大変である。
これに対し,(ii)の方式は,例えば第4図に示すよう
な方式である。以下,COBOLプログラムを例に説明する。
第4図に示すCOBOLプログラム31の動作テストにあたっ
て,そのプログラムがアクセスするファイル(FILE01)
がまだ準備できていない場合,対話型COBOLデバッガ33
にデバッグ用サブコマンド40のようなデバッグ指示を行
い,プログラムを実行させる。このデバッグ用サブコマ
ンド40の〜は,次のような働きをする。
行番号=200に中断点を設定する。
行番号=210に分岐する。
行番号=350に中断点を設定する。
DATA2に「1」を設定する。
行番号=370に分岐する。
即ち,サブコマンド,によって,プログラム実行時
に,行番号200のOPEN命令を迂回する。同様に,ファイ
ル(FILE01)に対するREAD命令を迂回すると共に,本来
読み出すレコードからのデータ転送のため,により,
中断点を行番号350に設定し,ここでにより,DATA2へ
の値の設定を行い,によって行番号370へ分岐する。
なお,対話型COBOLデバッガ33などのデバッグ用ツール
を用いないで,実行不可能な命令を迂回する場合には,C
OBOLプログラム31のソースプログラムに,直接,分岐命
令等を埋め込み,テスト専用のプログラムに修正するこ
とが必要になる。
〔発明が解決しようとする問題点〕
第4図に示すような従来の方式によれば,テスト時にお
いて,実入出力の環境が整っていない場合に,その実入
出力に関連するすべての命令を,開発者自身が選び出
し,そこに行番号や手続き名を指定して中断点を設定
し,分岐指示を行わなければならない。また,必要なデ
ータを開発者自身がその都度設定しなければならない。
そのため,操作性が非常に悪いという問題がある。
また,迂回した命令に対するテストができず,テスト内
容が限られるという問題もある。例えばOPEN命令を迂回
した場合に,そのOPEN命令に対するパラメータや,命令
順序誤り等の論理エラーの有無をチェックすることはで
きない。このOPEN命令の処理の中で,レコード領域の確
保などを行っている場合には,迂回によってレコード領
域が確保されないため,そのレコード領域を使用するこ
とはできない。
本発明は上記問題点の解決を図り,実入出力環境が整わ
ない場合であっても,効率的にかつ必要十分な動作テス
トを可能とすることを目的としている。
〔問題点を解決するための手段〕
第1図は本発明の原理説明図である。
第1図において,10はCOBOLやFORTRAN等の計算機言語で
記述されたソースプログラム,11はソースプログラム10
を機械語レベルに翻訳するコンパイラ,12は擬似入出力
ライブラリ呼出し展開部,13はソースプログラム10の翻
訳結果である被デバッグプログラム,14は擬似入出力ラ
イブラリ呼出し命令,15は擬似入出力ライブラリ,16は実
入出力の実行可否を判別する実入出力環境判別部,17は
実入出力ライブラリを呼び出す実入出力ライブラリ呼出
し実行部,18,18′は入出力を擬似する擬似処理部,20は
実入出力を行う実入出力ライブラリ,21は実ファイル,22
はワークステーションを表す。
本発明では,コンパイラ11中に擬似入出力ライブラリ呼
出し展開部12が設けられる。コンパイラ11は,ソースプ
ログラム10の翻訳にあたって,デバッグオプションの指
定があると,入出力に関連する命令について,擬似入出
力ライブラリ呼出し展開部12を呼び出す。擬似入出力ラ
イブラリ呼出し展開部12は,実入出力ライブラリ20を呼
び出す命令(例えば,CALL R)に代えて,擬似入出力ラ
イブラリ15を呼び出す擬似入出力ライブラリ呼出し命令
14(例えば,CALL S)を展開するものである。
被デバッグプログラム13の実行により,擬似入出力ライ
ブラリ呼出し命令14が実行されると,擬似入出力ライブ
ラリ15が起動される。擬似入出力ライブラリ15は,実入
出力環境判別部16,実入出力ライブラリ呼出し実行部17,
擬似処理部18を備えている。
実入出力環境判別部16は,例えば実ファイル21の有無,
またはデバッガやオペレータとの対話などにより,実入
出力の実行可否を判別する。実入出力が実行可である場
合には,実入出力ライブラリ呼出し実行部17により,実
入出力ライブラリ20が呼び出され,実ファイル21などへ
の実際の入出力が行われる。即ち,実入出力環境が整っ
ている場合には,実アクセスがなされる。
一方,プログラムの開発途中であって,実ファイル21な
どの準備ができていないとき,実入出力環境判断部16に
よって,擬似処理部18が起動される。擬似処理部18は,
実際の入出力処理は実行しないが,被デバッグプログラ
ム13から見ると,実入出力ライブラリ20が実際に処理を
行ったと見えるような処理を実行する。例えば,ファイ
ルのオープン処理要求等では,パラメータエラー・チェ
ック,命令実行順序の論理エラー・チェック,レコード
領域の確保処理および必要に応じてオペレータとの対話
処理などを行う。
読出し(READ)要求等でも同様に,実入出力が実行不可
である場合には,擬似処理部18′によって,入出力を擬
似する。この際,リード・データなどの入出力状態の設
定を,ワークステーション22等から行う機会が与えられ
る。
〔作用〕
プログラム翻訳時にオプションを指定して翻訳を行う
と,言語処理系は,入出力に関係する命令を,擬似入出
力ライブラリ呼出し命令14に展開する。そして,プログ
ラム実行時に,実入出力環境が整っているか否かによっ
て,実入出力ライブラリ20による実入出力処理,または
擬似処理部18による入出力の擬似処理を行う。
従って,被デバッグプログラム13が使用する実ファイル
21などが準備されていない場合であっても,被デバッグ
プログラム13の動作テストを行うことが可能になる。従
来方式のように,実ファイル21等に対する入出力命令を
迂回するために,そのすべての場所に中断点を設定する
などの操作が不要となり,簡単に動作テストを行うこと
ができるようになる。また,レコード領域の確保などの
処理を,擬似入出力ライブラリ15による擬似処理内で行
うことができるので,テスト内容を充実さることも可能
になる。特に,既存の実入出力ライブラリ20等に手を加
える必要がなく,実ファイル21が存在する場合にも,存
在しない場合にも,同じ被デバッグプログラム13のロー
ドモジュールについて,動作テストを実施できる。
〔実施例〕
第2図は本発明の一実施例,第3図は本発明の一実施例
に係る擬似ファイルの指定例を示す。
以下,COBOLプログラムについての本発明の適用例を説明
する。FORTRAN,PL/I等のその他の言語処理系について
も,同様に本発明を実施することができる。
第2図において,第1図と同符号のものは第1図のもの
に対応する。30はCOBOLコンパイラ,31はデバッグ対象と
なるCOBOLプログラム,32はデバッガ結合ライブラリ,33
は対話型COBOLデバッガ,34は中断点カウンタ,35はデバ
ッグ用のコマンドファイルを表している。
本実施例では,特に擬似入出力ライブラリ15と,対話型
COBOLデバッガ33との連携によって,対話的にデバッグ
を進めることができるようになっている。以下,第2図
に示す処理の流れ〜に従って説明する。
デバッグオプションの指定によって,COBOLコンパイ
ラ30は,擬似入出力ライブラリ呼出し展開部12により,
擬似入出力ライブラリ呼出し命令14を展開する。
デバッグのため,テスト対象のCOBOLプログラム31
が起動されると,最初に,デバッガ結合ライブラリ32を
呼び出す。
デバッガ結合ライブラリ32は,COBOLプログラム31と
対話型COBOLデバッガ33との動的リンクを行うためのプ
ログラムである。これによって,対話型COBOLデバッガ3
3がロードされ,これに制御が渡される。
対話型COBOLデバッガ33は,まずデバッグのための
作業領域等の初期設定を行う。
次に,オペレータとの対話により,ワークステーシ
ョン22等から,デバッグ指示に関するデバッグ用サブコ
マンドを入力する。
このサブコマンドの中で,オペレータは,擬似処理
の対象とするファイル等を指定することができる。擬似
ファイル指定であれば,それを作業領域に記憶する。
その他,中断点設定などの処理を行い,呼び出し元
へ制御を戻す。
擬似入出力ライブラリ呼出し命令14の実行により,
擬似入出力ライブラリ15を起動する。
擬似入出力ライブラリ15は,まず対話型COBOLデバ
ッガ33に対し,擬似ファイルの問合せを行う。
これに対し,対話型COBOLデバッガ33は,サブコマ
ンドで指定された擬似ファイルに該当するかどうかを通
知する。
擬似入出力ライブラリ15は,処理対象のファイル
が,擬似ファイルとして指定されていない場合,実入出
力環境が整っているものとして,実入出力ライブラリ20
を呼び出す。
一方,処理対象のファイルが擬似ファイルとして指
定されていれば,擬似処理を行う。例えば,最初に処理
中断により,対話型COBOLデバッガ33を呼び出す。
対話型COBOLデバッガ33は,従来と同様な中断点処
理を行う。ここでは,中断回数を計数するための中断点
カウンタ34のカウントアップおよびワークステーション
22またはコマンドファイル35からのデバッグ指示に応じ
た処理等が行われる。
擬似入出力ライブラリ15は,さらに論理エラー・チ
ェックやレコード領域の確保処理などの,実入出力ライ
ブラリ20による処理と,実アクセスの点を除いて同様な
処理を実行する。
その後,呼び出し元のCOBOLプログラム31へ実行制
御を戻す。なお,上記処理によりデバッガの呼出し
を,処理の後に行うようにしてもよい。
対話型COBOLデバッガ33に対する上記擬似ファイルの指
定は,例えば第3図に示すデバッグ用サブコマンド40の
ように行われる。これらの各サブコマンドは,以下の意
味を持つ。
(a) ファイル名「FILE01」のファイルが,擬似ファ
イルであることを宣言している。
(b) 1回目の入出力命令に対する処理を指定してい
る。COUNTは,第2図に示す中断点カウンタ34の領域
名であり,擬似ファイルFILE01に対する入出力命令によ
り,処理の中断,即ち,対話型COBOLデバッガ33への制
御移行がなされると,その中断回数を記憶する。
(c) REC01というコマンドファイル(データセッ
ト)から,デバッグ指示を入力することを指定してい
る。もちろん,この中断点において,ワークステーショ
ンから種々のデバッグ指示を入力する指示を行うことも
可能である。
(d) 2回目の入出力命令に対する処理を指定してい
る。
(e) 2回目の中断点では,REC02というコマンドファ
イルから,デバッグ指示を入力することを指定してい
る。
(f) プログラムの実行再開を指定している。
このような擬似ファイルの指定によって,実ファイルの
有無を,ファイル毎に設定することが可能になってい
る。
〔発明の効果〕
以上説明したように,本発明によれば,分散開発したプ
ログラムの単体テストなどを,実入出力環境が整わない
状態で,簡単にかつ充実したテスト内容でもって実施で
きるようになるので,ファイル処理プログラムなどの生
産性が向上し,また信頼性も向上する。
【図面の簡単な説明】
第1図は本発明の原理説明図, 第2図は本発明の一実施例, 第3図は本発明の一実施例に係る擬似ファイルの指定
例, 第4図は従来方式の例を示す。 図中,10はソースプログラム,11はコンパイラ,12は擬似
入出力ライブラリ呼出し展開部,13は被デバッグプログ
ラム,14は擬似入出力ライブラリ呼出し命令,15は擬似入
出力ライブラリ,16は実入出力環境判別部,17は実入出力
ライブラリ呼出し実行部,18,18′は擬似処理部,20は実
入出力ライブラリ,21は実ファイル,22はワークステーシ
ョンを表す。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】プログラムの動作テストに用いられる言語
    処理系における擬似入出力処理方式であって, プログラム翻訳時に,指定オプションによって,実入出
    力ライブラリ呼出し命令に代えて擬似入出力ライブラリ
    呼出し命令を展開する擬似入出力ライブラリ呼出し展開
    部(12)を備えると共に, 上記擬似入出力ライブラリ呼出し命令により,実入出力
    の実行可否を判別する実入出力環境判別部(16)と,実
    入出力が実行可である場合に実入出力ライブラリを呼び
    出す実入出力ライブラリ呼出し実行部(17)と,実入出
    力が実行不可である場合に入出力を擬似する擬似処理部
    (18)とを有する擬似入出力ライブラリ(15)を備える
    ことを特徴とする言語処理系における擬似入出力処理方
    式。
JP62224264A 1987-09-08 1987-09-08 言語処理系における擬似入出力処理方式 Expired - Fee Related JPH077347B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62224264A JPH077347B2 (ja) 1987-09-08 1987-09-08 言語処理系における擬似入出力処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62224264A JPH077347B2 (ja) 1987-09-08 1987-09-08 言語処理系における擬似入出力処理方式

Publications (2)

Publication Number Publication Date
JPS6466750A JPS6466750A (en) 1989-03-13
JPH077347B2 true JPH077347B2 (ja) 1995-01-30

Family

ID=16811051

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62224264A Expired - Fee Related JPH077347B2 (ja) 1987-09-08 1987-09-08 言語処理系における擬似入出力処理方式

Country Status (1)

Country Link
JP (1) JPH077347B2 (ja)

Also Published As

Publication number Publication date
JPS6466750A (en) 1989-03-13

Similar Documents

Publication Publication Date Title
US8930912B2 (en) Method and system for performing software verification
EP0926592B1 (en) Software emulation system
US6658649B1 (en) Method, apparatus and article of manufacture for debugging a user defined region of code
US5636366A (en) System and method for preserving instruction state-atomicity for translated program
US7409330B2 (en) Method and system for software debugging using a simulator
US5307504A (en) System and method for preserving instruction granularity when translating program code from a computer having a first architecture to a computer having a second reduced architecture during the occurrence of interrupts due to asynchronous events
US6249907B1 (en) Method system and article of manufacture for debugging a computer program by encoding user specified breakpoint types at multiple locations in the computer program
US5050168A (en) Test coverage analyzer
US20060200806A1 (en) Apparatus, system, and method for trace insertion
US5613098A (en) Testing and debugging new Y architecture code on existing X architecture system by using an environment manager to switch between direct X code execution and simulated Y code execution
US20050273765A1 (en) Object-oriented creation breakpoints
US5680584A (en) Simulator system for code execution and debugging within a multi-architecture environment
US7761282B2 (en) System and method to simulate conditions and drive control-flow in software
JP2004164554A (ja) プログラム実行監視装置および方法
US6425122B1 (en) Single stepping system and method for tightly coupled processors
EP3891613B1 (en) Software checkpoint-restoration between distinctly compiled executables
JP2005338987A (ja) 例外テスト支援プログラム及び例外テスト支援装置
US5956511A (en) Program development support apparatus, program development support method, and storage medium therefor
JPH077347B2 (ja) 言語処理系における擬似入出力処理方式
JP2788353B2 (ja) タスクトレース方法
JP2502128B2 (ja) コンパイラ装置
Cunha et al. A distributed debugging tool for a parallel software engineering environment
JPH05250221A (ja) シミュレータ実行方式
JP3159155B2 (ja) プログラムのデバッグ方法および装置
JP2002268918A (ja) 試験システム及び試験方法及び試験プログラム及び試験プログラムを記録した計算機で読み取り可能な記録媒体

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees