JPH01161563A - コンピユータ・システム及びオペレーテイング・システムへのコマンド適合方法 - Google Patents

コンピユータ・システム及びオペレーテイング・システムへのコマンド適合方法

Info

Publication number
JPH01161563A
JPH01161563A JP63289043A JP28904388A JPH01161563A JP H01161563 A JPH01161563 A JP H01161563A JP 63289043 A JP63289043 A JP 63289043A JP 28904388 A JP28904388 A JP 28904388A JP H01161563 A JPH01161563 A JP H01161563A
Authority
JP
Japan
Prior art keywords
command
version
program
commands
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.)
Pending
Application number
JP63289043A
Other languages
English (en)
Inventor
Wayne O Evans
ウエイン・オーネイル・エヴアンス
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH01161563A publication Critical patent/JPH01161563A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、オペレーティング・システム・コマンドに関
し、特に、同じコマンド処理プログラムを用いる複数バ
ージョンのコマンドの準備に関する。
B、従来技術及びその問題点 より優れたノ・−ドウエア、より良い有用性、新しい規
格等を利用するために、新しいオペレーティング・シス
テムへの移行をコンピュータ製造業者が決定するときに
は、旧オペレーティング・システムを用いる多くのカス
トマ・ペースが新オペレーティングーシステムでそれら
のアプリケーションを実行できることが、重要である。
これは、そレラのアプリケーションにおけるカストマの
投資を保護するためである。そあような投資は、多くの
カストマにとって数百万ドルの出費となる。
かつては、変換プログラムを用いる方法があった。この
プログラムでは、カストマ・アプリケーションのソース
・コードを使って、新オペレーティング・システムのコ
マンドを用いるためにそのソース・コードを変換する。
この方法の限界は、ソース・ランゲージ・ステートメン
トが失われてしまうこと、即ち幾つかのアプリケーショ
ンについて存在しないことである。さらに、しばしばソ
ースの変換は、新システムにおける現行アプリケーショ
ンの実施を遅くするような長い処理である。
進んだ解決策としては、コンピュータ・メーカによって
複数の環境を実現することであった。現行インターフェ
ース(ユーザにとって利用できるシステム・コマンド)
は、同様の機能を実行するシステム−プログラムの旧及
び新バージョンの両方を保持することによって、維持さ
れる。この方法ハ、オペレーティング・システム・プロ
グラムの2組を維持し記憶することを要求することに加
えて、ユーザにアプリケーションが使用する環境を選択
することを要求する。ユーザはまた、新オペレーティン
グ・システムの環境を使用するための完全アプリケーシ
ョンの変換なしに、新オペレーティング・システムによ
って提供される新しい機能を現行アプリケーションに統
合することはできない。
最新の方法の1例が、米国特許第4691278号に示
されている。この方法では、複数のシステム・アーキテ
クチャ・モードが提供される。レジスタは、モード・セ
レクタの値を含む。プログラムの1つの命令が、種々の
モードで異なることがある一連のマイクロ命令を呼び出
す。マイクロ命令の開始アドレスは、そのプログラムに
ついて選択されたモードによって、同じ命令についても
変わることがある。この方法では、マイクロ命令の種々
の組が維持されねばならない。よシ高レベルのランゲー
ジに比べてそのような低レベルのランゲージでプログラ
ムすることは、通常、非常に困難である。
C1問題点を解決するだめの手段 ]ンピュータ・システムは、複数バージョ/のオペ−レ
ーティング・システム・コマンドの使用に動的に適合す
るように設計される。ユーザが望むバージョンは、対話
式セツションにおいて、又は、ユーザが実行を望むプロ
グラム中の属性によって識別される。
与エラレタ複数バージョンのシステム・コマンドを単一
のオペレーティング・システム・プログラムによって実
行することができる。これは、各バージョンのコマンド
についてコマンド定義ヲ有することによシ達成される。
その定義は、全てのバージョンのコマンドについて汎用
パラメータを有している。各バージョンのコマンドは、
それかう、ソのバージョンについてのコマンド定義によ
シ、各コマンド及び他のバージョンにおけるその対応す
るコマンドについての単一のオペレーティング・システ
ム・プログラムに対して受入れ可能なフォーマットに変
形され得る。
コマンド定義の複数組がライブラリと呼ばれる別々の記
憶ディレクトリに設けられる。ライブラリが、それから
、各コマンド定義について、その対応するコマンドが処
理されるべきときには、探索される。ライブラリの探索
の頭片は、望むシステム・コマンドのバージョンに基づ
いて制御される。
コマンド定−は、コマンド処理プログラムの名前から成
シ、そして、パラメータ定義がそのプログラムには伴な
う。コマンドの種々のバージョンは、そのパラメータの
数が変化し、それ故に、提供される機能の限度も変化す
る。各バージョンのコマンドは、同数のパラメータがコ
マンド処理プログラムに渡されるように、そのコマンド
定義を用いて変形される。これは、種々のバージョンに
おいて損なわれているパラメータ値について定数を用い
ることによシ行なわれる。従って、コマンド当す唯一つ
のオペレーティング・システム・プログラムが、種々の
バージョンの同じシステム・コマンドを実行する。
ユーザのアプリケーションは、通常、複数のプロ、ダラ
ムから成る。各プログラムは、望むバージョンのシステ
ム・コマンドを定義する属性を含んでいるので、アプリ
ケーション・プログラムは、種々のバージョンのシステ
ム身コマンドヲ用いるプログラムが混合したものを含む
ことができる。
ユーザが進んだバージョンのオペレーティング・システ
ムへ徐々に移行しているなら、現行アプリケーションに
ついての新しいプログラムを、新しいバージョンのシス
テム・コマンドを用いて書くことができる。そのアプリ
ケーションにおける現行プログラムは、拡張機能を利用
するために一度に書き直されるか、又は旧バージョンの
システム・コマンドを用いてそのまま残されるかどちら
かである。
拡張機能を有する新バージョンのシステム・コマンドは
、大抵、追加の新しいコマンドを幾つか有スル。新しい
コマンドは、旧バージョンのシステム・コマンドを特定
するプログラムにおいて用いることができる。これは、
旧バージョンのシステム・コマンド定義を含むライブラ
リがまず初めに探索され、そして、もしコマンドがみつ
からなケレば、新バージョンのコマンド定義がそのコマ
ンドについて探索されることになるからである。
望むコマンドに合った最初のコマンド定義がそれから処
理される。それ故に、望む新しい機能が新しいコマンド
に含まれるなら、ユーザは、プログラム全体を変換する
必要はない。
D、実施例 各アプリケーションeプログラムは、そのプログラムの
オリジナル・オペレーティング−システムについて書か
れた特定バージョンのシステム・コマンドを用いること
を求めるであろう。もし、その1つのシステム−コマン
ドが種々のオペレーティング・システムからのシステム
Φコマンドニ一致するのであれば、1つのオペレーティ
ング・システムについての多くのシステム・コマントハ
その他のオペレーティング・システムにおけるそれらの
対応するコマンドに類似するであろう。これらの対応す
るシステム・コマンドは、同じ又は異なるコマンド名を
用いることがあるし、そして、コマンド当り種々のパラ
メータ又は異なる数のパラメータを用いることがある。
1つのオペレーティング・システムについての完全なコ
マンドの組の1例は、”IBM System/38 
 Control  Language  Refer
