JP2000035882A - Method for dynamic change of function calling sequence - Google Patents

Method for dynamic change of function calling sequence

Info

Publication number
JP2000035882A
JP2000035882A JP10204909A JP20490998A JP2000035882A JP 2000035882 A JP2000035882 A JP 2000035882A JP 10204909 A JP10204909 A JP 10204909A JP 20490998 A JP20490998 A JP 20490998A JP 2000035882 A JP2000035882 A JP 2000035882A
Authority
JP
Japan
Prior art keywords
function
program
call
changed
stored
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
JP10204909A
Other languages
Japanese (ja)
Inventor
Toshio Shirane
寿雄 白根
Kyoko Shirane
恭子 白根
Masao Shigehiro
正夫 重広
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.)
OKI SOFTWARE OKAYAMA KK
Oki Electric Industry Co Ltd
Original Assignee
OKI SOFTWARE OKAYAMA KK
Oki Electric Industry Co 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 OKI SOFTWARE OKAYAMA KK, Oki Electric Industry Co Ltd filed Critical OKI SOFTWARE OKAYAMA KK
Priority to JP10204909A priority Critical patent/JP2000035882A/en
Publication of JP2000035882A publication Critical patent/JP2000035882A/en
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

PROBLEM TO BE SOLVED: To dynamically change a calling sequence of the function of a different product by setting the head address of the execution part of the function being the object of an order change to a prescribed place in a function call table. SOLUTION: The address of a function call table where the head address of the substantial execution part of Y function being one of the objects of an order change is stored is obtained. The stored head address of the substantial execution part of Y function is acquired and the head address is saved from the function call table (S1 and 2). The address of the function call table where the head address of the substantial execution part of B function being the other of the objects is stored is obtained. The stored head address of the substantial execution part of B function is obtained and the head address is saved from the function call table (S3 and 4). The head address of the substantial execution part of B function is set in the table address and the head address of the substantial execution part of Y function is set in the table address (S5). Then, the function call table is rewritten.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明はコンピュータプログ
ラムにおける、関数呼び出しの手順を変更する方法、特
にソースコードが開示されていない等、実行形式を変更
できないプログラム内の関数呼び出しの手順を動的に変
更する方法に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method of changing a function calling procedure in a computer program, and particularly to a method of dynamically changing a function calling procedure in a program whose execution format cannot be changed, for example, when the source code is not disclosed. How to do it.

【0002】[0002]

【従来の技術】従来、関数呼び出しの手順を変更するに
は、ソースプログラムを変更して再度実行形式を作成し
直すといった静的に変更する方法が行われていた。この
ため、関数呼び出し手順の変更は、ソースコードが開示
され、実行形式を作成し直すことが可能なプログラム
(すなわち、自身が作成したプログラムであって、以
下、自身のプログラムという)でのみ可能であった。
2. Description of the Related Art Heretofore, in order to change the procedure of a function call, a method of statically changing the source program and re-creating an executable form has been used. For this reason, the function call procedure can be changed only by a program whose source code is disclosed and whose executable form can be re-created (that is, a program created by itself and hereinafter referred to as its own program). there were.

【0003】[0003]

