JPH0322141A - Call intermediation system between different languages - Google Patents
Call intermediation system between different languagesInfo
- Publication number
- JPH0322141A JPH0322141A JP15800589A JP15800589A JPH0322141A JP H0322141 A JPH0322141 A JP H0322141A JP 15800589 A JP15800589 A JP 15800589A JP 15800589 A JP15800589 A JP 15800589A JP H0322141 A JPH0322141 A JP H0322141A
- Authority
- JP
- Japan
- Prior art keywords
- program
- intermediary
- language
- call
- name
- 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
Links
- 238000000034 method Methods 0.000 claims description 17
- 101100048436 Caenorhabditis elegans unc-1 gene Proteins 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 229910004438 SUB2 Inorganic materials 0.000 description 1
- 101100311330 Schizosaccharomyces pombe (strain 972 / ATCC 24843) uap56 gene Proteins 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 101150018444 sub2 gene Proteins 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
Description
【発明の詳細な説明】
〔概要〕
異なる言語間でプログラムを呼び出す仲介方式に関し、
仲介プログラムを固定部と可変部とに分け、マクロを用
意して仲介プログラムの可変部をNF4に作威可能にす
ると共に固定部を1箇所にまとめてサイズを小さくする
ことを目的とし、
呼び出し元の言語のあるプログラム名が呼び出された時
に該当する呼び出し先の言語のプログラム名を呼び出す
ためのエントリアドレスを生成する、個別処理からなる
仲介プログラム可変部と、この仲介プログラム可変部か
ら通知されたエントリアドレスをもとに呼び出し先の言
語のプログラムを呼び出す、共通処理からなる仲介プロ
グラム固定部とを備え、呼び出し元の言語のあるプログ
ラム名の呼び出しに対応して、上記仲介プログラム可変
部および上記仲介プログラム固定部によって呼び出し先
の言語の該当プログラムを呼び出し、処理依頼するよう
に構或する。また、上記仲介プログラム可変部について
、予め定義したマクロを用いて呼び出し元のプログラム
名および呼び出し先のプログラム名の対応づけを記述し
、これをアセンプルして当該仲介プログラム可変部を自
動生成し、リンクするように構成する。[Detailed Description of the Invention] [Summary] Regarding an intermediary method for calling programs between different languages, the intermediary program is divided into a fixed part and a variable part, and macros are prepared to allow the variable part of the intermediary program to be created in NF4. At the same time, the purpose is to reduce the size by consolidating fixed parts in one place, and when a program name in the calling language is called, an entry address is generated to call the program name in the corresponding calling language. , is equipped with an intermediary program variable section consisting of individual processing, and an intermediary program fixed section consisting of a common process that calls a program in the called language based on the entry address notified from this intermediary program variable section, and In response to the call of a program name in a certain language, the variable intermediary program section and the fixed intermediary program section call the corresponding program of the called language and request processing. In addition, for the above-mentioned intermediary program variable part, use a predefined macro to describe the correspondence between the calling program name and the called program name, assemble this, automatically generate the intermediary program variable part, and link it. Configure it to do so.
(産業上の利用分野)
本発明は、異なる言語間でプログラムを呼び出す呼出仲
介方式に関するものである。(Industrial Application Field) The present invention relates to a call mediation method for calling programs between different languages.
〔従来の技術と発明が解決しようとする課題〕一般にソ
フトウエアを開発する場合、その目的機能に応して記述
言語を選択している。また、1つのソフトウェアの中で
も、モジュール毎に別々の言語で記述し、これらを結合
することもある。[Prior art and problems to be solved by the invention] Generally, when developing software, a description language is selected depending on its intended function. Furthermore, even within a single piece of software, each module may be written in a different language and these may be combined.
このとき、言語が異なるとリンケージの違いにより、直
接結合しても呼び出しができない場合もでてくるため、
両者を介在する介在プログラムが必要となる.
例えば大型計算機(例えばMシリーズなど)におけるC
OBOLプログラムのリンケージは、OSrVの標準リ
ンケージ規約の通りである。一方、Cプログラムのリン
ケージは、標準リンケージ規約に更にC固有の拡張リン
ケージがある。このため、COBOLプログラムからC
プログラムを呼び出す場合、この拡張部分を吸収する仲
介プログラムが必要となる。この仲介プログラムは、第
3図に示すように下記(1+、(2)の処理を行う必要
がある。At this time, due to the difference in linkage between different languages, it may not be possible to call even if you connect directly.
An intervening program is required to intervene between the two. For example, C in large computers (such as the M series)
The linkage of the OBOL program follows the standard linkage conventions of OSrV. On the other hand, for the linkage of C programs, there is an extended linkage specific to C in addition to the standard linkage convention. For this reason, from a COBOL program
When calling a program, an intermediary program is required to absorb this extension. This mediation program needs to perform the following processing (1+, (2)) as shown in FIG.
(1)Cプログラムが使用するスタソク領域の獲得、お
よび解放を行う。(1) Acquire and release the standby area used by the C program.
f2) C O B O LプログラムがCプログラ
ムを呼び出そうとするとき、仲介してスタンク領域のア
ドレスをCプログラムに通知して呼び出す。f2) When the COBOL program attempts to call the C program, it mediates and notifies the C program of the address of the stall area and calls it.
このため、呼び出し先のCプログラムの数と名前とが異
なる毎に仲介プログラムを専用にその都度、作戒しなけ
ればならず、作戊に多くの手間が必要になってしまうと
いう問題があった。For this reason, each time the number and names of C programs to be called differ, it is necessary to dedicate an intermediary program each time, and there is a problem in that a lot of time and effort is required to create the intermediary program. .
尚、第3図構或の動作を簡単に説明する。ここで、21
はCOBOLプログラムを表し、22は仲介プログラム
を表し、23はCプログラムを表し、24はスタック領
域を表す.
第3図において、■:21は、22の初期化処理を呼び
出す。22は、24を動的に獲得し、その先頭アドレス
を22の内部に覚えておく.■=22は、21に復帰す
る。Incidentally, the operation of the third figure structure will be briefly explained. Here, 21
represents a COBOL program, 22 represents an intermediary program, 23 represents a C program, and 24 represents a stack area. In FIG. 3, ■:21 calls the initialization process of 22. 22 dynamically acquires 24 and stores its start address inside 22. ■=22 returns to 21.
■:2lは、22に対してSUB 1の呼び出しを依頼
する.
■:22は、24のアドレスを通知しなから23を呼び
出す.このとき、SUB 1に対応するfunclを選
択する。■: 2l requests 22 to call SUB 1. ■: 22 calls 23 without notifying 24 of its address. At this time, funcl corresponding to SUB 1 is selected.
■:23は、f unc 1の処理をして22に復帰す
る。■: 23 processes f unc 1 and returns to 22.
■:22は、21に復帰する。■: 22 returns to 21.
■ないし[相]は、■ないし■の処理と同一に行う。■ to [phase] are carried out in the same way as the processes of ■ to ■.
■=21は、22の終了処理を呼び出す。22は、24
を解放する。■=21 calls the termination process of 22. 22 is 24
release.
@:22は、2lに復帰する。@:22 returns to 2l.
本発明は、仲介プログラムを固定部と可変部とに分け、
マクロを用意して仲介プログラムの可変部を簡単に作或
可能にすると共に固定部を1m所にまとめてサイズを小
さくすることを目的としている。The present invention divides the intermediary program into a fixed part and a variable part,
The purpose is to prepare macros to easily create the variable parts of the intermediary program, and to reduce the size of the fixed parts by consolidating them into one meter.
第1図を参照して課題を解決する手段を説明する.
第1図において、仲介プログラム可変部5は、呼び出し
元の言語のあるプログラム名(例えばSUB 1)が呼
び出された時に該当する呼び出し先の言語のプログラム
名(例えばfunc 1)を呼び出すためのエントリア
ドレスを生成する、個別処理からなるものである.
仲介プログラム固定部2ば、仲介プログラム可変部5か
ら通知されたエントリアドレスをもとに呼び出し先の言
語のプログラムを呼び出す、共通処理からなるものであ
る.
〔作用〕
本発明は、第1図に示すように、呼び出し元の言語のあ
るプログラム名(例えば5118 1)が呼び出された
時に該当する呼び出し先の言語のプログラム名(例えば
func 1)を呼び出すためのエントリアドレスを生
成する、個別処理からなる仲介プログラム可変部5、お
よびこの仲介プログラム可変部5から通知されたエント
リアドレスをもとに呼び出し先の言語のプログラムを呼
び出す、共通処理からなる仲介プログラム固定部2を設
け、呼び出し元の言語のあるプログラム名の呼び出しに
対応して、仲介プログラム可変部5および仲介プロダラ
ム固定部2によって呼び出し先の言語の該当プログラム
を呼び出し、処理依頼するようにしている。また、仲介
プログラム可変部5について、予め定義したマクロを用
いて呼び出し元のプログラム名および呼び出し先のプロ
グラム名の対応づけを記述し、これをアセンブルして個
別処理からなる当該仲介プログラム可変部5を自動生成
し、リンクするようにしている.
従って、仲介プログラムを固定部と可変部とに分け、マ
クロを用意して仲介プログラム可変部5を簡単に作成可
能にすると共に仲介プログラム固定部2をl箇所にまと
めてサイズを小さくすることが可能となる.
〔実施例〕
次に、第1図および第2図を用いて本発明のl実施例の
構成および動作を順次詳細に説明する。The means to solve the problem will be explained with reference to Figure 1. In FIG. 1, the intermediary program variable unit 5 has an entry address for calling a program name (for example, func 1) in the corresponding language of the call destination when a certain program name (for example, SUB 1) in the language of the call source is called. It consists of individual processing to generate . The fixed intermediary program section 2 consists of a common process of calling a program in the called language based on the entry address notified from the variable intermediary program section 5. [Operation] As shown in FIG. 1, the present invention has a method for calling a program name (for example, func 1) in the corresponding language of the calling destination when a certain program name (for example, 5118 1) in the calling language is called. A fixed intermediary program consisting of a common process that calls a program in the called language based on the entry address notified from the intermediary program variable section 5, which generates the entry address of the intermediary program variable section 5. A section 2 is provided, and in response to the call of a certain program name in the calling source language, the intermediate program variable section 5 and the intermediate program fixed section 2 call the corresponding program in the called destination language and request processing. For the intermediary program variable section 5, a predefined macro is used to describe the association between the calling program name and the called program name, and this is assembled to create the intermediary program variable section 5 consisting of individual processing. It is automatically generated and linked. Therefore, by dividing the intermediary program into a fixed part and a variable part, and preparing macros, it is possible to easily create the intermediary program variable part 5, and it is also possible to reduce the size by consolidating the intermediary program fixed parts 2 into l locations. becomes. [Embodiment] Next, the configuration and operation of an embodiment of the present invention will be explained in detail using FIGS. 1 and 2.
第F図において、COBOLプログラム1ば、Cプログ
ラム3によって記述されたプログラムを呼び出して処理
依頼するプログラムである。In FIG. F, COBOL program 1 is a program that calls a program written in C program 3 and requests processing.
仲介プログラムは、仲介プログラム固定部2および仲介
プログラム可変部5から構成され、coBOLプログラ
ムlからの呼び出しに対応して、Cプログラム3によっ
て記述したプログラムを呼び出す、仲介を行うプログラ
ムである。ここでは、共通処理を仲介プログラム固定部
2に記述、および個別処理を仲介プログラム可変部5に
記述するように分離している。この大め、呼び出すCプ
ログラムの数や名前に依存する仲介プログラム可変部5
のみを作戒すればよい(第2図参照)。The intermediary program is composed of an intermediary program fixed section 2 and an intermediary program variable section 5, and is a program that performs intermediation by calling a program written in the C program 3 in response to a call from the coBOL program 1. Here, common processing is written in the intermediary program fixed part 2, and individual processes are written in the intermediary program variable part 5, so that they are separated. This large intermediary program variable part 5 depends on the number and names of C programs to be called.
All you need to do is discipline yourself (see Figure 2).
次に、第1図構成の動作を詳細に説明する.以下、1は
COBOLプログラムを表し、2ば仲介プログラム固定
部を表し、3はCプログラムを表し、4はスタンク領域
を表し、5は仲介プログラム可変部を表す.
■:lは、2の初期処理を呼び出す。2は、4を動的に
獲得し、その先頭アドレスを2の内部に覚えておく。Next, the operation of the configuration shown in FIG. 1 will be explained in detail. Hereinafter, 1 represents the COBOL program, 2 represents the fixed part of the intermediary program, 3 represents the C program, 4 represents the standby area, and 5 represents the variable part of the intermediary program. ■:l calls the initial processing of 2. 2 dynamically acquires 4 and stores its start address inside 2.
■:2は、lに復帰する。■: 2 returns to l.
■:lは、5に対してSUBIの呼び出しを依頼する.
■:5は、funclのエントリアドレスを通知しなか
ら2の共通処理を呼び出す.
■=2は、f unc 1を呼び出す。■:l requests 5 to call SUBI. ■: 5 calls the common process of 2 without notifying the entry address of funcl. ■=2 calls f unc 1.
■:funclから2に復帰する。■: Return to 2 from funcl.
■:2は、5に復帰する。■: 2 returns to 5.
■:5は、1に復帰する。■: 5 returns to 1.
■ないし[相]:これらは、■ないし■の処理と同一で
ある,但し、5のエントリ場所は、SUB2となる.
■:1は、2の終了処理を呼び出す。2は、4を解放す
る。■ to [phase]: These are the same as the processes for ■ to ■, except that the entry location for 5 is SUB2. ■: 1 calls the termination process of 2. 2 releases 4.
@lは、1に復帰する。@l returns to 1.
以上の処理によって、COBOLプログラム1は、仲介
プログラム可変部5および仲介プログラム固定部2を介
してCプログラム3の該当プログラムを呼び出して処理
依頼することが可能となる。Through the above processing, the COBOL program 1 can call the corresponding program of the C program 3 via the intermediary program variable section 5 and the intermediary program fixed section 2 and request processing.
この際、呼び出すCプログラムの数や名前により、仲介
プログラム可変部5のみを専用に作戒すればよい。仲介
プログラム固定部2は、共通に使用することかできる。At this time, it is only necessary to dedicate only the intermediate program variable section 5 depending on the number and names of C programs to be called. The intermediary program fixed part 2 can be used in common.
次に、第2図を用いて仲介プログラム可変部5の作或に
ついて詳細に説明する。Next, the operation of the intermediary program variable section 5 will be explained in detail using FIG.
第2図において、11は、可変部のアセンブラソースを
示す。例えば■ぱ、予め定義したマクロ1¥BR t
DGE″を用いて呼び出し元のCOBOLプログラムl
のプログラム名“SUBI”と、呼び出し先のCプログ
ラム3のプログラム名“FtJNc1”との対応づけを
記述する.12は、1lの可変部のアセンプラソースを
、13のマクロ定義体を参照してアセンブルし、オブジ
ェクト(仲介プログラム可変部5のオブジェクト)を生
成する。In FIG. 2, numeral 11 indicates an assembler source for the variable section. For example, ■Pa, predefined macro 1\BR t
The calling COBOL program using "DGE"
Describe the correspondence between the program name "SUBI" and the program name "FtJNc1" of the called C program 3. 12 assembles the assembler source of the variable part 1l with reference to the macro definition body 13 to generate an object (object of the intermediary program variable part 5).
15は、リンケージエディタによって、14のオブジェ
クト(仲介プログラム可変部5)と、予め用意しておい
た仲介プログラム固定部2、COBOLプログラムl1
およびCプログラム3とをリンクする。これにより、第
1図に示す構或の実行可能モジュールが作威されること
となる.〔発明の効果〕
以上説明したように、本発明によれば、仲介プログラム
を固定部と可変部とに分け、マクロを用意して仲介プロ
グラムの可変部を作戒する構成を採用しているため、仲
介プログラム可変部5を簡単に作或することができると
共に、仲介プログラム固定部2を1箇所にまとめてサイ
ズを小さくすることができる.これにより、COBOL
言語、C言語などを用いてソフトウエア開発を行う際に
、既に開発済の各種プログラムを部品として扱い、ソフ
トウェア開発の効率化を図ると共にプログラム構或の設
計を柔軟に行うことが可能となる。15 is a linkage editor that creates 14 objects (intermediary program variable section 5), an intermediary program fixed section 2 prepared in advance, and a COBOL program l1.
and C program 3. As a result, an executable module with the structure shown in Figure 1 will be created. [Effects of the Invention] As explained above, according to the present invention, an intermediary program is divided into a fixed part and a variable part, and a macro is prepared to control the variable part of the intermediary program. In addition, the variable intermediary program section 5 can be easily created, and the fixed intermediary program section 2 can be consolidated into one location to reduce its size. This allows COBOL
When developing software using a language such as the C language, various programs that have already been developed can be handled as components, making it possible to improve the efficiency of software development and flexibly design the program structure.
第1図は本発明の1実施例構或図、第2図は本発明に係
わる仲介プログラム可変部の作戒説明図、第3図は従来
技術の説明図を示す.
図中、1はCOBOLプログラム、2は仲介プログラム
固定部、3はCプログラム、4ぱスタンク領域、5は仲
介プログラム可変部、11は可変部の7センブラソース
、13はマクロ定義体を表す。FIG. 1 shows the structure of one embodiment of the present invention, FIG. 2 shows an explanatory diagram of the discipline of the variable part of the intermediary program according to the present invention, and FIG. 3 shows an explanatory diagram of the prior art. In the figure, 1 is a COBOL program, 2 is a fixed part of the intermediate program, 3 is a C program, 4 is a pass tank area, 5 is a variable part of the intermediate program, 11 is the assembler source of the variable part, and 13 is a macro definition body.
Claims (2)
おいて、 呼び出し元の言語のあるプログラム名が呼び出された時
に該当する呼び出し先の言語のプログラム名を呼び出す
ためのエントリアドレスを生成する、個別処理からなる
仲介プログラム可変部(5)と、この仲介プログラム可
変部(5)から通知されたエントリアドレスをもとに呼
び出し先の言語のプログラムを呼び出す、共通処理から
なる仲介プログラム固定部(2)とを備え、 呼び出し元の言語のあるプログラム名の呼び出しに対応
して、上記仲介プログラム可変部(5)および上記仲介
プログラム固定部(2)によって呼び出し先の言語の該
当プログラムを呼び出し、処理依頼するように構成した
ことを特徴とする異なる言語間における呼出仲介方式。(1) In an intermediary method for calling programs between different languages, it consists of individual processing that generates an entry address to call the program name of the corresponding destination language when a certain program name of the calling source language is called. It is equipped with an intermediary program variable section (5) and an intermediary program fixed section (2) consisting of a common process that calls a program in the called language based on the entry address notified from the intermediary program variable section (5). , The system is configured such that, in response to a call of a certain program name in the caller's language, the intermediary program variable section (5) and the intermediary program fixed section (2) call the corresponding program in the callee's language and request processing. A method for mediating calls between different languages.
定義したマクロを用いて呼び出し元のプログラム名およ
び呼び出し先のプログラム名の対応づけを記述し、これ
をアセンブルして当該仲介プログラム可変部(5)を自
動生成し、リンクするように構成したことを特徴とする
請求項第(1)項記載の異なる言語間における呼出仲介
方式。(2) For the above-mentioned intermediary program variable section (5), use a predefined macro to describe the correspondence between the calling program name and the called program name, and assemble this to assemble the corresponding intermediary program variable section (5). ) is configured to automatically generate and link the call mediating system between different languages according to claim (1).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15800589A JPH0322141A (en) | 1989-06-20 | 1989-06-20 | Call intermediation system between different languages |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15800589A JPH0322141A (en) | 1989-06-20 | 1989-06-20 | Call intermediation system between different languages |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0322141A true JPH0322141A (en) | 1991-01-30 |
Family
ID=15662175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15800589A Pending JPH0322141A (en) | 1989-06-20 | 1989-06-20 | Call intermediation system between different languages |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0322141A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6359854B1 (en) | 1993-11-01 | 2002-03-19 | Mitsubishi Denki Kabushiki Kaisha | Disk reproducing apparatus |
JP2011222022A (en) * | 2010-04-13 | 2011-11-04 | Intel Corp | Method and system for achieving non-abi compliant function over unseen interface |
-
1989
- 1989-06-20 JP JP15800589A patent/JPH0322141A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6359854B1 (en) | 1993-11-01 | 2002-03-19 | Mitsubishi Denki Kabushiki Kaisha | Disk reproducing apparatus |
JP2011222022A (en) * | 2010-04-13 | 2011-11-04 | Intel Corp | Method and system for achieving non-abi compliant function over unseen interface |
US8464230B2 (en) | 2010-04-13 | 2013-06-11 | Intel Corporation | Methods and systems to implement non-ABI conforming features across unseen interfaces |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2569092B2 (en) | Address resolution method for I / O device control program | |
US9280527B2 (en) | Method and system for directly mapping web services interfaces and Java interfaces | |
Bruneton et al. | Recursive and dynamic software composition with sharing | |
US7673028B2 (en) | Method and system for container-managed configuration and administration | |
JPH01306923A (en) | System for connecting different languages | |
JP2003535383A (en) | Object property metamodel emulator for legacy data structures | |
WO2000077686A2 (en) | Method for distributed transaction support using jdbc 1.0 drivers | |
JPH02272627A (en) | Digital computer system and method of invocation of procedure of the same | |
US7162721B2 (en) | Application-independent API for distributed component collaboration | |
US20070073849A1 (en) | Method and system for unifying configuration descriptors | |
JP2001522114A (en) | Method and system for facilitating distributed software development in a distribution-aware manner | |
KR20170086560A (en) | System and method for providing and executing a domain-specific language for cloud services infrastructure | |
JP2001527234A (en) | Call mechanism for static and dynamic linked functions in an object-oriented controller using a heterogeneous development tool set | |
US7191452B2 (en) | Method for creating application programming interfaces for internal applications | |
WO2008080524A1 (en) | Web container extension architecture | |
JPH09231077A (en) | Method for reducing size of computer program | |
EP0704795B1 (en) | A data processing system providing an encapsulation system and a method of operating such a system | |
JPH0322141A (en) | Call intermediation system between different languages | |
JP2001236234A (en) | Computer and computer readable recording medium | |
KR100602318B1 (en) | Service application architecture for integrated network service providers | |
Itoh et al. | Scone: using concurrent objects for low-level operating system programming | |
JP2006236375A (en) | Web application development method, development support system, and program about development method | |
JPH02214942A (en) | Production system for control transfer function to master load module | |
Hunt et al. | The EJB Architecture | |
Costa et al. | PUC |