enceManual (SC21−7731)198
6”と題するIBMシステム738のマニュアルに示さ
れている。このコマンドの組は、以後バージョンBvi
)コマンド・セットとして参照される。約500個のバ
ージョン1のコマンドの大体全部を含み、約200個の
新しいコマンドが加わった第2のコマンドの組ハ、バー
ジョン2(V2)コマンドeセットテする。バージョン
1のコマンドに類似するバージョン2のコマンドは、回
し名前又は異なる名前を有することがある。それらは、
より多くのパラメータ、同じ数のパラメータ又はよシ少
ないパラメータを有することがある。
第1A図は、コマンドがどのセット即ちバージョンから
来るかにかかわらず、システム・コマンド11によって
要求されるタスクを実行するために、コマンド処理プロ
グラム16を用いることを示す。各コマンド11に対し
て1つのプログラム16が存在する。バージョン1.2
又はNについて書かれたコマンドを、同じコマンド処理
プログラムによって処理することができる。(対応する
コマンド間の機能の相異が余シにも大きいので、各対応
するコマンドがそれ自身のコマンド処理プログラムを有
する場′合がないことはない。)これは、種々のバージ
ョンにおける全ての対応するコマンドが同じ名前及び同
数のパラメータを有するように、コマンド・データを変
形データに変形することによって、達成される。
コマンド・アナライザ・プログラム66は、各対応する
バージョンのコマンドについてのコマンド定義に基づい
て、その変形を実行する。その対応するコマンド定義は
、同数のパラメータとバージョンごとのパラメータ間に
おける同じ位置関係即ち順次関係とを有する。対応する
コマンド定義についてのこの汎用フォーマットは、実コ
マンド文字列をそのコマンドの名前が呼ばれたコマンド
処理プログラム16と両立できる形へ変形するために用
いられる。
第1A図では、異なるバージョンのシステム・コマンド
定義がライブラリ12.14及び15に記憶されている
。ライブラリ12における第1バージョンid、IBM
システム738用バージョンのオペレーティング・シス
テムからのシステム・コマンドについての1組の定義で
ある。ライブラリ14における第2バージョンは、拡張
バージョンのシステム738オペレーテイング・システ
ムについてのシステム−コマンドの1組のコマンド定義
である。ライブラリ15における第Nバージョンは、カ
ストマイズされたシステム又は将来のオペレーティング
@1システムのシステム量コマンドについての1組のコ
マンド定義であシ、任意の数のバージョンが用いられ得
ることを示している。
第1A図では、対応するコマンド定義の名前が各バージ
ョンのライブラリに示されている。ライブラリ12にお
ける書出しプログラム取消しのキャンセル、ライタ(C
oncel Writer)コマンド定義18は、CN
LWTRの名前を用いる。同じ機能が、コマンド定義2
0がバージョン2のライブラリ14中に記憶されたその
対応するコマンドENDWTR,!::7マンド定義2
1がバージョンNのライブラリ15中に記憶された対応
するコマンド5TOPWTRとによって達成される。こ
の例におけるコマンド名はバージョンごとに変わるが、
しかし、その対応する定義によって、これらのコマンド
の全ては書出しプログラム終了のエンド・ライタ(En
d Writer)と名付けられた同じコマンド処理プ
ログラム16Aを呼び出すことになる。
ジョブ待ち行列作成のクリエイト・ジョブ・キュー(C
reate  Job  Queue)は、ライブラリ
12.15及び14における夫々その対応する定義22
.23及び24の各々に対して同じ名前CRTJOBQ
を用いる。CRTJOBQについては、各定義における
パラメニタの数は、そのキーワードが異なっているが、
同じである。ディスケットをクリアするクリア・ディス
ケット・コマンドは、ライブラリにおけるその対応する
定義25.26及び29の各々に対して同じ名前CLR
DKTを用いる。しかし、各バージョンのそのコマンド
は、異なる数のパラメータを有する。これらの対応する
コマンドは、異なるシンタックスを用い、バージョン1
及びバージョン2に異なる定義を有する。それらは、第
7A図乃至第7D図、第8A図乃至第8D図及び第9A
図乃至第9D図に示され、以外詳細に述べられる。
コントロール・ランゲージ中プログラム作成のクリエイ
ト・コントロール・ランゲージ・プログラム・コマンド
は、各バージョンに対して同じ名前CRTCLPGMを
用い、そしてライブラリにおけるその対応する定義27
,28及び30の各々に異なる数のパラメータを有する
。このコマンドについてのコマンド処理プログラムは、
その機能及び動作が第5図に詳細に述べられることにな
るコンパイラ34である。
コマンド定義及びコマンドの実フォーマットハ、夫々第
1B図及び第1C図に示されている。第1C図では、各
コマンドはENDWTR又はCRTJOBQのようなコ
マンド名を伴なう・。この後に、キーワード及びそのコ
マンドの各パラメータについての値が続く。パラメータ
の順序はコマンドにおいては重要ではない。第1C図の
パラメータは、第1B図のコマンド定義の順序と同じ順
序に並んではいない。第1C図では、コマンド定義のフ
ォーマットは実行のために呼び出されるべきコマンド処
理プログラムの名前とそのコマンドについてのパラメー
タ定義とから成る。これらのパラメータ定義は、コマン
ド及びコマンド・パラメータを含む受取ったコマンド文
字列を解釈するために、コマンド・アナライザ36(第
2A図参照)によって用いられる。このアナライザは、
そのコマンド文字列のシンタックスをチエツクして、呼
び出されるコマンド処理プログラムによシ用いられるべ
きパラメータ情報を指摘するポインタ・テーブルを作成
する。このプロセスは、第2A図ヲ参照して以後詳細に
述べられる。
バージョン・ライブラリにおける各コマンド定義の各パ
ラメータのために記憶されるパラメータ定義の構成要素
は、キーワード、長さ情報、データ・タイプ省略値(d
efault)か又は定数(constant)及び配
置論理である。キーワードによってパラメータを識別す
る。その長さ情報によって、パラメータの適合長さを特
定する。その長さの境界を越えるパラメータは、コマン
ドを拒絶させることになる。そのデータ・タイプは、そ
れが名前、10進、2進等いずれであるかによって変化
するデータについての規則を特定する。省略値は、もし
そのパラメータについてのキーワードがそのコマンドか
ら抜けているなら挿入されることになる実パラメータの
値を特定する。定数は、システムによりパラメータの代
りに挿入される値を特定する。定数をユーザが挿入する
ことはできない。配置論理は、名前からその名前を表わ
す値へのそのパラメータの論理変換を示す。
第2A図、第2B図、第3A図、第3B図及び第4図は
、色々なバージョンの対話式に入力されるコマンドを実
行することになる、即ち選択されたプログラムの1部分
として実行することになる本発明の好実施例を示す。コ
マンドは、ユーザがそのコマンドについての文字列及び
そのパラメータをタイプすることにより、端末装置にお
いて対話式に入力される。対話式セツション70として
表わされたあるユーザは、対話式セツションでバージョ
ン1のコマンドを用い、一方、同時に同じシステムで、
対話式セツション72として表わされた第2ユーザは、
バージョン2のコマンド定義行することが可能である。
第1ユーザは、QCLと名付けられたコマンド項目表示
画面のコマンド・エントリ・スクリーン・プログラム7
4によって制御されるセツションにおいてバージョン1
のコマンドを発行する。このプログラムは、ユーザが呼
び出したり、システム定義でシステム・プログラマが与
えたり、又は、ユーザがワークステーションからサイン
オンする毎にそれが呼び出されるようにユーザが予め特
定することができる。
QCL(又はQCMD)プログラムの機能は、ワークス
テーションのデイスプレィとコマンド・アナライザ・プ
ログラム36との間をインターフェースすることである
。QCL及びQCMDプログラムは、第2B図に示され
ている。オペレーティング・システムがQCL制御を与
えるときには、QCLはステップ102で受信メツセー
ジ信号を発行する。この信号によって、メツセージ待ち
行列はその待ち行列中の先頭メツセージをQCLへ渡す
。ステップ104の判断は、待ち行列にメツセージが存
在しないか、メツセージがコマンドか、又はメツセージ
がコマンド以外である(例えば、エラー又は診断メツセ
ージ)かによって、プログラムの流れを分岐させる。
もしメツセージがなければ、ステップ106によって、
コマンド項目表示画面がワークステーションで表示され
る。QCLは、それからユーザがコマンドを入力するの
をステップ107で待つ。
ユーザがコマンドで応答すると、QCLは、ステップ1
0Bでメツセージ待ち行列にそのコマンドを記憶する。
QCLプログラムは、受信メツセージのステップ102
へ戻って、判断ステップ104でその待ち行列中のメツ
セージについてチエツクを行なう。もはや待ち行列中に
コ・マントが存在するので、QCLはステップ112へ
分岐する。
ステップ112で、コマンド文字列及びオプション情報
をコマンド・アナライザ56(第2A図参照)へ渡す。
このオプション情報は、バージョンIDとそのコマンド
が実行されるべきであることの標識とを含む。そのコマ
ンド及びオプションが渡されると、QCLは、ステップ
114でコマンド・アナライザ・プログラムを呼び出し
、それから受信メツセージのステップ102へ戻る。
本発明にとって最も重要なのであるが、もしメツセージ
がコマンドであるなら、ステップ112でコマンド・ア
ナライザを呼び出し、ステップ114でコマンド112
AとバージョンIDを含むオプション112Bとをコマ
ンド・アナライザへ渡す。もし実行中のプログラムがQ
CLなら、渡されるバージョンIDはバージョン1であ
る。もし実行中のプログラムがQCMDなら、渡される
バージョンID1dバージョン2である。バージョンI
Dを渡すために種々のプログラムを用いるよりもむしろ
、望むバージョンIDを特定するためにユーザ又はシス
テム・エンジニアがそのプロフィールを変えることがで
きるような単一のプログラムを用いても良いことは、当
業者にとっては明らかであろう。
判断ステップ104からの最後の分岐は、”他のメツセ
ージ”である。もしメツセージは存在するがしかしそれ
がコマンドでないなら、ステップ116によってワーク
ステーションがそのメツセージを表示する。QCLプロ
グラムの制御は、再び受信メツセージのステップ102
へ戻る。
第2A図のセツション70.71又は72のいずれが実
行されるかにかかわらず、vl、v2又はV″N”のバ
ージョン指示と一緒にコマンドがコマンド・アナライザ
36へ送られる。コマンド・アナライザ36は、適切な
バージョン・ライブラリからのコマンド定義に従ってシ
ンタックス及びセマンテイクスについてコマンドをチエ
ツクする。先に説明したように、バージョンの識別v1
、v2又はV″N”がコマンド・アナライザへ渡され、
アナライザがQCL74又はQCMD76のいずれかに
よって呼び出される。コマンド・アナライザ36は、適
切なライブラリ即ちコマンド定義についてのライブラリ
80.81又は82を探索する。
コマンド・アナライザ!+6は、適切なライブラリにお
ける記憶されたコマンドからのパラメータ定義とQCL
又はQCMDによって渡されたコマンド文字列中の実パ
ラメータとを用いる。アナライザは、パラメータ定義を
用いて正しいセマンテイクス及びシンタックスについて
そのコマンド文字列をチエツクする。もしその文字列が
エラーを含むなら、ユーザのワークステーションでの表
示のために、エラー・メツセージがQCL 74又はQ
CMD76へ戻される。もしその文字列が正しいなう、
コマンド・アナライザはポインタ・テーブル84を作成
する。このテーブルは、コマンドを実行するためにコマ
ンド処理プログラムによって用いられることになる。
ポインタ・テーブル84は、分析されているコマンドに
ついてのコマンド定義におけるパラメータPARMi乃
至PARMXの既定頭片に従って作成される。そのテー
ブル中の各エントリは、メモリ作業域86における記憶
場所を指す。このメモリ作業域では、コマンド文字列と
共に受取ったり又はコマンド・アナライザにより付加さ
れたシするパラメータ情報が記憶される。定数又は省略
値のパラメータを示すポインタがテーブル84に付加さ
れる。また、選択されたバージョンからのコマンドがコ
マンド処理プログラムと両立できるように、ライブラリ
からのパラメータ定義に従ってパラメータ・データが作
業域86へ付加される。
コマンドΦアナライザ36がポインタ・テーブルを作成
した後、プログラムの制御は選択されたコマンド処理プ
ログラム16に移る。制御が移されると、コマンド・ア
ナライザ・プログラムがプログラムの呼出しスタックか
ら除かれ、それでコマンド処理プログラムからの全ての
メツセージがQCL又はQCMDへ移る。コマンド処理
プログラム(cpp )は、ポインタ・テニプル84に
よって指示されたパラメータを検索して、そのコマンド
を実行する。それからCPPは、ワークステーションで
のユーザへの表示のために適切なメツセージをQCLへ
戻す。
処理されるべきコマンドのもう1つのソースは、記憶さ
れたプログラムである。色々なバージョンのオペレーテ
ィング・システムについて書かれたプログラムのソース
・コードは、典型的にはディスク・ファイルに記憶され
るであろう。第2A図では、3つのソース・コード・バ
ージョンのプログラムが、31.32及び33に示され
ている。
それらは同じプログラムか又は異なるプログラムである
。31のソース・ステートメントはバージョン1用のプ
ログラムについて書かれ、32のソース・ステートメン
トはバージョン2用のプログラムについて書かれ、そし
て330ソース・ステートメントはバージョンN用のプ
ログラムについて書かれている。これらのソース・コー
ド・プログラムが実行できるようになる前に、それらは
コンパイルされねばならない。
プログラムをコンパイルするために、ユーザは、コンパ
イルサれるべきソース・プログラムを識別するパラメー
タを特定するCRTCLPGM(createcont
rol  language  program)コマ
ンドを入力する。CR’tCLPGMコマンドのバージ
ョンは、ユーザがCRTCLPGMコマンドヲ入力する
際に用いたQCL又はQCMDプログラムによって渡さ
れるオプション・タグで識別される。
このオプション・タグは、また、CRTCLPGMコマ
ンド処理プログラムが実行されるべきことを指示する。
他のコマンドを伴なう場合には、コマンド・アナライザ
36は、オプション・タグ中のバージョンIDからCR
TCLPGMについてのコマンド定義を検索する。アナ
ライザは、それからポインタ・テーブル84とCRTC
LPGMについての作業域86にパラメータ・データと
を作成する。
ポインタ・テーブル及びパラメータ・データの作成が完
了すると、CRTCLPGMプログ、ラムが実行のため
に呼び出される。CRTCLPGMコマンドについての
パラメータ・データによって、そのバージョンのソース
−ステートメント・ファイルがコンパイルされているこ
とを示す定数が特定される。
CRTCLPGMコマンドφプログラムは、それがコン
パイラ・プログラム34である点で、その他のコマンド
処理プログラム16とは異なる。
コンパイラ34はそれから、ポインタ・テーブルとパラ
メータから作成されたパラメータ・データとCRTCL
PGMについてのパラメータ定義とを用いて、実行され
る。
コンパイラ34についてのフローチャート(CRTCL
PGMコマンド処理プログラム)が、第5図に示されて
いる。ステップ200で、コンパイラはポインタ・テー
ブルを用いて作業域から入力パラメータを得る。パラメ
ータは、次のものを含む。即ち、 O作成されているプログラムの名前200A(通常、コ
ンパイルされているソース・コード・ファイルと同じ名
前) Oコードがコンパイルされているソース・ファイルの名
前200B O作成されコンパイルされているプログラムについての
ソース・コードをコンパイルするのに用いラレるべきバ
ージョンのコマンドを指示するバージョン番号、即ち識
別子200C コンパイラ34は、200Bのパラメータによって識別
されるソース・ファイル31,32又は63をステップ
212で開く。コンパイラは、ステップ214で、完全
コマンド(ソース・ステートメント)をコマンド・アナ
ライザへ渡すことができるまでソース・ファイルを読む
。判断ステップ216で、ソース・ファイルの最後に達
したかどうかを調べるためにテストが行なわれる。もし
達していないなら、プログラムの流れはステップ218
へ移る。
ステップ218では、ソース・ファイルから読取られた
単一コマンドがパラメータの一時記憶域へ移される。オ
プションがコンパイルのみヲ行すうために設定され、コ
マンド・アカライザがステップ220で呼び出される。
コマンド・アナライザはコマンド文字列をスキャンして
、コンパイラ34へ戻されるコマンド解析され有効にさ
れた(validated)形のコマンドを作成する。
もしステートメント中にエラーが発見されると、ステッ
プ232及び234で将来の参照のためにエラーの発生
セグメントが示され、次のステートメントを読取るため
に判断ステップ222におけるステップ214へのプロ
グラムの流れへ戻る。もしコマンド・アナライザにより
何らエラーが発見されないなら、判断ステップ222に
おいてステップ224へのプログラムの流れに分岐する
。ステップ224では、コンパイラがコマンド解析され
た形のコマンドをそのコマンドについてのプログラム命
令まで拡張する。それらのプログラム命令は、それから
ステップ225で作成されているプログラムのコンパイ
ルされたバーショア38.39又は40に記憶される。
大抵の場合、プロゲラ0ム命令はコマンド解析された形
のコマンドに過ぎない。
ステップ214でコンパイラは、ソース・ファイルにつ
いて?アイルの最後が検出されるまで、ソース・ステー
トメントを読み続ける。ステップ216でファイルの最
後が検出されると、コンパイラはステップ230でソー
ス番ファイルを閉じる。もし判断ステップ262でソー
ス中にエラーが存在することが示されたなら、ステップ
234でメツセージが呼び出しプログラムQCL又はQ
CMDへ発行される。
もしソースの処理中に何らエラーが検出されないなら、
コンパイルされたプログラムについての名前として入力
パラメータ200Aを用いて、コンパイラはステップ2
36でプログラムを作成する。バージョンID200C
4また、コンパイルされたプログラム中に記憶される。
それで、そのプログラムが呼び出されたときには、プロ
グラム中ソのバージョンIDをコマンド・アナライザに
渡すことができる。プログラムの1部分としてバージョ
ンIDを記憶することによって、あるバージョンのプロ
グラムが別のバージョンのプログラムを呼び出すことが
可能になる。従って、システムはプログラム中に記憶さ
れたバージョンに動的に適応する。
プログラムが実行のために選択されたとき、再びコマン
ド・アナライザを介してコンパイルされたバージョンが
実行される。このとき、オプション情報は”実行”を示
す。各コマンドが処理されるに従って、コマンド・アナ
ライザ66は文字列データを変形し、作業域86中にパ
ラメータ・データをロードし、ポインタ・テーブル84
を作成して名前付きコマンド処理プログラム16を呼び
出す。
プログラムの制御は、名前付きコマンド処理プログラム
16へ移る。コマンド処理プログラム(cpp)はポイ
ンタ・テーブルを用い、指示されたパラメータを検索し
て、そのコマンドを実行する。それからCPPは、実行
されているコンパイルされたプログラム38.39又は
4oへ適切なメツセージを戻す。cPPが制御をコンパ
イルされたプログラムへ戻すと、次のコマンドが実行の
ためにコマンド・アナライザへ送られる。しかしながら
、実行においてエラーが存在するなら、コンパイルされ
たプログラムへ戻るメツセージによって、ワークステー
ションのユーザへの表示のためQCL又はQCMDヘプ
ログラムがエラー・メツセージを送シ戻すことがあり得
る。
コマンド・アナライザ・プログラム36の動作が、第3
A図及び第3B図により詳細に示されている。プログラ
ムは、ステップ120でコマンド文字列及びオプション
・タグ(バージョンID。
コンパイル、実行)を検索することによシ開始される。
判断ステップ122で、コマンド解析(parse)ル
ーチン124.126又は128Ωうちの1つに対する
バージョンIDに従って、プログラムの流れは分岐する
。選択されたコマンド解析ルーチンによって、コマンド
文字列はワードへ分割され、そして選択されたバージョ
ンv1、v2及びV″N”のシンタックス規則に従って
それらのワードが解釈される。
コマンドがそのパラメータへ分解されてしまうと、プロ
グラムは、処理されているコマンドのコマンド定義につ
いての適切なバージョン・ライブラリをステップ130
.132又は134で探索する。もしコマンド定義が選
択されたバージョン・ライブラリ中で見つけ出されると
、判断ステップ138でプログラムの流れは第3B図の
ステップ142へ分岐する。ステップ142では、ライ
ブラリからその定義を検索する。もしコマンド定義が選
択されたライブラリ中に見つけ出されないなら、判断ス
テップ138でプログラムの流れはルーチンを探索する
ステップ144へ分岐する。
探索ルーチン144では、種々のライブラリにオケるコ
マンド定義について探索を行なう。このため、ライブラ
リはライブラリ・リスト中のそれらの順序に従って探索
される。ライブラリ及びリストがユーザに対して作成さ
れる。ユーザは、ある1つのリスト又は各リストがライ
ブラリの異なる順序を有する複数のリストを有すること
を選ぶことがある。そのリストは、バージョンIDに基
づいて選択することができる。
例えば、判断ステップ122によってバージョン2から
として示されたがしかしステップ132でバージョン2
のライブラリ中に見つけ出されなかったコマンドは、バ
ージョン優先順位−−v1ライプラ1ハV”N”ライグ
ラ1ハユーザ・ライブラリ1、ユーザ・ライブラリ2等
に従ってライブラリを探索するために探索ルーチンをス
テップ144で用いることができる。この優先順位即ち
リストされたライブラリの順序は、各バージョンについ
て異なシ得るし、また、判断ステップ122で探索され
るべき第1ライブラリが選択されるのと同じようにバー
ジョンIDの関数として選択され得る。
バージョン・ライブラリについての論理探索順序が第6
図に示されている。バージョン1のプログラムが実行さ
れるべきであることを示すプログラム属性をプログラム
が有するときは、ライブラリの探索順序は60に示され
るようになる。バージョン1のライブラリが最初に探索
される。もし探索されるコマンドがバージョン1のライ
ブラリ12中に見つけ出されないなら、バージョン2の
ライブラリ14が探索される。もしそれでも見つけ出さ
れないなら、第1のユーザ・ライブラリが探索され、そ
れから第2のユーザ・ライブラリが探索される。ユーザ
・ライブラリは、ユーザによって特定されるライブラリ
であシ、通常、ユーザのアプリケーション・プログラム
、ファイル、コマンド及びその他のオブジェクトを含む
もしプログラムがバージョン2のプログラムであること
をプログラム属性が示すなら、そのプログラムについて
のライブラリ探索順序は第6図の62に示されたライブ
ラリ順序になる。第1バージョンのコマンド定義はバー
ジョン2のプログラムについて探索されないことに注意
されたい。これは、特定の実施例では幾つかのバージョ
ン2のコマンドがバージョン1のコマンドと同じ名前を
有するからである。バージョン2のコマンドが実際に処
理されることを保証するために、バージョン2のライブ
ラリを最初に探索する必要がある。
ライブラリの探索順序は、バージョンIDで特定される
第1ライブラリによシ制御され、ステップ130.13
2及び134においてそしてライブラリ・リスト中の続
くライブラリによって探索される。第6図のライブラリ
・リスト66が各ブログラムについて発生される。第6
図のライブラリ・リストは、システム738において用
いられるのと同じタイプの構造である。それは、プログ
ラムを実行しているときにそれが関係付けられるシステ
ムにより用いられるべきライブラリに対するポインタの
リストを含む。そのリストは、カストマ−・アプリケー
ションによって決定される。
第3A図に戻って、もし探索ルーチンがステップ144
でうまくいったなら、判断ステップ146で第3B図の
ステップ142ヘプログラムの流れは分岐してコマンド
定義を検索する。もし探索ルーチンがうまくいかなかっ
たなら、プログラムの流れはステップ148へ分線する
。ステップ148では、エラー・メツセージを呼出しプ
ログラムへ送り戻す。呼出しプログラムは、Q CL 
s QCMD又はコンパイル又は実行され、ているプロ
グラムであシ得る。
第3B図は、コマンド・アナライザがコマンド定義を見
つけ出した後にどのようにコマンド・アナライザ・プロ
グラムがコマンド文字列を処理するのかを示す。ステッ
プ142における定義の検索の後に、ステップ150で
妥当性検査(validation)ルーチンが定義に
対するコマンドをチエツクする。妥当性検査は、コマン
ド定義におけるそのパラメータについて定義に対するパ
ラメータ・データの各ワードを検査することから成る。
先に第1B図を参照して説明したように、各パラメータ
は、キーワード、長さ、データ・タイプ、省略値又は定
数及び配置論理によって定まる。妥当性検査はまた、全
ての必要なパラメータが特定されそして何らパラメータ
が再三特定されないことのチエツクを含む。
妥当性検査ルーチンは、ステップ150で、そのパラメ
ータについての定義に対してコマンド文字列中の各パラ
メータをチエツクする。ステップ150でルーチンはそ
のコマンド定義から各パラメータを連続的に取シ出して
、パラメータのキーワードを捜すことによシコマンド文
字列中の対応するパラメータについてチエツクする。も
しキーワードがそれとともに入力された値を伺ら有して
いないなら、妥当性検査ルーチンが、パラメータ定義か
らのそのキーワードについての省略値を示す。もしキー
ワードがそのコマンドから抜けているなら、その妥当性
検査ルーチンは、コマンド定義からその抜けているパラ
メータについての省略値を捜入する。各パラメータは、
−時的に、コマンド定義におけるパラメータの順序に対
応する順序で記憶される。
もしパラメータ・データがその定義でチエツク・アウト
しないなら、判断ステップ152でプログラムはステッ
プ154へ分岐する。ステップ154でエラー・メツセ
ージを呼出しプログラムへ送シ戻し、そしてプログラム
の制御は呼出しプログラムへ戻る。
もしコマンドのパラメータにエラーがないなら、判断ス
テップ152で判断ステップ156の方へ分岐する。コ
マンドと共に渡されたオプション情報がそのコマンドを
実行すべきか又はコン7(イルすべきかを指示すること
に依存して、判断ステップ156ではプログラムの流れ
は2者のうちの1つへ分岐する。もしコマンドがコンパ
イルされるなら、プログラムの制御はコンパイラへ戻る
。もしコマンドが実行されるなら、制御はポインタ・テ
ーブル84(第2A図参照)を作成するループ158へ
渡る。
ループ158では、もはや省略値及び定数を含む妥当性
検査されたコマンド文字列が、コマンド処理プログラム
による使用のためのパラメータ・データに変形される。
さらに、このループでは、各パラメータを構成するデー
タの記憶場所を指示するためのポインタ・テーブルが作
成される。そのループに入る前に、コマンド・アナライ
ザ・プログラムは、コマンド定義中の最初のパラメータ
を指示するようにそれ自身のポインタをステップ160
でセットする。判断ステップ162では、コマンド中の
最後のパラメータが処理されたことをポインタが指示す
るかどうか調べるためにポインタがテストされる。もし
指示しないなら、プログラムの制御は変形ルーチン16
4へ渡る。
変形ルーチン164では、指示されたパラメータの定義
と妥当性検査ルーチンによシー時的に記憶されるような
パラメータについてのその対応する妥当性検査された値
とが検索される。変形ルーチン164では、パラメータ
定義を用いてパラメータの値をコマンド定義で指示され
るようなコマンド処理プログラムにより期待される形へ
変換する。パラメータの定義に基づいて、パラメータ・
データをブランクで埋め込むととがちり、それでパラメ
ータ・データは正しい長さになるし、又は、配置論理に
基づいて、別の形へパラメータ・データを変換すること
がある。従って、各パラメータ定義により、変形ルーチ
ン164がそのコマンド定義中で呼出された各パラメー
タについて変形パラメータ・データを生成する。
変形パラメータ・データが生成された後、それはメモリ
の作業域86(第2A図参照)に記憶される。それから
、コマンド・アナライザ・プログラムは、ステップ16
8でポインタ・テーブル84(第2A図参照)にコマン
ド処理プログラム(cpp)のポインタを生成して記憶
する。もはやパラメータがコマンド処理プログラムのた
めに準備できているので、次のパラメータをループ15
8で処理することができる。
次のパラメータ定義に達するために、各パラメータ定義
は、次のパラメータ定義の開始へのポインタで終了する
。ループ158ではステップ170でプロゲラλは次の
パラメータ定義(PD)のポインタを得て、プログラム
のループは判断ステップ162へ戻る。もしPDポイン
タがゼロなら、判断ステップ162は、最後のパラメー
タ定義が処理されて、プログラム制御がコマンド・アナ
ライザ・プログラムからコマンド処理プログラムへ移る
。もしPDポインタが次のパラメータ定義を指示するな
ら、変形ルーチン164が再びパラメータを文字列から
コマンド処理プログラムと両立可能な形へ変換する。
各コマンド処理プログラムは、それが実行することにな
っている機能に応じて異なる。従って、第4図に示され
ているように、これらのプログラムの一般的なフローチ
ャートは高レベルでなら示すことができる。CPPはポ
インタ・テーブルを用いてステップ174で変形データ
を得る。これは、コマンド中の全てのパラメータについ
て行なわれる。全ての変形されたパラメータ・データが
検索された後に、判断ステップ178で装置、ファイル
、コマンド、プログラムのようなオブジェクトが存在す
るかどうかが決定される。もしそれらが存在するなら、
プログラムの流れはステップ180へ分岐する。それか
ら、パラメータ・データの全てを用いてコマンドが実行
される。その後、プログラム制御は、コマンド・ソース
、QCLlQCMD又は実行されているコンパイルされ
たプログラムへ戻る。もし1つ以上のオブジェクトがシ
ステム中に存在しないのなら、判断ステップ178でプ
ログラムの流れはステップ182へ分岐する。ステップ
182では、エラー〇メツセージがコマンド実行レジス
タ、QCL%QCMD又はコンパイルされたプログラム
へ送り戻される。
選択されたバージョン1及びバージョン2のコマンドの
記述 バージョン1 : CNLWTR(書出しプログラム取
消し)コマンド バージョン2 :gNDVTR(書出しプログラム終了
)コマンド 第1A図の18で指示されたバージョン1のコマンドC
NLWTR(書出しプログラム取消し)がプログラム又
は対話式ユーザ・セツションによって用いられるときに
は、そのコマンド定義(第7A図参照)がバージョン1
のライブラリ12からアクセスされて、処理のためにコ
マンド処理プログラム16Aへ送られる。コマンド処理
プログラムはそのコマンドの名前に依存しない。それで
、CNLWTR又はENDWTRのいずれの名前も同じ
機能を実行する。
CN LWT R及びENDWTRのコマンド定義が第
7A図及び第7B図に示されている。これらのコマンド
の目的は、スプール書出しプログラムを終了させて、そ
れらの関係する出力装置をシステムに対して利用できる
ようにする。両方のバージョンにおいて、書出しプログ
ラムは直ちに終了できるし、又は、CNTRLD (被
制御)、IMMED(即時)及びPAGEENDの可能
な値を有するオプション・キーワードの使用による制御
された方法で終了できる。もし書出しプログラムが直ち
に終了されるなら、書出しプログラムはファイルを書出
すのを停止して、ファイルが再び出力待ち行列で利用で
きるようにされる。もし書出しプログラムが制、御され
た方法で終了されるなら、書出しプログラムは、現ファ
イル(又はファイルのコピー)を書出すのを完了するか
、又はそれが終了される前にファイルの1ページを印刷
するのを完了する。バージョン2のコマy )” E 
N D W TRは付加機能を有する。それは、もはや
、システムにおける全ての書出しプログラム、が終了さ
れるべきことを特定することができる。または、チュー
ニング・パラメータを用いて書出しプログラムの幾つか
を終了することができる。バージョン1のコマンドは、
単に書出しプログラムの名前をキーワードVTRについ
ての値として認識することができるだけである。
第7C図には、バージョン1のCNLWTRのシンタッ
クスが示されている。WTRは必須パラメータであり、
ユーザは、コマンドを用いるときにキーワードWTRの
後に装置の名前を入力しなければならない。オプション
は、任意選択パラメータで、ユーザがキーワードを入力
しないときに省略時の値*CNTRLDを用いるもので
ある。
第7D図には、バージョン2のENDVTRのシンタッ
クスが示されている。名前の変更に加えて、より多くの
値がバージョン2におけるWTRパラメータについては
利用できる。
バージョン1 :CRTJOBQ(ジョブ待ち行列作成
)コマンド バージョン2:CRTJOBQ(ジョブ待ち行列作成)
コマンド 名前CRTJOBQ(ジョブ待ち行列作成)を有する1
対のコマンドがまた、それらの夫々のライブラリ中のコ
マンド定義ライブラリ22及び24(第1A図参照)に
示されている。その名前は両バージョンについて同じで
あるが、パラメータは、第8A図及び第8B図にみられ
るように全く異なっている。バージョン1のコマンド及
びそのパラメータの完全な記述は、先に参照したシステ
ム/38のマニュアルに出ている。
CRTJOBQコマンドは新しいジョブ待ち行列を作成
する。ジョブ待ち行列は、システムによって処理される
べきジョブについての項目を含む。
その待ち行列におけるジョブを扱う幾つかのコマンドは
、SBMJOB(ジョブ提示)、SBMDBJOB(デ
ータ・ベース・ジョブ提示)、SBMDKTJOB(デ
ィスケット・ジョブ提示)及びTFRJOB(ジョブ転
送)である。第8A図及び第8B図では、両パージョ/
のCRTJOBQコマンドのコマンド定義は相異してい
る。注目すべき最初の変更は、キーワードである0ジョ
ブ待ち行列基″がキーワード値”ライブラリ塩1”の後
に現われることである。従って、バージョン1のコマン
ドにおけるジョブ待ち行列の名前は、”OBJ 、LI
 B”のように見えるし、一方、バージョン2のコマン