【発明が解決しようとする課題】一方、近年のプログラ
ム開発では、開発作業を簡略化する等の理由から、別プ
ロダクト(ソースコードを開示しない、若しくはソース
コードを開示していてもそれを変更後、実行形式を作成
できない関数を提供している部門)が提供するライブラ
リ(プログラムで使われる関数やデータの集まり)をリ
ンク(結合)することによって実行形式を作成する方法
が一般的になってきている。このように、別プロダクト
のライブラリ(すなわち、実行形式を変更できないプロ
グラムであって、以下、別プロダクトのプログラムとい
う)を使用して開発された自身のプログラムに、例えば
この別プロダクトのプログラム内の関数(以下、別プロ
ダクトの関数という)からの戻り値が予想外の値であっ
たり、その別プロダクトの関数の動作時間がかかりすぎ
ている等の問題点があったときには、まず、その別プロ
ダクトの関数のバグなのか、その関数が呼び出している
別の関数のバグなのかの切り分けを行う必要がある。そ
こで、この切り分けを行う方法として、別プロダクトの
関数を呼び出す手順を所望の手順に変更する方法が考え
られている。しかしながら、従来技術では、上記したよ
うに自身のプログラム内の関数を呼び出す手順の変更は
容易では無いにしろソースプログラムを静的に変更する
ことにより可能であるが、ここで望まれているように別
プロダクトの関数を呼び出す手順を所望の手順に変更す
ることは不可能であるという問題点があった。
On the other hand, in recent program development, another product (for which the source code is not disclosed or the source code is disclosed, In general, a method of creating an executable form by linking (joining) a library (a collection of functions and data used in a program) provided by a department that provides functions that cannot create an executable form has become common. I have. In this way, for example, a function in the program of another product is added to its own program developed using the library of another product (that is, a program whose executable form cannot be changed, and is hereinafter referred to as a program of another product). (Hereinafter referred to as a function of another product), if there is a problem such as an unexpected value or the operation time of the function of another product is too long, You need to determine whether it is a bug in the function or a bug in another function that it calls. Therefore, as a method of performing the separation, a method of changing a procedure for calling a function of another product to a desired procedure has been considered. However, in the prior art, as described above, it is possible to change the procedure for calling a function in its own program by statically changing the source program although it is not easy. There is a problem that it is impossible to change a procedure for calling a function of another product to a desired procedure.

【0004】このようなことから、別プロダクトの関数
を呼び出す手順を所望の手順に変更することが可能な関
数呼び出しの手順を動的に変更する方法の開発が望まれ
ていた。
[0004] In view of the above, there has been a demand for the development of a method for dynamically changing a function calling procedure that can change a procedure for calling a function of another product to a desired procedure.

【0005】[0005]

【課題を解決するための手段】本発明に係る関数呼び出
しの手順を動的に変更する方法は、実行形式を変更でき
ない第1のプログラムに含まれる関数のうち、順序変更
対象の関数が第1のプログラムにおいて呼び出される順
序が予め判明している場合に、第1又は第1のプログラ
ムを使用した第2のプログラム内の関数の呼び出しを追
加することによって、第1のプログラム内の関数を呼び
出す順序を第2のプログラムの実行中に変更する方法で
あって、第2のプログラムにおいて呼び出される関数へ
の呼び出し先が格納される関数呼び出しテーブルを備
え、追加される関数は再帰的な関数であり、そして、第
2のプログラムは、関数呼び出しテーブルのうち、順序
変更対象の関数への呼び出し先が格納されている場所
に、予め判明している呼び出し順序に基づいて、場所に
格納された呼び出し先を入れ替えて格納することによっ
て関数呼び出しテーブルを書き換える関数呼び出しテー
ブル書き換え処理を含んでおり、第2のプログラムが実
行されると、関数呼び出しテーブルから順序変更対象の
関数への呼び出し先を待避し、関数呼び出しテーブル書
き換え処理に基づいて、待避した呼び出し先を関数呼び
出しテーブル内の所定の場所に設定して、関数呼び出し
の手順を変更するものである。なお、第1のプログラム
とは、後述の実施の形態の別プロダクトのプログラムに
相当し、第2のプログラムとは、同様に後述の実施の形
態の自身のプログラムに相当する。
According to the method of dynamically changing the procedure of a function call according to the present invention, among the functions included in the first program whose execution format cannot be changed, the function whose order is to be changed is the first function. Call order of a function in the first program by adding a call to a function in the second program using the first or first program when the order of calls in the first program is known in advance Is changed during execution of the second program, comprising a function call table in which a callee to a function called in the second program is stored, wherein the added function is a recursive function, The second program is known in advance in a location in the function call table where a callee to the function whose order is to be changed is stored. And a function call table rewriting process for rewriting the function call table by replacing the call destination stored in the location based on the calling order and storing the call destination. When the second program is executed, the function call table is rewritten. The call destination to the function whose order is to be changed is saved, and the saved call destination is set at a predetermined location in the function call table based on the function call table rewriting process, thereby changing the function calling procedure. . Note that the first program corresponds to a program of another product of the embodiment described later, and the second program similarly corresponds to its own program of the embodiment described later.

【0006】本発明においては、第2のプログラムの実
行中に、関数呼び出しテーブル書き換え処理に基づい
て、関数呼び出しテーブルに格納されている先頭アドレ
スのうち、順序変更の対象である関数の実質の実行部の
先頭アドレスを、関数呼び出しテーブル内の所定の場所
に設定して、関数呼び出しの手順を動的に変更する。
According to the present invention, during execution of the second program, the actual execution of the function whose order is to be changed among the start addresses stored in the function call table is performed based on the function call table rewriting process. The head address of the section is set at a predetermined location in the function call table, and the procedure of the function call is dynamically changed.

【0007】[0007]

【発明の実施の形態】図1は本発明の一実施の形態の処
理の流れを示すフローチャート、図2は本発明の一実施
の形態に係る関数呼び出しの手順を動的に変更する方法
が適用されたシステムの構成を示すブロック図である。
このシステムにおいて、1は自身のプログラム及び別プ
ロダクトのプログラムを記憶する補助記憶装置、2はR
AM、3はROM、4はキーボード等の入力装置、5は
CPUであり、入力装置4によりプログラムの実行が指
示されると、CPU5はプログラムを補助記憶装置1か
ら読み出して、ROM3に記憶されたローディングプロ
グラムによりRAM2に記憶し、プログラムを実行す
る。
FIG. 1 is a flow chart showing the flow of processing according to an embodiment of the present invention, and FIG. 2 is a method to dynamically change the procedure of a function call according to an embodiment of the present invention. FIG. 2 is a block diagram showing a configuration of a system performed.
In this system, 1 is an auxiliary storage device for storing its own program and another product's program, and 2 is an R storage device.
AM, 3 is a ROM, 4 is an input device such as a keyboard, and 5 is a CPU. When execution of the program is instructed by the input device 4, the CPU 5 reads the program from the auxiliary storage device 1 and stores the program in the ROM 3. The program is stored in the RAM 2 by the loading program and the program is executed.

【0008】次に、関数呼び出し順序変更の種類につい
て説明する。この種類を以下の(a)〜(d)に示す。
なお、以下の説明にある関数X、関数Y、関数Zは、自
身のプログラム内の関数、別プロダクトの関数のどちら
でも良く、それぞれ任意である。 (a)現在の関数呼び出し順序に、新しい関数呼び出し
を追加 例えば関数X→関数Zを関数X→関数Y→関数Zの順に
変更する場合 (b)関数呼び出し順序変更 例えば関数X→関数Y→関数Zを関数X→関数Z→関数
Yの順に変更する場合 (c)関数呼び出し順序の入れ替え 例えば関数X→関数Yを関数X→関数Zの順に変更する
場合 (d)関数呼び出し順序の削除 例えば関数X→関数Y→関数Zを関数X→関数Zの順に
変更する場合
Next, the types of the function call order change will be described. This type is shown in the following (a) to (d).
Note that the functions X, Y, and Z in the following description may be any of the functions in the own program and the functions of other products, and are arbitrary. (A) Adding a new function call to the current function call order For example, when changing function X → function Z in the order of function X → function Y → function Z (b) Changing function call order eg, function X → function Y → function When Z is changed in the order of function X → function Z → function Y (c) Changing the order of function calls For example, when changing function X → function Y in the order of function X → function Z (d) Deletion of function call order For example, function When changing X → function Y → function Z in order of function X → function Z

【0009】以下、具体的一例を挙げながら本実施の形
態の動作を図1のフローチャートを参照しながら説明す
る。 第1例 ここでは、上記(a)に対応する例として、別プロダク
トAの関数Xが別プロダクトB(別プロダクトAであっ
ても良い)の関数Yを呼び出していることが判明してい
る場合において、この別プロダクトA及び別プロダクト
Bのプログラムを使用した自身のプログラム実行中、本
来ならX関数→Y関数の順に行われる呼び出しを、Y関
数が実際に実行される直前に、自身のプログラム内の関
数であるB関数を呼び出し、B関数の呼び出しの後、Y
関数を実行する場合、すなわち、X関数→B関数→Y関
数の順に変更して呼び出す場合を例に説明する。なお、
このように呼び出す順序を変更するための処理(関数呼
び出しテーブル書き換え処理)は、予め判明している呼
び出し順序に基づいて作成されたものであって、もちろ
ん自身のプログラム内に記述されており、順序変更対象
の関数の呼び出しが行われる前に実行される。また、こ
の(a)の場合のように、現在の関数呼び出しに新しい
関数を追加することにより呼び出し順序を変更する場合
には、追加される関数(ここではB関数)は再帰的な関
数(自分自身を呼び出す関数)でなければならない。そ
して、自身のプログラムの実行が入力装置4にて指示さ
れると、CPU5は自身のプログラムを補助記憶装置1
から読み出して、ROM3に記憶されたローディングプ
ログラムによりRAM2に記憶する。
The operation of the present embodiment will be described below with reference to a flowchart of FIG. First Example Here, as an example corresponding to the above (a), a case where it is known that a function X of another product A calls a function Y of another product B (may be another product A) In the execution of the own program using the programs of the different product A and the different product B, a call which is originally performed in the order of the X function → the Y function is executed immediately before the Y function is actually executed. Function B is called, and after calling the B function, Y
An example in which a function is executed, that is, a case where the function is changed and called in the order of X function → B function → Y function will be described. In addition,
The processing for changing the calling order (function call table rewriting processing) is created based on the calling order that is known in advance, and is, of course, described in its own program. Executed before the function to be changed is called. When the calling order is changed by adding a new function to the current function call as in the case of (a), the added function (the B function in this case) is a recursive function (the self function). Function that calls itself). When the execution of the own program is instructed by the input device 4, the CPU 5 stores the own program in the auxiliary storage device 1.
And stored in the RAM 2 by the loading program stored in the ROM 3.

