JPH0831036B2 - プログラム上位互換保証方式 - Google Patents

プログラム上位互換保証方式

Info

Publication number
JPH0831036B2
JPH0831036B2 JP1082038A JP8203889A JPH0831036B2 JP H0831036 B2 JPH0831036 B2 JP H0831036B2 JP 1082038 A JP1082038 A JP 1082038A JP 8203889 A JP8203889 A JP 8203889A JP H0831036 B2 JPH0831036 B2 JP H0831036B2
Authority
JP
Japan
Prior art keywords
function
level
program
processing
parent
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
JP1082038A
Other languages
English (en)
Other versions
JPH02259929A (ja
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 JP1082038A priority Critical patent/JPH0831036B2/ja
Publication of JPH02259929A publication Critical patent/JPH02259929A/ja
Publication of JPH0831036B2 publication Critical patent/JPH0831036B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 〔概要〕 旧機能との互換性を保持し、機能拡張を行うプログラ
ム上位互換保証方式に関し、 旧機能を利用するアプリケーションとの互換性を保持
し、新機能に対する更新を容易にすることが可能なプロ
グラム上位互換保証方式を提供することを目的とし、 プログラムの機能を他のプログラムが関数CALLによっ
て利用可能である関数インタフェイスを持つプログラム
において、親プログラムが関数呼び出しの前に各関数の
使用レベルを宣言する使用レベル宣言手段と、前記親プ
ログラムに対する各関数の処理を実行する処理プログラ
ムにおいて、関数の機能レベルを管理し、前記親プログ
ラムの使用レベル宣言手段によって宣言された機能レベ
ルを各関数機能毎に格納するレベル管理テーブル手段
と、前記親プログラムから関数呼び出しされた場合に、
前記使用レベルの宣言手段によって前記レベル管理テー
ブルに設定された各関数のレベルを前記レベル管理テー
ブル手段を参照して調べるレベルチェック手段と、前記
宣言されたレベルに対応する機能を処理し、宣言された
レベルに対応する結果を前記親プログラム側に返却して
復帰する処理手段とを有し、前記親プログラムの要求す
る機能レベルに対応した処理を処理プログラム側で行う
ように構成する。
〔産業上の利用分野〕
本発明は、関数インタフェイスを持つプログラムの機
能拡張方式に係り、更に詳しくは、旧機能との互換性を
保持し、機能拡張を行うプログラム上位互換保証方式に
関する。
一般にプログラムは、メインプログラムと、関数(フ
ァンクション)や、手続き(プロシージャ)等のサブル
ーチンから構成される。メインプログラム内において、
関数CALLすることにより、例えば関数型のサブルーチン
に移り、サブルーチン終了後にメインプログラムにリタ
ーンする形で実行される。プログラムの機能を、すなわ
ちサブルーチン内で実行される関数機能を他のプログラ
ム、すなわちアプリケーションプログラムのメインの部
分で関数CALLすることによって、利用するようなプログ
ラムは関数インタフェイスを持つプログラムといい、特
に、C言語やパスカル言語等の構造化プログラム方式の
ものでは多くの関数インタフェイスを持つ。このよう
に、関数インタフェイスを持つプログラムにおいて、メ
インのアプリケーションプログラムの変更を少なくし、
且つまた関数機能のレベルアップを行うことの重要性が
高まっている。
〔従来の技術〕
従来、この種の関数インタフェイスを持つプログラム
が機能拡張を行う場合、過去に定義された関数と同名の
関数を内容が拡張された機能を利用する第1の方式と、
機能が拡張された各々のレベル毎に別名の新関数を用意
し、旧機能と新機能等の両方とも使用可能にする第2の
方式がある。
〔発明が解決しようとする課題〕 同名の関数CALLする第1の方式を利用した場合には、
同名の関数の機能或いはインタフェイスが大幅に異なっ
ている場合には、拡張された機能は利用できるが、過去
において定義された旧機能の関数を組み込んだアプリケ
ーションは利用できないという問題点が生じていた。
また、レベルアップ毎に別名の新関数を用意する第2
の方式ではメインのプログラムであるアプリケーション
側において、類似した機能の関数が多量に存在すること
になり、アプリケーションのレベルアップ時には該当す
る関数名をすべて書き換える必要があり、修正量が膨大
になるばかりでなく、修正誤りを発生する可能性が高く
なるという問題点が生じていた。
本発明は旧機能を利用するアプリケーションとの互換
性を保持し、新機能に対する更新を容易にすることが可
能なプログラム上位互換保証方式を提供することを目的
とする。
〔課題を解決するための手段〕
第1図は本発明の原理ブロック図である。
プログラムの機能を他のプログラムが関数CALLによっ
て利用可能である関数インタフェイスを持つプログラム
において、使用レベル宣言手段2は、親プログラム1が
関数呼び出しの前に各関数の使用レベルを宣言する。
親プログラム1に対する各関数の処理を実行する処理
プログラム3において、レベル管理テーブル手段4は、
関数の機能レベルを管理し、前記親プログラム1の使用
レベル宣言手段2によって宣言された機能レベルを各関
数機能毎に格納する。
レベルチェック手段5は、親プログラム1から関数呼
び出しされた場合に、前記使用レベルの宣言手段2によ
ってレベル管理テーブル4に設定された各関数のレベル
をレベル管理テーブル手段4を参照して調べる。
復帰する処理手段6は、宣言されたレベルに対応する
機能を処理し、宣言されたレベルに対応する結果を親プ
ログラム側に返却し、親プログラム1の要求する機能レ
ベルに対応した処理を処理プログラム3側で行う。
〔作用〕
本発明では、関数インタフェイスを持つ処理プログラ
ムに、アプリケーションが使用する機能のレベルをテー
ブル形式で保持する「レベル管理テーブル」を設け、ア
プリケーションからの関数呼び出しが行われた場合、ア
プリケーションの要求する機能レベルを「レベル管理テ
ーブル」により調べ、該当レベルに対応した処理を行う
ことにより、プログラムの上位互換を保証する。
〔実施例〕
次に本発明の実施例を図面を参照して説明する。
第2図は本発明のプログラム上位互換保証方式の概念
図である。同図において、1′はアプリケーションプロ
グラムで、3はサブルーチンとしての処理プログラムで
ある。本発明では、関数インタフェイスを持つ処理プロ
グラム、すなわちサブルーチン側の関数を構成する処理
プログラムの中にアプリケーション、すなわち親プログ
ラムが使用する機能レベルをテーブル形式で保持するレ
ベル管理テーブル4を設ける。そして、アプリケーショ
ンからの関数呼び出し、すなわち関数CALLが行われた場
合、アプリケーションの要求する機能レベルをレベル管
理テーブル4により調べ、該当レベルに対応した処理を
処理プログラム3内で行い、プログラムの上位互換を保
証する。例えば、関数にはA、B、C等があり、各関数
には3つの機能がレベル1、レベル2、レベル3に対応
して、存在するものとする。ここでレベル1は基本的な
機能を含むものでレベル2はその基本機能にレベルアッ
プしたものとしてαが付加され、更にレベル3はレベル
2に対して更にレベルアップしたものとしてαが加えら
れたものとする。ここで、レベル1、レベル2、レベル
3の順で機能が拡張されているものとする。本発明の方
式ではアプリケーションプログラムの親プログラムから
関数レベルを選択できるようにするため、アプリケーシ
ョンプログラム内で関数呼び出しの前に関数の使用レベ
ルの宣言をで行う。一方、サブルーチン側の処理プロ
グラム3は関数の使用レベルを管理するレベル管理テー
ブル4を有し、アプリケーションからの使用レベル宣言
の値をアプリケーションが使用レベルの宣言を行った段
階でそのテーブル内に設定する。例えば、関数Aがレベ
ル2を使用する場合には、レベル2とし、関数Bがレベ
ル3を使用するとすればレベル3、関数Cがレベル1を
使用すれば、レベル1をそれぞれ格納する。これがアプ
リケーションプログラム内の使用レベルの宣言と、処理
プログラムにおけるレベル管理テーブルのレベル値の設
定である。
アプリケーションプログラムはメインプログラム側に
あるので、関数を呼び出す場合にはCALL文として呼び出
す。従って、アプリケーションプログラムが実行してい
る途中で、アプリケーションからの関数呼び出しが行わ
れる。例えば、に示すように関数AがCALLされるとす
る。すると処理プログラム3に実行が移るが、処理プロ
グラム3ではに示されるように処理プログラムの実行
する前に必ず、レベル管理テーブル4の内容を調べ、呼
び出された関数Aのレベルを調べる。このレベルはすで
にアプリケーションプログラムの前の方でレベル宣言さ
れ、その値と等しいレベル番号が格納されているので、
このレベルをレベル管理テーブル4から引き出すことが
できる。例えば、関数AがCALLされた場合には、レベル
管理テーブル4では関数機能Aのレベルは2であること
が読み出されることになる。従って処理プログラム3の
関数Aの実行は以下レベル2で行うことになる。レベル
2は関数Aの基本的機能にプラスαされたものとして実
行される。そして、においてレベル2の処理を行っ
て、このレベル2に対応する結果の返却をアプリケーシ
ョン側に送ってリターンすることになる。このように本
発明ではにおいてアプリケーションからの関数呼び出
しが行われると、において、処理プログラムはレベル
管理テーブル4の該当する機能レベルを調べ、におい
て機能に対応した処理を行うことになる。このようにす
ればアプリケーション側の関数名は同一であり、しかも
処理プログラムにおいては、各レベルに共通した部分は
共通に利用でき、レベルアップされたものだけをレベル
宣言に従って利用することが可能となる。さらにレベル
に対応して旧機能と新機能等を選択することが可能であ
るばかりでなく、処理プログラムの修正量の減少、ある
いは修正誤りの減少が可能となる。
第3図は本発明のプログラム上位互換保証方式を説明
する実施例図である。同図において1′はアプリケーシ
ョンプログラム、3は処理プログラムである。アプリケ
ーションプログラム1′において、関数Aと関数Bが利
用される場合、関数Aはレベル1からレベル3までの3
つが存在し、関数Bはレベル1と2の2つのレベルがあ
るとする。関数Aのレベル1は引数として、パラメタx
のみ指定可能であるとし、レベル2はパラメタにxとy
を指定可能であり、レベル3は更にパラメタにx、y、
zを指定可能であるとする。すなわち、レベル1の関数
Aは引数xの関数であり、レベル2の関数Aはxとyと
の関数であり、レベル3はx、y及びzの関数であると
する。関数の実行する場合には、親プログラムでこの関
数を呼ぶ前に仮引数は特定な値の実引数として与えら
れ、この実引数に対する処理プログラムがサブルーチン
側で実行され、その後、関数の値が戻される。また、関
数Bに対してはレベル1、と2では引数は同じである
が、親プログラム側に返す関数の値が異なるものとし、
レベル1では結果としてpという変数を返却するものと
し、レベル2は結果としてpとqを返却するものとす
る。まず、アプリケーションプログラムが実行される
と、2において使用レベルの宣言を行う。実施例として
関数Aはレベル2、関数Bはレベル1を宣言するものと
する。すると処理プログラム3上ではレベル管理テーブ
ル4が設置されており、このレベル管理テーブル4に宣
言されたレベル値を設定する。従って機能Aはレベル
2、機能Bはレベル1が設定される。続いてアプリケー
ションプログラム1が実行されるが、この実行途中でま
ず、において関数AがCALLされるものとする。関数A
ではレベル2の実行を行うが、アプリケーション側では
パラメタとしてyのみを設定したとする。レベル2はパ
ラメタのxとyを指定可能であるとしているが、パラメ
タにyのみを設定したとすれば、パラメタxに対する実
引数は定義されない。しかしこの場合でも、関数Aの実
行が可能であるとすれば、処理プログラムはyのみのパ
ラメタを用いて処理を実行し、そのレベルに対応した処
理を行うことができるものとする。従って、で関数A
をCALLし、yのみを指定した場合には、処理プログラム
3では、まず、レベル管理テーブル4を調べて関数Aの
レベルを調べ、そのレベルが2であることを確認すれ
ば、レベル2に対応する処理を実行し、結果の返却をリ
ターン時に行う。
続いてアプリケーションプログラム1′が実行途中で
同じ関数AをでCALLしたとする。この時パラメタとし
てzを指定したとする。レベル2の関数Aはパラメタに
xとyのみが指定可能であるから、zを指定すると誤り
になる。従って、において関数AがCALLされ、処理プ
ログラム3に実行制御が移ると、処理プログラム3では
同様にまずレベル管理テーブル4を用いて関数Aのレベ
ルを調べ、レベル2であることを確認する。このレベル
2ではパラメタにxとyが指定可能であってzと指定す
ると間違いであることが分かる。従って処理プログラム
3は指定に間違いがあったということ、すなわちエラー
を親プログラム1側のアプリケーション1′に通知する
ことになる。すなわち、関数Aでレベル2を実行した場
合、パラメタzは未サポートなのでエラーで復帰するこ
とになる。
さらににおいて、今度は関数BをCALLすることにな
る。関数Bでは、レベル1が宣言されているので処理プ
ログラム3にルーチンが移った段階で処理プログラム3
はまずレベル管理テーブル4を調べて関数Bがレベル1
であることを確認する。関数Bの処理ルーチンではレベ
ル1もレベル2も同様なものが実行されるが、レベル1
では結果としてpを返却するだけであり、レベル2は結
果としてpとqを返却する違いがある。従って、処理プ
ログラム3側では、関数BがCALLされると、処理の結果
としてはレベルにかからわずpとqが生成されるが、
今、レベル1が指定されているため、処理プログラム3
は結果として生じたpとqのうち、レベル1に対応した
変数としてpのみを返却する。すなわち、アプリケーシ
ョンプログラムにリターンする場合には、結果のpのみ
を返却してリターンすることになる。関数Bのレベルが
レベル1の場合には、qは未サポートなので、処理を行
った結果にqが含まれていても、それを返却しないこと
になる。
本発明では、このように、プログラムの機能を他のプ
ログラム、すなわちアプリケーションプログラムが関数
CALLによって利用可能であるという関数インタフェイス
を持つプログラムにおいて、旧機能との互換性を保持し
つつ、機能拡張を行うためのインタフェイスが提供され
ていることになる。
〔発明の効果〕
本発明によれば、関数インタフェイスを持つプログラ
ムの機能拡張に伴う、アプリケーションプログラムへの
影響を最小限のものとすることが可能となる。さらに、
処理プログラムの機能拡張が行われても旧機能に対応す
る関数を組み込んだアプリケーションを改造する必要が
なく、またアプリケーションが機能拡張を行う場合も、
修正量の減少、修正誤りの減少が可能になる。
【図面の簡単な説明】
第1図は本発明の原理ブロック図、 第2図は本発明のプログラム上位互換保証方式の概念
図、 第3図は本発明のプログラム上位互換保証方式を説明す
る実施例図である。 1……親プログラム、2……使用レベル宣言手段、3…
…処理プログラム、4……レベル管理テーブル手段、5
……レベルチェック手段、6……復帰する処理手段.

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】処理プログラムの機能を親プログラムが関
    数CALLによって利用可能である関数インタフェイスを持
    つプログラムにおいて、 前記親プログラム(1)は、関数呼び出しの前に各関数
    の使用レベルを宣言する使用レベル宣言手段(2)を備
    え、 前記親プログラム(1)に対する各関数の処理を実行す
    る処理プログラム(3)は、 関数の機能レベルを管理し、前記親プログラム(1)の
    使用レベル宣言手段(2)によって宣言された使用レベ
    ルを各関数機能毎に格納するレベル管理テーブル手段
    (4)と、 前記親プログラム(1)から関数呼び出しされた場合
    に、前記使用レベルの宣言手段(2)によって前記レベ
    ル管理テーブル(4)に設定された各関数のレベルを前
    記レベル管理テーブル手段(4)を参照して調べるレベ
    ルチェック手段(5)と、 前記宣言されたレベルに対応する機能を処理し、宣言さ
    れたレベルに対応する結果を前記親プログラム側に返却
    して復帰する処理手段(6)とを有し、 前記親プログラム(1)の要求する機能レベルに対応し
    た処理を処理プログラム(3)側で行うことを特徴とす
    るプログラム上位互換保証方式。
  2. 【請求項2】前記親プログラムはユーザが開発するアプ
    リケーションプログラムであることを特徴とする請求項
    1記載のプログラム上位互換保証方式。
JP1082038A 1989-03-31 1989-03-31 プログラム上位互換保証方式 Expired - Fee Related JPH0831036B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1082038A JPH0831036B2 (ja) 1989-03-31 1989-03-31 プログラム上位互換保証方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1082038A JPH0831036B2 (ja) 1989-03-31 1989-03-31 プログラム上位互換保証方式

Publications (2)

Publication Number Publication Date
JPH02259929A JPH02259929A (ja) 1990-10-22
JPH0831036B2 true JPH0831036B2 (ja) 1996-03-27

Family

ID=13763351

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1082038A Expired - Fee Related JPH0831036B2 (ja) 1989-03-31 1989-03-31 プログラム上位互換保証方式

Country Status (1)

Country Link
JP (1) JPH0831036B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55137360A (en) * 1979-04-16 1980-10-27 Nissan Motor Co Ltd Controller for automobile
JPS6433632A (en) * 1987-07-30 1989-02-03 Pfu Ltd Calling control system for subroutine

Also Published As

Publication number Publication date
JPH02259929A (ja) 1990-10-22

Similar Documents

Publication Publication Date Title
JP3508775B2 (ja) 一つのプログラムの中でまたは1つのプロセッサ環境に於て、夫々のオブジェクトコードタイプが異なる複数のプログラムセグメントを実行するための装置
KR100310304B1 (ko) 상태이전을허용하는동기화방법
JPH02272627A (ja) デイジタル・コンピユータ・システムとその手続呼び出し方法
US5987258A (en) Register reservation method for fast context switching in microprocessors
CN101271402A (zh) 一种调用函数的方法及系统
US20030130980A1 (en) Efficient configuration data migration technique
JP5895616B2 (ja) 情報処理装置およびプログラム実行方法
Cook et al. Dymos: A dynamic modification system
CN112667324A (zh) 一种调用命令模式中命令类的方法及装置
EP0417916B1 (en) Procedure state descriptor system for digital data processors
US5765148A (en) Database processing apparatus and database processing method for variable length objects, and computer-readable memory medium for storing database processing program
JP3019915B2 (ja) 手続き呼出し方法
JPH10510649A (ja) 計算機システムの起動システム
JP3437284B2 (ja) サ−ビス処理システム
JPH02259929A (ja) プログラム上位互換保証方式
JPH03164835A (ja) インタプリタ型言語処理系における大域変数処理のコンパイル方法
JP3085202B2 (ja) メモリプライオリティ制御方式
JP2005284925A (ja) コンピュータシステムおよびプログラム更新方法
JPH0253146A (ja) プログラム・トレース方法
JP2573391B2 (ja) プログラマブルコントローラ
JP3664602B2 (ja) 情報処理システム
JPH0439728A (ja) プログラム処理方法
JPH0421028A (ja) レジスタ管理方法
JP4132504B2 (ja) 半導体試験システム
JP3503531B2 (ja) オンラインリアルタイム処理システム及び該システムにおける副ロードモジュール置換方法

Legal Events

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