ド・セットでは、待ち行列の名前は”LIBloBJ”
のように見える。その名前のシンタックスにおける相異
は、第3A図(4:。
おける異なるコマンド解析ルーチン(124及び126
)によって処理される。
ライブラリ塩についての省略時の値は、バージョン1で
はQGPLであり、バージョン2ではCURL I B
である。任意選択キーワード及びそれらの値においてさ
らに変更がなされた。バージョン1のキーワードPUB
AUTが、バージョン2ではAUTに変更された。その
ALLの値のみがそれらの間で同じであるのだが、それ
らの値がまた変更されていることに注意されたい。パラ
メータは、キーワードの名前なしにコマンド処理プログ
ラムへ渡される。従って、キーワードの名前は、コマン
ド処理プログラムに独立である。
第8C図及び第8D図では、バージョン1及びバージョ
ン2のCRTJOBQコマンド間のシンタックスにおけ
る相異が示されている。ライブラリについて省略がQG
PLから*CURLIBへ変更されている。ライブラリ
の名前の規約(convention)がXXX、1i
bからlib/xxx。
へ変更されている。キーワードPUBAUTがAUTへ
変更されている。最後に、PUBAUTからAUTへの
値の数もまた変更されている。
バージョン1 : CLRDKT (ディスケット消去
)バージョン2 : CLRDKT(ディスケット消去
)名前CLRDKT(ディスケット消去)を有する1対
のコマンドがまた、それらの夫々のライブラリ中のコマ
ンド定義ライブラリ25及び26(第1A図参照)に示
されている。その名前は両バージョンについて同じであ
るが、パラメータは、第9A図及び第9B図のそれらの
コマンド定義にみられる・ように全く異なっている。コ
マンド処理プログラム16C(第1A図参照)での実行
に対してパラメータの数を両立させるために、定数が第
2バージョンのコマンドでは用いうしてイル。
定数が設計時に付加される。それらの定数は、ユーザに
対して透過である。これにより、”LOC”のキーワー
ド及び”5UFFIX”のキーワードを第2バージョン
では隠すことができる。換言すれば、バージョン1のコ
マンド・セット中に書かれた幾つかのプ°ログラムを含
むアプリケーションが、パージヨシ1及びバージョン2
の両コマンド・セットを有するコンピュータで変更なし
に動作する。
各ディスケットにおけるディスケット・ラベル領域から
データ・ファイル識別子を削除することにより、バージ
ョン1のCLRDKTコマントハ、1以上のディスケッ
トから活動状態及び非活動状態にある全てのファイルを
削除する。バージョン2のコマンドでハ、バージョン1
のコマンド定義われているキーワード″LOC”及び5
UFFIX”は、省略されている。キーワード″LOC
”は、バージョン2のライブラリ中のその内部記述にお
ける*S1の定数(スロット1、コンピュータ・システ
ムにおける物理的な記憶位置を意味する)に与えられる
。キーワード”5UFFIX”は、バージョン2のコマ
ンド中の*NOの定数に与えられる。そのコマンドに対
応するコマンド処理プログラムは、5つのパラメータ、
DEV%LQC,VOL、CHECK及び5UFFIX
を当てにする。それ故に、これらが第9A図及び第9B
図におけるコマンド定義中の5つのパラメータである。
第9C図及び第9D図では、バージョン1及びバージョ
ン2のCLRDKTコマンド間のシンタックスにおける
相異が示されている。キーワード”D E V ”のみ
がバージョン2中に存在し、またキーワード”LOC”
及び” S U F F I X”のみがバージョン1
中に存在する。また、”VOL”のキーワードには種々
の省略がある。さらに、バージョン2のコマンド定義中
に付加された定数(第9B図参照)がユーザには見えな
いことに注意されたい。
両バージョンについてのCLRDKTコマンドの簡単化
したバージョンを次に示す。定数の使用が示されている
。次の表1におけるn    ITは、ユーザの入力が
許される場所を示す。
各パラメータについて何が渡されるかの詳細は、I B
M Systam/38 Programmers  
Guide(1986)第10版の第14章に述べられ
ている。CLRDKTコマンドについての1例は次のと
おシであ・る。この例では、配置論理を識別するために
キーワード5PCVAL(特殊値)を用いている。特殊
値である配置論理は、外部項がプログラムによって期待
される内部値へどのようにマツプされるのかを示す。
5PCVAL (*LAST−5)(*0NLY−3)
*LASTが特定されると、プログラムは−5を得る。
*0NLYが特定されると、プログラムは−3を得る。
コマンド処理プログラムは、ワード*LAST及び*0
NLYに依存しない。特殊・値の使用により、外部項は
アプリケーション・プログラムに影響を及ばずことなく
変更可能である。パラメータ及び特殊値の全ての配置は
、コマンド・アナライザによって処理される。それで、
コマンド処理プログラムが得るパラメータは、配置論理
に基づいて変換された値である。
バージョン1のCLRDKTコマンドについての例は、
次のとおシである。
r              G)        
  F  υ−−−山          山    
      山黄      十 閣口凶 ハ             そ Q                (7黄     
         ト 十− ψ ^≠ 第10図を参照するに、本発明は、2つ以上のバージョ
ンのコマンド・セットへ容易に拡張可能である。3つ以
上のバージョンは、大きくて十分なプログラム属性フィ
ールドを持たせることによって適応できる。ライブラリ
のバージョンの論理構成によって、どのバージョンのラ
イブラリをも最初に探索可能である。各プログラムはそ
れ自身の属性を持っているので、1つのアプリケーショ
ンハ、多く)異ナルバージョンのコマンド・セットを用
いて複数のプログラムを持つことができる。
第10図では、アプリケーションは、ブロック181に
バージョン1を用いたエントリ・プログラムを有して示
されている。そのエントリ・プログラムはブロック18
3のプログラムを呼び出すことができる。ブロック18
3のプログラムは、それがバージョン2のプログラムで
あることを指示するプログラム属性を持っている。ブロ
ック181のプログラムによって呼び出し可能なブロッ
ク185の゛プログラムは、バージョン3を用いている
。ブロック185のプログラム自身は、バージョン2で
書かれたブロック187のプログラムを呼び出すことが
できる。本発明を用いて種々のコマンド・セット中に書
かれたプログラムの入子構造に対して何ら概念的な制限
は存在しない。
E0発明の効果 本発明により、与えられた複数バージョンのシステム・
コマンドヲ単一のオペレーティング・システム・プログ
ラムによって実行することができるようになった。この
ために、バージョン1で書かれたアプリケーションにお
けるばく大な金額の投資は、バージョン2又は3へ変え
られる必要はない。そのアプリケーションは、さらに拡
張された機能を含むバージョンで書かれた付加プログラ
ムをそれに加えさせることさえできる。ユーザの都合の
よいときに、1度にアプリケーション全体を全く変更す
るというよりもむしろステップにおいて改良された性能
を得るようにして、そのアプリケーションは一度に1つ
のプログラムへ書キ直すことができる。
【図面の簡単な説明】
第1A図は、本発明によシ種々のバージョンのオペレー
ティング・システムカラのコマンド定義一のオペレーテ
ィング・システムで実行する適用方法を示す説明図、第
1B図は、第1A図のライブラリに記憶されるコマンド
定義のフォーマットを示す説明図、第1C図は、コマン
ド文字列のフォーマットを示す説明図、第2A図は、本
発明の好実施例のデータの流れを示す説明図、第2B図
は、第2A図に示されたQCL及びQCMDのプログラ
ムのフローチャート、第3A図及び第3B図は、第2A
図におけるコマンド・アナライザ・プログラムの動作を
示すフローチャート、第4図は、第2A図におけるコマ
ンド処理プログラムについての汎用フローチャート、第
5図は、第2A図におけるコンパイラ・プログラムの動
作を示すフローチャート、第6図は、処理中プログラム
のバージョン属性によシシステム・コマンドのバージョ
ン・ライブラリを介して探索する順序を示すブロック図
、第7A図乃至第7D図、第8A図乃至第8D図及び第
9A図乃至第9D図1、t!応するコマンド、それらの
種々のパー’) E 7 (7) :I−q 7ド定義
及びそれらの種々のシンタックスノ例ヲ示す説明図、そ
して、第10図は、複数の種々のバージョンのシステム
・コマンドを用いるアプリケーションにおける入子形プ
ログラムの例を示すブロック図である。 11・・・・システム−コマンド、12、i4.15・
・・・ライブラリ、16・・・・コマンド処理プログラ
ム、36・・・・コマンド・アナライザ・プログラム 出願人  インターナショナノいビジネス・マシーンズ
・コーポレーションコづ一ドーL入 パうメータ1      パラメータ゛λ゛     
   2寸うメーグM1c口 QcL/QCMD  ″7″ロク゛ラム拓28圓 才3A国”−5 遍3B図 環1o田 バージ′ヨシ 1       八−ジリ2うづフパう