【0010】図3はこの第1例の自身のプログラムがR
AM上に確保されたメモリ領域の概略を示す図である。
図3に示すように、メモリ(RAM2)上に格納された
自身のプログラムは、プログラム実行部、プログラム
実行部、関数呼び出しテーブル、別プロダクトAのプ
ログラムの実行部及び別プロダクトBのプログラムの実
行部の構成になっており、メモリ上の保護領域に確保さ
れ、ここで説明するように、自身のプログラムが別プロ
ダクトのプログラムを使用している場合には、別プロダ
クトのプログラムの実行部は、自身のプログラムの実行
部と同一の保護領域に結合され、自身のプログラムの一
部として動作する。
FIG. 3 shows that the program of the first example is R
FIG. 3 is a diagram schematically illustrating a memory area secured on an AM.
As shown in FIG. 3, the own program stored in the memory (RAM2) includes a program execution unit, a program execution unit, a function call table, a program execution unit of another product A, and a program execution unit of another product B. Is secured in a protected area on the memory, and as described here, when its own program uses a program of another product, the execution unit of the program of another product And is operated as a part of its own program.

【0011】プログラム実行部は、実際に処理の流れ
を記述した部分で、ここでは、関数(自身のプログラム
の関数/別プロダクトA及びBの関数含む)呼び出しの
順番が記述される。すなわち、呼び出し先の関数に対応
する後述の関数呼び出しテーブルのアドレスが呼び出し
順に格納される。このため、関数呼び出しテーブルの書
き換え処理は、順序変更対象の関数Xの呼び出しが行わ
れる前に格納される。プログラム実行部は、実際に処
理の流れを記述した部分で、ここでは、自身が作成した
関数群それぞれの実行部が格納される。関数呼び出しテ
ーブルは、呼び出し先を格納した部分で、ここでは、呼
び出し先の全ての関数の実質の実行部が格納されたメモ
リ領域の先頭アドレスが格納される。別プロダクトのプ
ログラムの実行部には、別プロダクトの関数の実質の実
行部が格納される。
The program execution unit is a part that actually describes the flow of processing. Here, the order of calling functions (including functions of own program / functions of different products A and B) is described. That is, addresses of a function call table described later corresponding to the call destination function are stored in the order of call. Therefore, the rewriting process of the function call table is stored before the call of the function X whose order is to be changed is performed. The program execution unit is a part that actually describes the flow of processing. Here, the execution unit of each function group created by itself is stored. The function call table is a part storing call destinations. Here, the start address of a memory area in which substantial execution units of all functions of the call destination are stored is stored. The execution unit of the program of another product stores the actual execution unit of the function of another product.

【0012】そして、図3に示すようにマッピング後、
CPU5はプログラムの実行を開始する。まず、プログ
ラム実行部の関数呼び出しテーブル書き換え処理に基
づいて動作を行う。すなわち、順序変更の対象である一
方のY関数の実質の実行部の先頭アドレスが格納されて
いる関数呼び出しテーブルのアドレス(ここでは、テー
ブルアドレス)を求め、求めたアドレスの場所に格納さ
れているY関数の実質の実行部の先頭アドレスを取得し
て(図1のS1参照)、該先頭アドレスを関数呼び出し
テーブルから待避する(図1のS2参照)。そして、同
様に、もう一方のB関数の実質の実行部の先頭アドレス
が格納されている関数呼び出しテーブルのアドレス(こ
こでは、テーブルアドレス)を求め、求めたアドレスの
場所に格納されているB関数の実質の実行部の先頭アド
レスを取得して(図1のS3参照)、該先頭アドレスを
関数呼び出しテーブルから待避する(図1のS4参
照)。そして、関数呼び出しテーブルの書き換えを行
う。以下、この書き換え動作について説明する。
Then, after mapping as shown in FIG.
The CPU 5 starts executing the program. First, the operation is performed based on the function call table rewriting process of the program execution unit. That is, the address (here, the table address) of the function call table that stores the actual start address of the actual execution part of one of the Y functions whose order is to be changed is obtained, and stored at the location of the obtained address. The start address of the actual execution part of the Y function is obtained (see S1 in FIG. 1), and the start address is saved from the function call table (see S2 in FIG. 1). Similarly, an address (here, a table address) of a function call table in which the head address of the actual execution part of the other B function is stored is obtained, and the B function stored in the location of the obtained address is obtained. The start address of the actual execution unit is obtained (see S3 in FIG. 1), and the start address is saved from the function call table (see S4 in FIG. 1). Then, the function call table is rewritten. Hereinafter, this rewriting operation will be described.

【0013】図4は書き換え後のメモリ領域の概略を示
した図である。図4に示すように、テーブルアドレス番
地にB関数の実質の実行部の先頭アドレスを設定し、テ
ーブルアドレス番地にY関数の実質の実行部の先頭アド
レスを設定し(図1のS5参照)、これにより関数呼び
出しテーブルの書き換えを行う。
FIG. 4 is a diagram schematically showing a memory area after rewriting. As shown in FIG. 4, the start address of the actual execution part of the B function is set at the table address, and the start address of the actual execution part of the Y function is set at the table address (see S5 in FIG. 1). Thus, the function call table is rewritten.

【0014】以上の関数呼び出しテーブル書き換え処理
に基づく動作が終了すると、プログラム実行部に格納
されたテーブル形式関数呼び出しテーブルアドレスによ
り、関数呼び出しテーブルアドレス番地に格納されたX
関数の実質の実行部の先頭アドレスが特定され、該特定
されたアドレスにあるX関数が実行され、X関数実行部
に格納されたテーブルアドレスにより、関数呼び出しテ
ーブルアドレス番地に格納されたB関数の実質の実行部
の先頭アドレスが特定され、該特定されたアドレスにあ
るB関数が実行される。そして、B関数実行部に格納さ
れたテーブルアドレスにより、関数呼び出しテーブルア
ドレス番地に格納されたY関数の実質の実行部の先頭ア
ドレスが特定され、該特定されたアドレスにあるY関数
が実行される。つまり、X関数→B関数→Y関数の順に
実行されることとなる。
When the operation based on the function call table rewriting process described above is completed, the X in the function call table address stored in the function call table address is obtained according to the table form function call table address stored in the program execution unit.
The start address of the actual execution part of the function is specified, the X function at the specified address is executed, and the B address stored in the function call table address is obtained from the table address stored in the X function execution part. The head address of the actual execution unit is specified, and the B function at the specified address is executed. Then, based on the table address stored in the B function execution unit, the actual start address of the execution unit of the Y function stored in the function call table address is specified, and the Y function at the specified address is executed. . That is, the function is executed in the order of X function → B function → Y function.

【0015】図5は第1例を説明するためのメモリマッ
プを示す図であって、図3及び図4の具体例を示してい
る。図5において、(1)は図3に対応し、(2)は図
4の関数呼び出しテーブルに対応している。以下、RA
M2へのローディング後の本実施の形態の動作を図5の
具体例に則して再度簡単に説明する。まず、プログラム
実行部の関数呼び出しテーブル書き換え処理に基づい
て動作を行う。すなわち、Y関数の実行部の先頭アドレ
スが格納されている関数呼び出しテーブルのアドレス3
008を求めて3008番地に格納されている先頭アド
レス5200を待避し、B関数の実行部の先頭アドレス
が格納されている関数呼び出しテーブルのアドレス30
00を求めて3000番地に格納されている先頭アドレ
ス2000を待避する。そして、3008番地にB関数
の実行部の先頭アドレス2000を設定し、3000番
地にY関数の実行部の先頭アドレス5200を設定し、
これにより関数呼び出しテーブルの書き換えを行う。
FIG. 5 is a diagram showing a memory map for explaining the first example, and shows a specific example of FIGS. 3 and 4. 5, (1) corresponds to FIG. 3, and (2) corresponds to the function call table of FIG. Hereinafter, RA
The operation of the present embodiment after loading to M2 will be briefly described again based on the specific example of FIG. First, the operation is performed based on the function call table rewriting process of the program execution unit. That is, the address 3 of the function call table in which the start address of the execution part of the Y function is stored
008, the start address 5200 stored at the address 3008 is saved, and the address 30 of the function call table storing the start address of the execution unit of the B function is stored.
The first address 2000 stored at the address 3000 is saved to find 00. Then, the start address 2000 of the execution unit of the B function is set at address 3008, the start address 5200 of the execution unit of the Y function is set at address 3000,
Thus, the function call table is rewritten.

【0016】以上の関数呼び出しテーブル書き換え処理
に基づく動作が終了すると、プログラム実行部内に格
納されたテーブルアドレス3004により、関数呼び出
しテーブルの3004番地に格納されたデータ5100
が特定され、5100番地にあるX関数が実行され、X
関数実行部に格納されたテーブルアドレス3008によ
り、関数呼び出しテーブルの3008番地に格納された
データ2000が特定され、2000番地にあるB関数
が実行される。そして、B関数実行部に格納されたテー
ブルアドレス3000により、関数呼び出しテーブルの
3000番地に格納されたデータ5200が特定され、
5200番地にあるY関数が実行される。つまり、X関
数→B関数→Y関数の順に呼び出しが行われることとな
る。
When the operation based on the function call table rewriting process is completed, the data 5100 stored in the address 3004 of the function call table is obtained from the table address 3004 stored in the program execution unit.
Is identified, the X function at address 5100 is executed, and X
The data 2000 stored at the address 3008 in the function call table is specified by the table address 3008 stored in the function execution unit, and the B function at the address 2000 is executed. Then, the data 5200 stored at the address 3000 of the function call table is specified by the table address 3000 stored in the B function execution unit,
The Y function at address 5200 is executed. That is, the call is performed in the order of X function → B function → Y function.