°へリスト 、¥360 満了Am      第78 m CNLWTR(蓄上L7°Dデラ4玲Q角し)  ツー
2二Fノ\−ジaン 1 第7C目 ENOIA7TR(Lt、tブn7“ラム牽各丁 ) 
 コマzFノへこ一ジ′〕ン2 第7D(2) 第sAm        、3%8BIDCRTJO8
Q  (!;”ア9fr5イ〒列作べ)   コマ二F
゛バージ°マン1 詰sc[n CRTJOBQ  l”ff7=r−v’sq−を列(
76)   −t−v;H。 パ゛’−r I 、/ 2 、fisD図

Claims (3)

    【特許請求の範囲】
  1. (1)複数バージョンのシステム・コマンドと両立でき
    る複数のプログラムを実行するコンピュータ・システム
    であつて、 第1バージョンのシステム・コマンド定義を記憶する手
    段と、 少なくとも第2バージョンのシステム・コマンド定義を
    記憶する手段と、 前記プログラムによつて必要とされるシステム・コマン
    ドの所望バージョンを指示する手段と、前記コマンド定
    義を記憶する手段からコマンド定義を検索する手段であ
    つて、検索されるコマンド定義のバージョンが前記シス
    テム・コマンドの所望バージョンを指示する手段によつ
    て定まるものと、前記検索されるコマンド定義に応答し
    てコマンドを処理するコマンド処理手段であつて、全バ
    ージョンのコマンドが両立できるものと、 を備えたコンピュータ・システム。
  2. (2)ユーザのプログラムを実行するコンピュータ・シ
    ステムであつて、 第1バージョンのシステム・コマンドを記憶するライブ
    ラリと、 第2バージョンのシステム・コマンドを記憶するライブ
    ラリと、 前記ユーザのプログラムによつて呼び出されるシステム
    ・コマンドについて前記ライブラリを探索する手段と、 ユーザのプログラムについて前記ライブラリが探索され
    る順序を決める手段と、 前記ライブラリからコマンドを受取るように結合され、
    前記ユーザのプログラムによつて呼び出されるシステム
    ・コマンドを第1及び第2の両バージョンについて実行
    することができるコマンド実行プログラムと、を備えた
    コンピュータ・システム。
  3. (3)複数バージョンのコマンドをオペレーティング・
    システムへ動的に適合させる方法であつて、コマンド文
    字列及び該コマンドの処理に関係するオプション情報を
    検索し、 前記オプション情報に基づいて前記該コマンドのコマン
    ド定義を検索し、 前記検索したコマンド定義に従つて、前記検索したコマ
    ンド文字列をコマンド処理用フォーマットのデータに変
    形し、 どのバージョンのコマンドも実行できるように、前記該
    コマンド及び全バージョンの対応するコマンドに割当て
    られたコマンド処理プログラムで、前記変形したデータ
    を処理すること、 を含むオペレーティング・システムへのコマンド適合方
    法。
JP63289043A 1987-11-17 1988-11-17 コンピユータ・システム及びオペレーテイング・システムへのコマンド適合方法 Pending JPH01161563A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12196587A 1987-11-17 1987-11-17
US121965 1987-11-17

Publications (1)

Publication Number Publication Date
JPH01161563A true JPH01161563A (ja) 1989-06-26

Family

ID=22399781

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63289043A Pending JPH01161563A (ja) 1987-11-17 1988-11-17 コンピユータ・システム及びオペレーテイング・システムへのコマンド適合方法

Country Status (11)

Country Link
EP (1) EP0317478B1 (ja)
JP (1) JPH01161563A (ja)
KR (1) KR930000633B1 (ja)
CN (1) CN1013316B (ja)
CA (1) CA1286777C (ja)
DE (1) DE3853806T2 (ja)
ES (1) ES2072866T3 (ja)
GB (1) GB8814630D0 (ja)
HK (1) HK23596A (ja)
MY (1) MY103451A (ja)
PH (1) PH27430A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2017145287A1 (ja) * 2016-02-24 2018-12-20 京セラ株式会社 管理システム及び管理方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2240861A (en) * 1990-02-09 1991-08-14 Hewlett Packard Co Apparatus and method for adapting computer program from one operating environment to another
EP0667573A1 (en) * 1994-02-14 1995-08-16 International Business Machines Corporation Incorporation of services written in one operating system environment into another operating system environment
US6272521B1 (en) * 1997-12-08 2001-08-07 Object Technology Licensing Corporation Apparatus and method for allowing object-oriented programs created with different framework versions to communicate
US6634019B1 (en) 1999-07-16 2003-10-14 Lamarck, Inc. Toggling software characteristics in a fault tolerant and combinatorial software environment system, method and medium
US6973560B1 (en) 1999-07-16 2005-12-06 Lamarck, Inc. Fault tolerant and combinatorial software environment system, method and medium
AU6346200A (en) * 1999-07-16 2001-02-05 Lamarck, Inc. Fault tolerant and combinatorial software environment system, method and medium
US6404539B1 (en) 1999-11-09 2002-06-11 Giorgos Kotrotsios Light source for optical data transmission
US7120652B2 (en) * 2002-04-25 2006-10-10 Sun Microsystems, Inc. Method, system and program for determining version of storage devices and programs indicated in the resource information installed in the computer system
US7636172B2 (en) * 2002-07-31 2009-12-22 Ricoh Company, Ltd. Image forming apparatus, information processing apparatus and version check method using an API from an application
CN100373339C (zh) * 2004-12-20 2008-03-05 英业达股份有限公司 计算机平台操作系统兼容处理方法及装置
US20070174823A1 (en) * 2006-01-25 2007-07-26 Microsoft Corporation Compile-time interpretable code error detection
EP1857929A1 (en) 2006-05-18 2007-11-21 Alcatel Lucent Method to create a set of instructions applicable to distinct versions of a software application

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60167037A (ja) * 1984-02-10 1985-08-30 Hitachi Ltd エミュレーション方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4597044A (en) * 1982-10-14 1986-06-24 Honeywell Information Systems, Inc. Apparatus and method for providing a composite descriptor in a data processing system
EP0159699A3 (en) * 1984-04-23 1988-09-28 Nec Corporation A data processor executing microprograms according to a plurality of system architectures

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60167037A (ja) * 1984-02-10 1985-08-30 Hitachi Ltd エミュレーション方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2017145287A1 (ja) * 2016-02-24 2018-12-20 京セラ株式会社 管理システム及び管理方法
US10754315B2 (en) 2016-02-24 2020-08-25 Kyocera Corporation Management system and management method for transmitting a command including a code value for controlling an apparatus

Also Published As

Publication number Publication date
DE3853806D1 (de) 1995-06-22
PH27430A (en) 1993-06-21
CN1013316B (zh) 1991-07-24
EP0317478B1 (en) 1995-05-17
KR930000633B1 (ko) 1993-01-28
KR890008684A (ko) 1989-07-12
EP0317478A3 (en) 1991-09-11
GB8814630D0 (en) 1988-07-27
MY103451A (en) 1993-06-30
DE3853806T2 (de) 1995-11-30
HK23596A (en) 1996-02-16
CN1035374A (zh) 1989-09-06
EP0317478A2 (en) 1989-05-24
ES2072866T3 (es) 1995-08-01
CA1286777C (en) 1991-07-23

Similar Documents

Publication Publication Date Title
US5317722A (en) Dynamically adapting multiple versions on system commands to a single operating system
US5446900A (en) Method and apparatus for statement level debugging of a computer program
US5146593A (en) Procedure call interface
US6195662B1 (en) System for transforming and exchanging data between distributed heterogeneous computer systems
US6115544A (en) Method and system for displaying error messages
US6158001A (en) Automatic configuration generation
US5761510A (en) Method for error identification in a program interface
US6044216A (en) Method and apparatus for implementing cursor variables for accessing data from database
WO2000042518A9 (en) Parallelizing applications of script-driven tools
JPH01161563A (ja) コンピユータ・システム及びオペレーテイング・システムへのコマンド適合方法
Bailey et al. A formal model and specification language for procedure calling conventions
US20040158824A1 (en) Method and system for generating executable code for formatting and printing complex data structures
EP0237637A2 (en) A method for the relocation of linked control blocks
US6240546B1 (en) Identifying date fields for runtime year 2000 system solution process, method and article of manufacture
US8478953B2 (en) Buffer snapshots from unmodifiable data piece tables
US7096463B2 (en) System and apparatus for dynamically upgrading concentrated executable computer software code
US20020174135A1 (en) Schema-based file conversion
US6854109B2 (en) Tool for converting .MAP file formats
US7953714B2 (en) Method for maintaining parallelism in database processing using record identifier substitution assignment
US20090043832A1 (en) Method of determining and storing the state of a computer system
US7093245B2 (en) System and apparatus for upgrading concentrated executable computer software code without reconcentration
CN114757163A (zh) 基于资源的pe文件相似性比对方法
Yedidia Incremental PEG Parsing
JPH06290077A (ja) プログラム実行中断点設定方法
Hein IBM Rexx Language Update: Classic Rexx and The Rexx Compiler