【0017】第2例 上記の(a)に対応する方法は、自身のプログラム内の
関数自体の関数呼び出しの順序を変更する際にも利用で
きる。例えば自身のプログラムが別プロダクトの関数
(自身のプログラム内の関数でもよい)を呼び出してい
る場合に、その関数呼び出しの前に、別関数(この関数
は再帰的な関数でなければならないため、自身のプログ
ラム内の関数であることが自然である)を呼び出して、
自身のプログラム内の関数自体を呼び出す手順を変更す
る場合である。もちろんこの場合には、上記の方法を利
用しなくてもソースプログラムを変更することにより可
能であるが、自身のプログラムが別プロダクトの同一関
数を複数箇所呼び出すようにコーディングされていた場
合、修正個所が複数箇所となり、個数が多ければ多いほ
ど変更作業が大変になる。そこで、関数呼び出しテーブ
ル書き換え処理を順序変更対象の関数呼び出しが行われ
る前に加えることにより呼び出し順序を変更することが
可能となる。このため修正の手間を大幅に省くことがで
きる。
Second Example The method corresponding to the above (a) can also be used to change the order of function calls of functions in their own programs. For example, if your program calls a function of another product (which may be a function in your own program), before calling that function, another function (this function must be a recursive function. Which is naturally a function in the program of
In this case, the procedure for calling the function itself in the own program is changed. Of course, in this case, it is possible to change the source program without using the above method, but if your own program is coded to call the same function of another product at multiple locations, Becomes a plurality of places, and the greater the number, the more difficult the change work. Therefore, the calling order can be changed by adding the function call table rewriting process before the function call for changing the order is performed. For this reason, the trouble of correction can be largely saved.

【0018】以下、具体例で説明する。例えば、自身の
プログラム内の関数B、関数C、関数Dが、それぞれ別
プロダクトAの関数Xを呼び出す関数である場合に、関
数Xの呼び出しの前に自身のプログラム内の関数Y(再
帰的な関数)の呼び出しを行いたい場合、すなわち、B
関数→Y関数→X関数、C関数→Y関数→X関数、D関
数→Y関数→X関数の順に呼び出したい場合について簡
単に説明する。図6はこの場合のメモリマップを示す図
である。(3)は変更前のメモリマップを示しており、
(4)は変更後の関数呼び出しテーブルを示している。
Hereinafter, a specific example will be described. For example, if the function B, function C, and function D in the own program are functions that call the function X of another product A, respectively, the function Y (recursive Function), that is, B
A brief description will be given of a case where it is desired to call in the order of function → Y function → X function, C function → Y function → X function, D function → Y function → X function. FIG. 6 is a diagram showing a memory map in this case. (3) shows the memory map before the change,
(4) shows the function call table after the change.

【0019】自身のプログラムが実行されると、関数呼
び出しテーブル書き換え処理に基づいて動作が行われ、
関数呼び出しテーブルの3012番地に格納されている
Y関数の実行部の先頭アドレス2300と、関数呼び出
しテーブルの3016番地に格納されているX関数の実
行部の先頭アドレス5100とが入れ替えて関数呼び出
しテーブルに格納される。そして、プログラム実行部
内に格納されたテーブルアドレス3000により、B関
数が実行され、そして、B関数実行部に格納されたテー
ブルアドレス3016によりY関数が実行され、Y関数
実行部に格納されたテーブルアドレス3012によりX
関数が実行される。つまり、B関数→Y関数→X関数の
順に呼び出しが行われることとなる。なお、C関数及び
D関数の場合も同様であるので、説明を省略する。
When its own program is executed, an operation is performed based on the function call table rewriting process,
The start address 2300 of the execution part of the Y function stored at the address 3012 of the function call table and the start address 5100 of the execution part of the X function stored at the address 3016 of the function call table are exchanged into the function call table. Is stored. Then, the B function is executed by the table address 3000 stored in the program execution unit, the Y function is executed by the table address 3016 stored in the B function execution unit, and the table address stored in the Y function execution unit X by 3012
The function is executed. That is, the call is performed in the order of the B function → the Y function → the X function. The same applies to the case of the C function and the case of the D function, and a description thereof will be omitted.

【0020】第3例 以下、上記(b)に対応する例として、例えば自身のプ
ログラムは別プロダクトAのX関数を呼び出しており、
該X関数は別プロダクトBのY関数及びZ関数を有し、
この順に呼び出す関数であることが判明している場合に
おいて、自身のプログラム内でこの別プロダクトAの関
数Xを呼び出す際に、本来ならX関数→Y関数→Z関数
の順に行われる呼び出しを、X関数→Z関数→Y関数の
順に変更して呼び出す場合を例に説明する。なお、この
ように呼び出す順序を変更するための処理(関数呼び出
しテーブル書き換え処理)は、第1及び第2例の場合と
同様に、予め判明している呼び出し順序に基づいて作成
されたものであって、もちろん自身のプログラム内に記
述されており、順序変更対象の関数の呼び出しが行われ
る前に実行される。
Third Example As an example corresponding to the above (b), for example, its own program calls the X function of another product A,
The X function has a Y function and a Z function of another product B,
When it is known that the functions are to be called in this order, when the function X of this another product A is called in the own program, the call which is originally performed in the order of X function → Y function → Z function is called X An example will be described in which a function is changed and then a Z function is changed and then a Y function is called. Note that the process for changing the calling order (function call table rewriting process) is created based on a previously known calling order, as in the first and second examples. Of course, it is described in its own program, and is executed before the function whose order is to be changed is called.

【0021】図7はこの第3例を説明するためのメモリ
マップを示す図であって、(5)は変更前のメモリマッ
プを示しており、(6)は変更後の関数呼び出しテーブ
ルを示している。そして、図7に示すようにマッピング
後、CPU5はプログラムの実行を開始する。まず、プ
ログラム実行部の関数呼び出しテーブル書き換え処理
に基づいて動作を行う。すなわち、順序変更の対象であ
る一方のY関数の実質の実行部の先頭アドレスが格納さ
れている関数呼び出しテーブルのアドレス3004を求
め、3004番地に格納されているY関数の実質の実行
部の先頭アドレス6100を取得して、該先頭アドレス
を関数呼び出しテーブルから待避する。そして、同様に
もう一方のZ関数の実質の実行部の先頭アドレスが保存
されている関数呼び出しテーブルのアドレス3008を
求め、3008番地に格納されているZ関数の実質の実
行部の先頭アドレス6200を取得して、該先頭アドレ
スを関数呼び出しテーブルから待避する。そして、30
04番地にZ関数の実質の実行部の先頭アドレス620
0を設定し、3008番地にY関数の実質の実行部の先
頭アドレス6100を設定する。
FIG. 7 is a diagram showing a memory map for explaining the third example. (5) shows a memory map before change, and (6) shows a function call table after change. ing. Then, as shown in FIG. 7, after the mapping, the CPU 5 starts executing the program. First, the operation is performed based on the function call table rewriting process of the program execution unit. That is, the address 3004 of the function call table storing the start address of the actual execution part of one Y function whose order is to be changed is obtained, and the start of the actual execution part of the Y function stored at address 3004 is obtained. The address 6100 is acquired, and the head address is saved from the function call table. Similarly, an address 3008 of the function call table storing the head address of the actual execution part of the other Z function is obtained, and the start address 6200 of the actual execution part of the Z function stored at the address 3008 is obtained. Obtain and save the head address from the function call table. And 30
At the address 04, the start address 620 of the actual execution part of the Z function
0 is set, and the start address 6100 of the actual execution part of the Y function is set at address 3008.

【0022】以上の関数呼び出しテーブル書き換え処理
に基づく動作が終了すると、プログラム実行部の10
00番地に格納されたテーブルアドレス3000によ
り、関数呼び出しテーブルの3000番地に格納された
データ5100が特定され、5100番地にあるX関数
が実行される。すなわち、X関数実行部の5104番地
に格納されたテーブルアドレス3004により、620
0番地にあるZ関数が実行され、そして、X関数実行部
の5108番地に格納されたテーブルアドレス3008
により、6100番地にあるY関数が実行される。つま
り、X関数→Z関数→Y関数の順に呼び出しが行われる
こととなる。
When the operation based on the function call table rewriting process ends, the program execution unit 10
The data 5100 stored at address 3000 in the function call table is specified by the table address 3000 stored at address 00, and the X function at address 5100 is executed. That is, 620 is obtained by the table address 3004 stored at the address 5104 of the X function execution unit.
The Z function at address 0 is executed, and the table address 3008 stored at address 5108 of the X function execution unit
As a result, the Y function at address 6100 is executed. That is, the calling is performed in the order of X function → Z function → Y function.

【0023】第4例 以下、上記(c)を関数X→関数Yを関数X→関数Zの
順に変更する場合、(d)を関数X→関数Y→関数Zを
関数X→関数Zの順に変更する場合を例に説明する。な
お、これら(c)、(d)の場合は、上記に説明した場
合と同様であるので、ここでは簡単に説明する。自身の
プログラムは、関数呼び出しテーブルに格納されてい
る、順序変更の対象である関数Yと関数Zの実質の実行
部の先頭アドレスを入れ替えて前記関数呼び出しテーブ
ルに設定する関数呼び出しテーブル書き換え処理を含ん
でおり、そして、当該自身のプログラムが実行される
と、前記書き換え処理に基づいて関数呼び出しテーブル
が書き換えられて、関数呼び出しの手順が変更される。
Fourth Example Hereinafter, when the above (c) is changed in the order of the function X → the function Y, the function X → the function Z, (d) is changed in the order of the function X → the function Y → the function Z → the function X → the function Z The case of changing will be described as an example. Note that these cases (c) and (d) are the same as those described above, and will be briefly described here. The own program includes a function call table rewriting process in which the start addresses of the actual execution units of the functions Y and Z, which are the order change targets, stored in the function call table are exchanged and set in the function call table. When the own program is executed, the function call table is rewritten based on the rewriting process, and the procedure of the function call is changed.

【0024】本実施の形態によれば、自身のプログラム
の実行中に、順序変更対象の関数実行部がそれぞれ格納
されたメモリ領域の先頭アドレスが格納された関数呼び
出しテーブルのアドレスを求め、該アドレス内の先頭ア
ドレスを関数呼び出しテーブルから待避し、待避した先
頭アドレスを、関数呼び出しテーブル書き換え処理に基
づいて関数呼び出しテーブルの所定の場所に設定するこ
とによって、関数呼び出しテーブルを動的に書き換える
ことができる。その結果、関数呼び出しテーブルを使用
して関数呼び出しが行われる際、別プロダクト内の関数
の順序が変更して呼び出されることとなり、従来の関数
呼び出しの手順を変更する方法では実現し得なかった、
別プロダクト内の関数を呼び出す手順を動的に変更する
ことが可能となる。
According to this embodiment, during execution of its own program, the address of the function call table in which the head address of the memory area in which the function execution unit whose order is to be changed is stored is obtained. The function call table can be dynamically rewritten by saving the start address in the function call table to a predetermined location in the function call table based on the function call table rewriting process. . As a result, when a function call is made using the function call table, the order of the functions in another product is changed and called, which cannot be realized by the conventional method of changing the function call procedure.
The procedure for calling a function in another product can be dynamically changed.

【0025】また、本実施の形態の方法を自身のプログ
ラムに当てはめて実施すれば、自身のプログラム内の関
数呼び出しの順序変更自体も可能となり、また、上記第
2例のように、自身のプログラムがある関数を複数箇所
呼び出すようにコーディングされていた場合に、この関
数の前に別の関数を呼び出すように呼び出し手順を変更
する際には、自身のプログラムの複数箇所を修正するこ
となく複数箇所の関数呼び出しの手順を変更でき、修正
の手間を大幅に省くことができる。
Further, if the method of the present embodiment is applied to its own program and executed, it is possible to change the order of function calls in its own program, and as in the second example, its own program If a function is coded to call a function multiple times, and if you change the calling procedure to call another function before this function, you can change the calling sequence without modifying multiple points in your program. Function calling procedure can be changed, and the time and effort for modification can be greatly reduced.

【0026】なお、関数呼び出しテーブルを書き換えて
関数呼び出しの手順を変更した後に、何らかの条件の基
で変更前の元の関数呼び出しを行う必要がある場合に
は、変更前の関数呼び出しテーブルを自身のプログラム
の実行部の同一保護領域に別途保存しておき、必要とな
ったタイミングで変更前の関数呼び出しテーブルを使用
して元の関数呼び出しに使用する。
After rewriting the function call table and changing the procedure of the function call, if it is necessary to call the original function call before the change under some conditions, the function call table before the change is changed to its own. It is separately stored in the same protected area of the execution part of the program, and is used for the original function call using the function call table before the change at the required timing.

【0027】また、本実施の形態では、呼び出し先を格
納した関数呼び出しテーブルを書き換える方法を説明し
たが、別プロダクトのプログラムの実行部が格納された
メモリ領域のうち、順序変更対象の関数の実行部が格納
されている場所に、予め判明している呼び出し順序に基
づいて前記順序変更対象の関数の実行部を入れ替えて格
納することによって別プロダクトのプログラムの実質の
実行部を書き換え、関数呼び出しの手順を変更するよう
にしても良い。この場合、別プロダクトの実質の実行部
自体が書き変わってしまうことになるので、関数呼び出
しの手順変更後に何らかの条件の基で変更前の元の関数
呼び出しを行う必要がある場合には、この別プロダクト
の実質の実行部の複製を自身のプログラムの実行部の同
一保護領域に作成しておき、必要となったタイミングで
呼び出すようにする。
In this embodiment, the method of rewriting the function call table storing the call destination has been described. However, in the memory area storing the execution unit of the program of another product, the execution of the function whose order is to be changed is executed. In the place where the part is stored, the actual execution part of the program of another product is rewritten by replacing and storing the execution part of the function whose order is to be changed based on a known calling order, and The procedure may be changed. In this case, the actual execution part itself of another product will be rewritten, so if it is necessary to call the original function before the change under some conditions after changing the procedure of the function call, this additional A copy of the actual execution unit of the product is created in the same protected area of the execution unit of its own program, and called at the required timing.

【0028】また、関数呼び出しテーブルを書き換える
こと、又は上記したように別プロダクトの実質の実行部
を書き換えることによって、別プロダクトのプログラム
の関数部分の実行を抑止したり、関数の機能を変更する
ことが可能になる。
Further, by rewriting the function call table or rewriting the actual execution part of another product as described above, the execution of the function part of the program of another product is suppressed or the function of the function is changed. Becomes possible.

【0029】[0029]

【発明の効果】以上に説明したように本発明によれば、
第2のプログラムの実行中に、順序変更対象の関数への
呼び出し先を、関数呼び出しテーブル書き換え処理に基
づいて関数呼び出しテーブルの所定の場所に設定するこ
とによって、関数呼び出しテーブルを動的に書き換える
ことができる。その結果、関数呼び出しテーブルを使用
して関数呼び出しが行われる際、第1のプログラム内の
関数の順序が変更して呼び出されることとなり、従来の
関数呼び出しの手順を変更する方法では実現し得なかっ
た、第1のプログラム内の関数を呼び出す手順を動的に
変更することが可能となる。
According to the present invention as described above,
Dynamic rewriting of the function call table by setting the call destination to the function whose order is to be changed during execution of the second program at a predetermined location in the function call table based on the function call table rewriting process Can be. As a result, when a function call is performed using the function call table, the functions are called in a changed order of the functions in the first program, which cannot be realized by a conventional method of changing the function call procedure. Further, it is possible to dynamically change a procedure for calling a function in the first program.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の一実施の形態の処理の流れを示すフロ
ーチャートである。
FIG. 1 is a flowchart showing a flow of processing according to an embodiment of the present invention.

【図2】本発明の一実施の形態に係る関数呼び出しの手
順を動的に変更する方法が適用されたシステムの構成を
示す図である。
FIG. 2 is a diagram showing a configuration of a system to which a method of dynamically changing a function call procedure according to an embodiment of the present invention is applied;

【図3】第1例の自身のプログラムがRAM上に確保さ
れたメモリ領域の概略を示す図である。
FIG. 3 is a diagram schematically illustrating a memory area in which a program of the first example is secured on a RAM.

【図4】図3を書き換え後のメモリ領域の概略を示した
図である。
FIG. 4 is a diagram schematically showing a memory area after rewriting of FIG. 3;

【図5】第1例を説明するためのメモリマップを示す図
である。
FIG. 5 is a diagram showing a memory map for explaining a first example;

【図6】第2例を説明するためのメモリマップを示す図
である。
FIG. 6 is a diagram showing a memory map for explaining a second example.

【図7】第3例を説明するためのメモリマップを示す図
である。
FIG. 7 is a diagram showing a memory map for explaining a third example;

【符号の説明】[Explanation of symbols]

1 補助記憶装置 2 RAM 3 ROM 4 入力装置 5 CPU REFERENCE SIGNS LIST 1 auxiliary storage device 2 RAM 3 ROM 4 input device 5 CPU

───────────────────────────────────────────────────── フロントページの続き (72)発明者 白根 恭子 岡山県岡山市桑田町18番28号 株式会社沖 ソフトウェア岡山内 (72)発明者 重広 正夫 東京都港区虎ノ門1丁目7番12号 沖電気 工業株式会社内 Fターム(参考) 5B076 EA10 EA17  ────────────────────────────────────────────────── ─── Continued on the front page (72) Inventor Kyoko Shirane 18-28, Kuwata-cho, Okayama-shi, Okayama Oki Software Inc. Okayamauchi (72) Inventor Masao Shigehiro 1-7-12 Toranomon, Minato-ku, Tokyo Oki Electric Industrial Co., Ltd. F term (reference) 5B076 EA10 EA17

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 実行形式を変更できない第1のプログラ
ムに含まれる関数のうち、順序変更対象の関数が前記第
1のプログラムにおいて呼び出される順序が予め判明し
ている場合に、前記第1又は該第1のプログラムを使用
した第2のプログラム内の関数の呼び出しを追加するこ
とによって、第1のプログラム内の関数を呼び出す順序
を前記第2のプログラムの実行中に変更する方法であっ
て、 第2のプログラムにおいて呼び出される関数への呼び出
し先が格納される関数呼び出しテーブルを備え、前記追
加される関数は再帰的な関数であり、そして、前記第2
のプログラムは、前記関数呼び出しテーブルのうち、順
序変更対象の関数への呼び出し先が格納されている場所
に、予め判明している前記呼び出し順序に基づいて、前
記場所に格納された呼び出し先を入れ替えて格納するこ
とによって関数呼び出しテーブルを書き換える関数呼び
出しテーブル書き換え処理を含んでおり、第2のプログ
ラムが実行されると、前記関数呼び出しテーブルから順
序変更対象の関数への呼び出し先を待避し、前記関数呼
び出しテーブル書き換え処理に基づいて、前記待避した
呼び出し先を前記関数呼び出しテーブル内の所定の場所
に設定して、関数呼び出しの手順を変更することを特徴
とする関数呼び出しの手順を動的に変更する方法。
When the order in which a function whose order is to be changed among functions included in a first program whose execution format cannot be changed is called in the first program is known in advance, the first or the first program is not executed. A method of changing a sequence of calling a function in a first program during execution of the second program by adding a call to a function in a second program using the first program, comprising: A function call table in which a callee to a function called in the second program is stored, the added function is a recursive function, and the second
The program replaces the call destination stored in the location in the function call table based on the known call order in the location where the call destination to the function whose order is to be changed is stored. And a function call table rewriting process for rewriting the function call table by storing the function call table. When the second program is executed, a call destination from the function call table to the function whose order is to be changed is saved. Based on the call table rewriting process, the saved call destination is set at a predetermined location in the function call table, and the function call procedure is changed. The function call procedure is dynamically changed. Method.
【請求項2】 実行形式を変更できない第1のプログラ
ムに含まれる関数のうち、順序変更対象の関数が、前記
第1のプログラムを使用した第2のプログラムにおいて
呼び出される順序が予め判明している場合に、前記第1
又は第2のプログラム内の関数の呼び出しを追加するこ
とによって、第1のプログラム内の関数を呼び出す順序
を前記第2のプログラムの実行中に変更する方法であっ
て、 第2のプログラムにおいて呼び出される関数への呼び出
し先が格納される関数呼び出しテーブルを備え、前記追
加される関数は再帰的な関数であり、そして、前記第2
のプログラムは、前記関数呼び出しテーブルのうち、順
序変更対象の関数への呼び出し先が格納されている場所
に、予め判明している前記呼び出し順序に基づいて、前
記場所に格納された呼び出し先を入れ替えて格納するこ
とによって関数呼び出しテーブルを書き換える関数呼び
出しテーブル書き換え処理を含んでおり、第2のプログ
ラムが実行されると、前記関数呼び出しテーブルから順
序変更対象の関数への呼び出し先を待避し、前記関数呼
び出しテーブル書き換え処理に基づいて、前記待避した
呼び出し先を前記関数呼び出しテーブル内の所定の場所
に設定して、関数呼び出しの手順を変更することを特徴
とする関数呼び出しの手順を動的に変更する方法。
2. An order in which a function whose order is to be changed among functions included in a first program whose executable form cannot be changed in a second program using the first program is known in advance. If the first
Or, a method of changing the order in which functions in the first program are called during the execution of the second program by adding calls to functions in the second program, wherein the order is called in the second program. A function call table in which a callee to the function is stored, wherein the added function is a recursive function, and
The program replaces the call destination stored in the location in the function call table based on the known call order in the location where the call destination to the function whose order is to be changed is stored. And a function call table rewriting process for rewriting the function call table by storing the function call table. When the second program is executed, a call destination from the function call table to the function whose order is to be changed is saved. Based on the call table rewriting process, the saved call destination is set at a predetermined location in the function call table, and the function call procedure is changed. The function call procedure is dynamically changed. Method.
【請求項3】 実行形式を変更できない第1のプログラ
ムに含まれる関数のうち、順序変更対象の関数が前記第
1のプログラムにおいて呼び出される順序が予め判明し
ている場合に、前記第1のプログラムを使用した第2の
プログラムの実行中に、第1のプログラム内の関数を呼
出す順序を変更する方法であって、 第2のプログラムにおいて呼び出される関数への呼び出
し先が格納される関数呼び出しテーブルを備え、そし
て、前記第2のプログラムは、前記関数呼び出しテーブ
ルのうち、順序変更対象の関数への呼び出し先が格納さ
れている場所に、予め判明している前記呼び出し順序に
基づいて、前記場所に格納された呼び出し先を入れ替え
て格納することによって関数呼び出しテーブルを書き換
える関数呼び出しテーブル書き換え処理を含んでおり、
第2のプログラムが実行されると、前記関数呼び出しテ
ーブルから順序変更対象の関数への呼び出し先を待避
し、前記関数呼び出しテーブル書き換え処理に基づい
て、前記待避した呼び出し先を前記関数呼び出しテーブ
ル内の所定の場所に設定して、関数呼び出しの手順を変
更することを特徴とする関数呼び出しの手順を動的に変
更する方法。
3. The method according to claim 1, wherein, among functions included in the first program whose execution format cannot be changed, the order in which the functions whose order is to be changed is called in the first program is known in advance. A method for changing the order in which functions in a first program are called during execution of a second program using a function call table, wherein a function call table in which a callee to a function called in the second program is stored is stored. And the second program stores, in the function call table, a place where a callee to the function whose order is to be changed is stored, based on the call order that is known in advance, and Function call table rewriting process that rewrites the function call table by replacing the stored call destination and storing Including and in,
When the second program is executed, a call destination to the function whose order is to be changed is saved from the function call table, and the saved call destination is stored in the function call table based on the function call table rewriting process. A method of dynamically changing the procedure of a function call, wherein the method is set at a predetermined location and the procedure of a function call is changed.
【請求項4】 前記関数呼び出しテーブルから順序変更
対象の関数への呼び出し先を待避させる前の関数呼び出
しテーブルを別途保存しておき、必要に際して、前記待
避させる前のテーブルを用いて、待避前の呼び出し先に
復帰させることを特徴とする請求項1〜請求項3の何れ
かに記載の関数呼び出しの手順を動的に変更する方法。
4. A function call table before saving a call destination from the function call table to a function whose order is to be changed is separately stored, and when necessary, the function call table is used to save a call destination before saving. 4. The method according to claim 1, wherein the procedure is returned to a call destination.
【請求項5】 前記関数への呼び出し先を、関数の実行
部がそれぞれ格納されたメモリ領域の先頭アドレスとす
ることを特徴とする請求項1〜請求項4の何れかに記載
の関数呼び出しの手順を動的に変更する方法。
5. The function call according to claim 1, wherein a call destination to the function is a head address of a memory area in which an execution unit of the function is stored. How to change the procedure dynamically.
【請求項6】 実行形式を変更できない第1のプログラ
ムに含まれる関数のうち、順序変更対象の関数が前記第
1のプログラムにおいて呼び出される順序が予め判明し
ている場合に、前記第1のプログラムを使用した第2の
プログラムの実行中に、第1のプログラム内の関数を呼
び出す順序を変更する方法であって、 前記第2のプログラムは、第2のプログラムの実行部が
格納されるメモリ領域のうち、順序変更対象の関数の実
行部が格納されている場所に、予め判明している前記呼
び出し順序に基づいて前記順序変更対象の関数の実行部
を入れ替えて格納することによって前記第2のプログラ
ムの実行部を書き換える実行部書き換え処理を含んでお
り、前記第2のプログラムが実行されると、実行部書き
換え処理に基づいて、前記順序変更対象の関数の実行部
を前記第2のプログラムの実行部の所定の場所に設定す
ると共に、変更前の第2のプログラムの実行部を別途保
存しておき、必要に際して前記変更前の第2のプログラ
ムの実行部に復帰させることを特徴とする関数呼び出し
の手順を動的に変更する方法。
6. A method according to claim 1, wherein, among the functions included in the first program whose execution format cannot be changed, the order in which the functions whose order is to be changed is called in the first program is known in advance. A method of changing the order in which functions in a first program are called during execution of a second program using the second program, wherein the second program is a memory area in which an execution unit of the second program is stored Out of the execution unit of the function whose order is to be changed is stored in the place where the execution unit of the function whose order is to be changed is stored based on the calling sequence that is known in advance, thereby storing the second one. An execution unit rewriting process for rewriting an execution unit of the program, wherein when the second program is executed, the order change is performed based on the execution unit rewriting process. The execution unit of the elephant function is set at a predetermined location of the execution unit of the second program, and the execution unit of the second program before the change is separately stored. A method of dynamically changing the procedure of a function call, wherein the procedure is returned to an execution unit of a program.
JP10204909A 1998-07-21 1998-07-21 Method for dynamic change of function calling sequence Pending JP2000035882A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10204909A JP2000035882A (en) 1998-07-21 1998-07-21 Method for dynamic change of function calling sequence

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10204909A JP2000035882A (en) 1998-07-21 1998-07-21 Method for dynamic change of function calling sequence

Publications (1)

Publication Number Publication Date
JP2000035882A true JP2000035882A (en) 2000-02-02

Family

ID=16498402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10204909A Pending JP2000035882A (en) 1998-07-21 1998-07-21 Method for dynamic change of function calling sequence

Country Status (1)

Country Link
JP (1) JP2000035882A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7430612B2 (en) 2002-12-18 2008-09-30 Intec Netcore, Inc. Computing apparatus, computing program, and computing method
US9317828B2 (en) 2007-02-28 2016-04-19 International Business Machines Corporation Facilitating provisioning in a mixed environment of locales

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7430612B2 (en) 2002-12-18 2008-09-30 Intec Netcore, Inc. Computing apparatus, computing program, and computing method
US9317828B2 (en) 2007-02-28 2016-04-19 International Business Machines Corporation Facilitating provisioning in a mixed environment of locales
US10600014B2 (en) 2007-02-28 2020-03-24 International Business Machines Corporation Facilitating provisioning in a mixed environment of locales
US10817820B2 (en) 2007-02-28 2020-10-27 International Business Machines Corporation Facilitating provisioning in a mixed environment of locales

Similar Documents

Publication Publication Date Title
JP2000035882A (en) Method for dynamic change of function calling sequence
JPS6378231A (en) Partial program combining system
US6772292B2 (en) Two area stack
JPH0452974B2 (en)
JPH05282134A (en) Divided load module formation system
JP2002041310A (en) Class dynamic bind system and its method
JP2008107908A (en) Data analysis system
JPH0390931A (en) Generation of rom transformation program
JP2002358102A (en) Programming device for programmable logic controller
KR100229567B1 (en) Coordination and text value generation method
JP3079825B2 (en) Electronic computer equipment
JPH04117523A (en) Program editing device
JPH03157724A (en) Program loading system by dynamic link
JPH02257224A (en) Linkage edition processor
JPH02146625A (en) Extension system for number of registers
JPH05100838A (en) Patch processing system
JPH0675757A (en) Link system for virtual space resident program
JPH0449421A (en) File editing system
JPH0421028A (en) Register managing method
JPH0830466A (en) Multitask switching control method
JPH05100865A (en) Compiling system
JP2000242524A (en) Software simulator for processor
JPH0883188A (en) Multitask processing computer
JPH1195813A (en) Programmable controller
JPH02130637A (en) Source code translating system