JPH0319032A - Function processing method - Google Patents
Function processing methodInfo
- Publication number
- JPH0319032A JPH0319032A JP15233889A JP15233889A JPH0319032A JP H0319032 A JPH0319032 A JP H0319032A JP 15233889 A JP15233889 A JP 15233889A JP 15233889 A JP15233889 A JP 15233889A JP H0319032 A JPH0319032 A JP H0319032A
- Authority
- JP
- Japan
- Prior art keywords
- type
- group
- binding
- procedure
- combination
- 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.)
- Granted
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。(57) [Summary] This bulletin contains application data before electronic filing, so abstract data is not recorded.
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、オブジェクト指向等の言語処理系における総
称関数の処理方法に関わる。DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a method for processing generic functions in a language processing system such as an object-oriented language processing system.
まず技術の背景となる総称関数の機能について述べる。 First, we will discuss the functions of generic functions, which form the background of the technology.
総称関数とは関数の一種であり、一つの関数名に対し複
数の手続き(メソド)を持つことができる。ここで複数
のメソドは、例えば整数型あるは、実数型のデータ型に
対して定義するものであり、総称関数が呼出されると引
数のデータ型に応じて該当するメソドが選択、実行され
る。このような総称関数の基本機能のプログラム例を第
2に示す。A generic function is a type of function that can have multiple procedures (methods) for one function name. Here, multiple methods are defined for data types such as integer type, real number type, and when the generic function is called, the corresponding method is selected and executed according to the data type of the argument. . A second program example of the basic functions of such a generic function is shown below.
def■ethod形式201はメソドを定義する形式
である。形式201うち、defwiethod (2
01a )はこの形式がdefmethod形式である
ことを示している。ml(201b)はこの形式で定義
するメソドが総称関数m1のメソドであることを示す。The def ■ method format 201 is a format for defining a method. Format 201, of which defwiethod (2
01a) indicates that this format is the defmethod format. ml (201b) indicates that the method defined in this format is the method of the generic function m1.
”((x cl))” (201c)はメソドの仮引
数Xがあり、Xに対する実引数はC1型に含まれるデー
タに限ることを示す、 body−of−m 1− c
1(201d)はメソドとして定義する手続きである
。同様にdefmethod形式202では、C2型の
引数に対するメソドとして手続きbady−of−ml
−c2(202d)を定義している。"((x cl))" (201c) indicates that the method has a formal argument X, and the actual argument to X is limited to data included in the C1 type, body-of-m 1- c
1 (201d) is a procedure defined as a method. Similarly, in the defmethod format 202, the procedure bad-of-ml is used as a method for C2 type arguments.
-c2 (202d) is defined.
defclass形式203はデータ型を定義する形式
である。形式203のうち、defclass (20
3a)はこの形式がdefclass形式であることを
示している。cl (203b)はこの形式で01とい
う名のデータ型を定義することを示す。II()TI(
203c)はここで定義するデータ型が上位形(後述す
る)を持たないことを示す、 description
−of−cl (203d)はデータ型の構成等の記述
である。同様にdefclass形204は、cl型を
上位型とするC2型を定義している。ここで上位型とは
当該の型を包含する型を言う。つまり、C2型はcl型
の一部であり、C2型に属するデータはcl型にも属す
ることになる。The defclass format 203 is a format for defining data types. Of the formats 203, defclass (20
3a) indicates that this format is a defclass format. cl (203b) indicates that a data type named 01 is defined in this format. II()TI(
203c) indicates that the data type defined here does not have a superordinate form (described later).
-of-cl (203d) is a description of the data type structure, etc. Similarly, the defclass type 204 defines a C2 type whose upper type is the cl type. Here, the supertype refers to a type that includes the type in question. In other words, the C2 type is a part of the cl type, and data belonging to the C2 type also belongs to the cl type.
形式201〜204が実行されている時点で。At the point when formats 201-204 are being executed.
総称関数呼出し形式211を実行する場合の動作につい
て述べる。形式211のうち、
ml (211a)は呼出すべき総称関数名である。The operation when executing the generic function call format 211 will be described. In the format 211, ml (211a) is the generic function name to be called.
objl (21l b)は引数である。引数obj
1の値が02型のデータであればメソド202dを実行
する。引数obj 1の値がcl型のデータであれがメ
ソド201dおよび202dはともに引数型を満たすが
、メソド201dのほうがより下位の型が指定されてい
るのでこれを実行する。objl (21l b) is an argument. argument obj
If the value of 1 is 02 type data, method 202d is executed. Methods 201d and 202d both satisfy the argument type if the value of argument obj 1 is cl type data, but method 201d is executed because a lower type is specified.
次に総膜関数におけるメソド結合機能について述べる。Next, we will discuss the method coupling function in the total membrane function.
メソド結合とは複数のメソドを選択し組合せ実行する機
能であり、3つのタイプに分がれる。II準メソド結合
タイプ、組込みメソド結合タイプおよび短形式宣言メソ
ド結合タイプである。Method combination is a function that selects and executes a combination of multiple methods, and is divided into three types. II quasi-method binding type, built-in method binding type, and short-form declarative method binding type.
この3つのタイプでは総称関数毎に選択することができ
る。既定値は標準メソド結合タイプであり第2図の総称
関数m1も標準メソド結合タイプとなる。These three types can be selected for each generic function. The default value is the standard method connection type, and the generic function m1 in FIG. 2 is also of the standard method connection type.
まず、標準メソド結合タイプについて第2図の例を用い
て説明する。 defmethod形式205〜2%式
%
の識別子を付与してメソドを定義している。First, the standard method connection type will be explained using the example shown in FIG. defmethod format 205-2% Formula % The method is defined by giving an identifier.
識別子: before付きで定義されるメソド(20
5d、206d)をビフォーメソドと呼び識別子なしで
定義されるメソド(プライマリメソド、201d、20
2d)の前で実行するメソド/
となる、ffi別子: after付きで定法されるメ
ソド(207d、208d)をアフターメソドと称し、
プライマリメソドの後で実行するメソドとなる。Identifier: Method defined with before (20
5d, 206d) is called a before method and is defined without an identifier (primary method, 201d, 20
Methods to be executed before 2d) / ffi identifiers: Methods (207d, 208d) that are defined with after are called after methods,
This is the method to be executed after the primary method.
識別子Caround付きで定義されるメソド(209
d、210d)をアラウンドメソドとプライマリメソド
については、当該のメソド実行中にcall−next
−method形式という既定の形式によって、他のメ
ソドを呼出すことができる。このような標準メソド結合
タイプでの動作を第3図を用いて説明する。Method defined with identifier Caround (209
d, 210d) for the around method and primary method, call-next is executed during execution of the method.
The default format -method format allows other methods to be called. The operation of such a standard method combination type will be explained with reference to FIG.
形式201〜210が実行された時点で、総称関数呼出
し形式を212を実行したとする。引数obj2 (2
12b)の値が02型のデータの場合は、第3図(a)
に示すよう、まずc2型指定のアラウンドメソド(21
0d)を呼出す。ここでメソド(201d)は引数型を
満たすメソドのうち、最も下位の型指定のアラウンドメ
ソドである。Assume that when formats 201 to 210 are executed, generic function call format 212 is executed. Argument obj2 (2
If the value of 12b) is type 02 data, then the value shown in Figure 3(a)
As shown in Figure 2, we first use the c2 type specified around method (21
0d). Here, the method (201d) is an around method with the lowest type specification among the methods that satisfy the argument types.
メソド(210d)実行中にcall−next−me
thod形式が実行されるとcl型指定のアラウンドメ
ソド(209d)を呼出す、メソド(209d)はメソ
ド(210d)の次に下位の型指定のアラウンドメソド
である。メソド(209d)実行中にcall−nex
t−methodが実行されると、もはやアラウンドメ
ソドはないので、ビフォーメソド、プライマリメソドお
よびアフターメソドを呼出すことにする。まずビフォー
メソドでは、型指定の下位のものより順にメソド206
d、メソド205dを呼出す6次に最も下位型指定のプ
ライマリメソド202dを呼出す、さらに型指定の上位
のものより順にアフターメソド207dおよびアフター
メソド208dを呼出す、このうち、プライマリメソド
202dの実行中にcall−next method
が実行されれば、次に下1位型指定のプライマリメソッ
ド201dを呼出すことになる。call-next-me during method (210d) execution
When the thod format is executed, a cl type-specified around method (209d) is called, and the method (209d) is a type-specified around method next to the method (210d). call-nex during method (209d) execution
Once the t-method is executed, there are no more around methods, so we decide to call the before, primary, and after methods. First, in the before method, method 206 is selected in order from the lower type specification.
d, method 205d is called 6 Next, the primary method 202d with the lowest type specification is called, and the after method 207d and after method 208d are called in order from the ones with the highest type specification. -next method
If executed, the primary method 201d with the lowest type specification will be called next.
総称関数呼出し形式212の引数obj 2の値がcl
型のデータである場合には、引数型を満たすメソドが2
09d、205d、201dおよび207dだけとなる
。そこで第3図(b)に示すように、まずアラウンドメ
ソド209dを呼出し、call−next−meth
odが実行されれば、ビフォーメソド205d、プライ
マリメソド201d、アフターメソド207dを順に呼
出すことになる。The value of argument obj 2 of generic function call format 212 is cl
type data, there are two methods that satisfy the argument type.
Only 09d, 205d, 201d and 207d are available. Therefore, as shown in FIG. 3(b), the around method 209d is first called and the call-next-meth
When od is executed, the before method 205d, primary method 201d, and after method 207d are called in this order.
短形式宣言メソド結合タイプの例を第5図に示す、形式
501ではメソド結合のオペレータ*を定義している。An example of a short-form declaration method linkage type is shown in FIG. 5. Format 501 defines a method linkage operator *.
形式502では総称関数m3がオペレータ本によるメソ
ド結合を行うことを定義している。オペレータが定義さ
れた総称関数では、引数型を満たすブライマリメソドを
下位の型指定のものより順に呼出し、それぞれのメソド
の返答にオペレータを適用させる。例えばオペレータが
*なら、本は乗算関数を示すシンボルなので、各メソド
の返答を掛は合せることになる。なお、短形式宣言メソ
ド結合タイプでは、プライマリメソドのほかアラウンド
メソドも用いることができる。The format 502 defines that the generic function m3 performs method combination using operator books. In a generic function where an operator is defined, the primary methods that satisfy the argument types are called in order from those with lower type specifications, and the operator is applied to the response of each method. For example, if the operator is *, the book is a symbol indicating a multiplication function, so the answers of each method will be multiplied together. Note that in the short-form declaration method binding type, not only the primary method but also the around method can be used.
組込みメソド結合タイプの機能は短形式宣言タイプのそ
れと同様である。ただ、短形式宣言タイプでは、例えば
形式501によってメソド結合のオペレータをユーザが
定義するのに対し、組込みメソド結合タイプのオペレー
タはシステムで規定したものを用いる。The functionality of the built-in method binding type is similar to that of the short declaration type. However, in the short-form declaration type, the user defines the method linkage operator using the format 501, for example, whereas the operator for the built-in method linkage type is defined by the system.
最後に総称関数の利用環境について述べる。Finally, we will discuss the usage environment for generic functions.
オブジェクト指向等の対括型言語の総称関数番。Generic function number for object-oriented and other packaged languages.
おいては、対話の過程で型やメソドの定義を追カ修正し
ながらプログラムを実行していく。総称σ数の制御で参
照すべき型、メソド、メソド結合R式等は、実際の関数
呼出しが起こった時点で定云されているものでなければ
ならない、そこで、般には、総称関数呼出しの制御では
、当該総称y言のメソド群のうちより引数の型の合うメ
ソド「を選択する処理を毎回行い、選択されたメソド「
とメソド結合形式に従ってメソドの呼出し制御各行うこ
とになっていた。In the process of dialogue, the program is executed while adding and modifying the definitions of types and methods. The type, method, method linkage R expression, etc. that should be referenced in controlling the generic σ number must be defined at the time of the actual function call. In the control, a process is performed each time to select a method with a matching argument type from the group of methods in the generic y word, and the selected method is
And each method call control was supposed to be done according to the method binding format.
このような総称関数を高速に処理する方式に1いては、
ニー・シー・エム、オブジェクト・オリエンティド・プ
ログラミング・システム・ランケージ・アンド・アプリ
ケーション、
’86 (1986)第1頁より第8頁(ACM、0b
ject−Oriented Programming
System、 Languages and Ap
plication ’86(1986) ppl−8
)において論じられている。上記文献によれば、型録に
総称関数名をキーとして適用すべきメソドまたはメソド
結合形を値とするメソド結合対応表を設け、当該型の引
数による総称関数呼出しが起こると上記メソド結合対応
表上で該当する総膜関数名を検索し、値であるメソドま
たはメソド結合形を適用する。One way to process such generic functions at high speed is to
N.C.M., Object-Oriented Programming System Language and Applications, '86 (1986) pp. 1-8 (ACM, 0b
project-oriented programming
System, Languages and Ap
plication '86 (1986) ppl-8
) is discussed in According to the above-mentioned literature, a method binding correspondence table is provided in the type list with the generic function name as the key and the method or method binding type to be applied as the value, and when a generic function call with an argument of the type occurs, the method binding correspondence table Search for the corresponding total membrane function name above and apply the value method or method combination.
ここでメソド結合形とは、第3図の(a)全体の手続き
または(b)全体の手続きに相当する内容の手続きであ
る。Here, the method combination type is a procedure whose content corresponds to (a) the entire procedure or (b) the entire procedure in FIG.
上記従来技術では、以下の4点の問題があった。 The above conventional technology has the following four problems.
第−点は、型録にメソド結合対応表を設けているため、
第4図に示すような被数の引数の型によってメソドを選
択しメソド結合を実施するような総称関数を扱えないこ
とである。The second point is that the model list has a method join correspondence table, so
The problem is that it cannot handle a generic function that selects a method and performs method combination according to the type of the argument of the augend, as shown in FIG.
第二点は、型の定義時にメソド結合対応表を生成する必
要があるので型定義の負荷が大きいことである。新しい
型が定義されると、すべての総称関数について当該の型
の引数で適用可能なメソド群を判定し、その結果に基づ
いてメソド結合形を生成し、メソド結合対応表に登録し
なければならない0例えば、第2図の形式201〜20
3実行後でのdefclass形式204では、まず、
総称関数m1について形式201および形式202によ
るメソドを適用判定し、両方とも適用可能という結果か
ら第3図(Q)のようなメソド結合形を生成する。The second point is that the load of type definition is heavy because it is necessary to generate a method binding correspondence table when defining a type. When a new type is defined, it is necessary to determine the applicable method group for the arguments of the type for all generic functions, generate a method binding form based on the result, and register it in the method binding correspondence table. 0 For example, formats 201 to 20 in Figure 2
In the defclass format 204 after executing 3, first,
It is determined whether the methods according to Format 201 and Format 202 are applicable to the generic function m1, and based on the result that both are applicable, a method combination form as shown in FIG. 3(Q) is generated.
第三点は、総称関数の定義またはメソドの追加定義時に
複数のメソド結合対応表を更新する必要があり、総称関
数の定義またはメソドの追加定義の負荷が大きいことで
ある0例えば、第2図の形式201〜204が実行され
ている時点より、defmethod形式205〜21
oを実行していくと、cl型およびc2型のメソド結合
対応表を各式の実行毎に更新することになる。cl型の
メソド結合対応表のmlの値は、形式204実行時に第
3図(d)のような単独なメソドであり、形式210実
行後には第3図(b)のようなメソド結合形にしていか
なければならないbc2型のメソド結合対応表では、第
3図(c)のメソド結合形より第3図(a)のメソド結
合形に変えていがなければならない。The third point is that when defining a generic function or adding a method, it is necessary to update multiple method join correspondence tables, and the load of defining a generic function or adding a method is heavy.For example, in Figure 2 From the time when formats 201 to 204 are executed, defmethod formats 205 to 21
As o is executed, the cl type and c2 type method join correspondence table is updated every time each expression is executed. The value of ml in the cl type method binding correspondence table is a single method as shown in Figure 3(d) when executing Format 204, and becomes a method binding form as shown in Figure 3(b) after executing Format 210. In the bc2 type method join correspondence table that must be updated, the method join form shown in Figure 3(c) must be changed to the method join form shown in Figure 3(a).
第四点は、型の再定義の負荷が大きいことである。型を
再定義する場合には、当該の型のメソド結合対応表を作
成しなおすばかりか、下位の型のすべてにわたってメソ
ド結合対応表を作り直す必要がある0例えば、第2図の
形式201〜210を実行した後でc2型をcl型の下
位型ではない型として再定義したとすれば、c2型の引
数で適用可能なメソドは、c1型指定のメソド群(20
1cl、 205d、 207d、 209d)および
C・2型指定のメソド群(202d、206d。The fourth point is that type redefinition is a heavy burden. When redefining a type, it is necessary not only to recreate the method binding correspondence table for the type in question, but also to recreate the method binding correspondence table for all lower-level types.For example, formats 201 to 210 in Figure 2 If the c2 type is redefined as a type that is not a subtype of the cl type after performing
1cl, 205d, 207d, 209d) and the method group designated by type C/2 (202d, 206d).
208d、210d)より、c2型指定のメソド群のみ
となる。そこで、c2型のメソド結合対応表を変更しな
ければならないが、もしc2型を上位型とする型が定義
されていたならば、それらの型のメソド結合対応表も変
更しなければならない。208d, 210d), only the c2 type specified method group is available. Therefore, the method binding correspondence table for the c2 type must be changed, but if types with the c2 type as a supertype have been defined, the method binding correspondence tables for those types must also be changed.
本発明の目的は、以下の2点である。The purpose of the present invention is the following two points.
第−点は、複数の引数の型によってメソドを選択し、メ
ソド結合形を決定するような総称関数も高速に処理可能
とすることである。The second point is to enable high-speed processing of generic functions that select methods based on the types of multiple arguments and determine method combinations.
第二点は、型の定義、再定義、総称関数の定義、メソド
の追加などのプログラムの変更に対して高速に対応可能
とすることである。オブジェクト指向のように総称関数
を含む言語では、対話環境のもとでプログラムを少しず
つ追加、修正しながら作成していく場合が多い。このた
め、上記のようなプログラム変更を円滑に行えることが
言語処理系にとって本質的な要件となっている。The second point is to be able to quickly respond to program changes such as type definitions, redefinitions, generic function definitions, and method additions. In languages that include generic functions, such as object-oriented languages, programs are often created by adding and modifying them little by little in an interactive environment. For this reason, it is an essential requirement for language processing systems to be able to smoothly make program changes as described above.
上記第−点の目的を達成するため、メソド結合対応表を
総称関数毎に設け、かつキー部を木構造とし、木の第−
層には第一の引数の型識別子、第二層には各々第一層の
型識別子を第一の引数とした場合に第二の引数の型識別
子というように、枝分れを表すように型識別子を配置し
たものである。In order to achieve the purpose of point 1 above, a method binding correspondence table is provided for each generic function, and the key part is structured as a tree, and the
The layer is the type identifier of the first argument, and the second layer is the type identifier of the second argument when the first argument is the type identifier of the first layer. It is an arrangement of type identifiers.
上記第二点の目的を達成するため、上記の総称関数毎の
メソド結合対応表のキー部の型識別子に、値の形式を計
算した時点での型定義のバージJン情報を持たせるよう
にしたものである。In order to achieve the purpose of the second point above, the type identifier in the key part of the method binding correspondence table for each generic function has the version information of the type definition at the time the value format is calculated. This is what I did.
また、上記第二点の目的を達成するため、上記の総称関
数毎のメソド結合対応表の鎧部をそれぞれ制御部とデー
タ部に分けて構成する。Furthermore, in order to achieve the second objective, the armor part of the method binding correspondence table for each generic function is divided into a control part and a data part.
また、上記第二点の目的を達成するため、上記の総称関
数毎のメソド結合対応表の鎧部をそれぞれ制御部とデー
タ部分に分けて構成する。Furthermore, in order to achieve the second objective, the armor part of the method binding correspondence table for each generic function is divided into a control part and a data part.
上記制御部には、特定のメソド結合タイプおよび特定の
識別子のメソドの場合に共通に利用できるメソド結合の
手続きを設定し、上記データ部には、当該キーの型識別
子群を満たす適用可能なメソド候補群等を設定するもの
である。The above control section sets a method binding procedure that can be commonly used for a method with a specific method binding type and a specific identifier, and the data section contains applicable methods that satisfy the type identifier group of the key. This is to set candidate groups, etc.
さらに、上記メソド結合手続きと上記適用可能なメソド
候補群について以下の5つの形式を用意するものである
。Furthermore, the following five formats are prepared for the method combination procedure and the applicable method candidate group.
標準メソド結合でプライマリ・メソドのみの場合には、
上記データ部をプライマリ・メソド群により構成し、制
御部を最も下位型指定のプライマリ・メソドを呼出す手
続き(第1メソド結合手続か)により構成したものであ
る(鎖部第1形式)。If there is only a primary method in a standard method join,
The data section is made up of a group of primary methods, and the control section is made up of a procedure (first method binding procedure) that calls the primary method specified by the lowest type (first form of chain section).
また、標準メソド結合でアラウンド・メソドを含まない
場合には、上記データ部を当該の引数型で適用可能なビ
フォー・メソド群、プライマリ・メソド群およびアフタ
ー・メソド群により構成し、制御部を、ビフォー・メソ
ド群を最も下位型指定のメソドより順に呼出し、最も下
位型指定のプライマリ・メソドを呼出し、アフター・メ
ソド群を最も上位型指定のメソドより順に呼出す第2メ
ソド結合手続きにより構成したものである(値部第2形
式)。In addition, when the standard method combination does not include an around method, the data section is configured with a before method group, a primary method group, and an after method group that can be applied with the relevant argument type, and the control section is It consists of a second method binding procedure that calls the before methods in order from the method with the lowest type specification, calls the primary method with the lowest type specification, and calls the after methods in order from the method with the highest type specification. Yes (value part second format).
また、標準メソド結合でアラウンド・メソドを含む場合
には、データ部を、適用可能なアラウンド・メソド群、
プライマリ・メソド群およびアフター・メソド群により
構成し、ただし、上記アラウンド・メソド群に鴎最も上
位型指定のメソドとして、上記ビフォー・メソド群、プ
ライマリ・メソド群およびアフター・メソド群を引数と
して第2メソド結合手続きを呼出す内容のメソド(第1
制御メソド)を付加しておき、制御部を、最も下位型指
定のアラアウンド・メソドを呼出す手続き(第3メソド
結合手続き)により構成したものである(値部第3形式
)。In addition, if a standard method combination includes around methods, the data part is the applicable around method group,
Consists of a primary method group and an after method group, provided that the above around method group is the method with the highest type specification, and the above before method group, primary method group, and after method group are used as arguments for the second method. The method that calls the method binding procedure (first
(control method) is added, and the control section is configured by a procedure (third method binding procedure) that calls the around method of the lowest type specification (value section third format).
また1組込みメソド結合または短形式宣言メソド結合で
アラウンド・メソドを含まない場合には、データ部を当
該メソド結合のオペレータおよび適用可能なプライマリ
・メソド群により構成し、制御部を上記プライマリ・メ
ソド群を呼出してその値部を引数として上記オペレータ
を呼出す第4メソド結合手続きにより構成したものであ
る(値部第4形式)。In addition, if a built-in method combination or short-form declaration method combination does not include an around method, the data part is composed of the operator of the method combination and the applicable primary method group, and the control part is composed of the above-mentioned primary method group. This is constructed by a fourth method connection procedure that calls the above operator using the value part as an argument (value part fourth format).
また、組込みメソド結合または短形式宣言メソドでアラ
ウンド・メソドを含む場合には、データ部を当該メソド
結合のオペレータ、適用可能なプライマリ・メソド群お
よびアラウンド・メソド群により構成する。ただし、上
記アラウンド・メソド群には、最も上位型指定のメソド
として、上記オペレータおよびプライマリ・メソド群を
引数として第4メソド結合手続きを呼出す内容のメソド
(第2制御メソド)を付加しておき、制御部を最も下位
型指定のアラウンド・メソドを呼出す第5メソド結合手
続きにより構成したものである(値部第5形式)。Furthermore, when a built-in method combination or a short-form declaration method includes an around method, the data section is composed of the operator of the method combination, an applicable primary method group, and a around method group. However, to the above-mentioned around method group, a method (second control method) that calls the fourth method binding procedure with the above-mentioned operator and primary method group as arguments is added as the method with the highest type specification. The control section is configured by a fifth method binding procedure that calls the around method specified by the lowest type (value section fifth format).
総称関数が呼出されると、与えられた引数の型を調べ、
当該総称関数のメソド結合対応表を検索する。先ず第一
の引数の型とメソド結合対応表のキー部の第−層に配置
された型識別子を比較し、−mするものがあれば、第二
の引数の型と当該の型識別子に対して配置されている第
二層の型識別子を照合していく。このように最後の引数
の型まで照合し一致するキーがあれば、当該キーに対す
る値をメソド結合候補とする。When a generic function is called, it examines the type of the given argument and
Search the method binding correspondence table for the generic function. First, compare the type of the first argument with the type identifier placed in the -th layer of the key part of the method binding correspondence table, and if there is a -m type, compare the type of the second argument with the type identifier in question. The second layer type identifier located in the second layer is checked. In this way, the type of the last argument is checked, and if there is a matching key, the value for that key is set as a method binding candidate.
次に一致した型識別子のバージョン情報と当該型の最新
のバージョン情報を照合する。ここで、型が定義または
再定義されるとバージョン情報を含む型識別子が生成さ
れることとする。また最新の型識別子は常時型名よりポ
イントされているとする。すべての型識別子のバージョ
ン情報が最新のものと一致すれば、当該のメソド結合候
補は有効である。Next, the version information of the matching type identifier is compared with the latest version information of the type. Here, it is assumed that when a type is defined or redefined, a type identifier including version information is generated. It is also assumed that the latest type identifier is always pointed to by the type name. If the version information of all type identifiers matches the latest version information, the method binding candidate is valid.
メソド結合候補は5種の形式を有しているが、いずれも
制御部とデータ部よりなり、制御部の手続きにデータ部
のメソド群を引数として適用し、メソド結合を実行する
。例えば、当該の総称関数が標準メソド結合である場合
には値部第1形式であり、データ部のプライマリメソド
群を引数として制御部の第1メソド結合手続きを呼出す
。第1メソド結合手続きのなかでは、与えられた引数よ
りも最も下位型指定のメソドを選んでこれを呼出すこと
になる。There are five types of method combination candidates, all of which consist of a control part and a data part, and the method group in the data part is applied as an argument to the procedure of the control part to execute method combination. For example, if the generic function in question is standard method binding, the value part is in the first format, and the first method binding procedure of the control part is called using the primary method group of the data part as an argument. In the first method binding procedure, the method with the lowest type specification than the given argument is selected and called.
型識別子のバージョン情報で一致しないものがあれば、
当該のメソド結合候補は古い型定義のもとで登録された
ものということになるので、当該の鎖部を登録しなおし
て利用する。If there is a mismatch in the version information of the type identifier,
Since the method binding candidate in question was registered under the old type definition, the chain part in question should be re-registered and used.
鎖部の登録は、まず当該のキーの引数型を満たすメソド
群を判定し適用メソド候補群とする。次にメソド結合タ
イプと上記通用メソド候補群の種類により、値部第1形
式〜値部第5形式のいずれかを選択して鎖部を設定する
。最後に最新の型識別子をキー部に設定する。To register a chain part, first, a method group that satisfies the argument type of the relevant key is determined and set as an applicable method candidate group. Next, depending on the method combination type and the type of the above-mentioned common method candidate group, one of the value part first format to value part fifth format is selected to set the chain part. Finally, set the latest type identifier in the key part.
最後の引数の型まで一致するキーがない場合は、バージ
モレ情報不一致の場合と同様に適用メソド候補群を判定
し鎖部を設定し、さらに木構造のキーの該当する位置に
最新の型識別子を追加する。If there is no key that matches the type of the last argument, determine the group of applicable method candidates and set the chain part in the same way as in the case of verge leak information mismatch, and then add the latest type identifier to the corresponding position of the key in the tree structure. to add.
こうして次回よりはここで設定した値を利用することに
する。In this way, the values set here will be used from next time onwards.
既に定義されている総称関数にメソドを追加する場合に
は、当該総称関数のメソド結合対応表の各鎖部のデータ
部に対して、当該キーの型で当該メソドが適用可能なら
ばこれを追加する。追加に当っては、メソドの識別子を
判定し1例えばアラウンド・メソドならばアラウンド・
メソド群に追加する。同じ識別子のメソド群がないとき
は鎖部形式を変更し、例えば鎖部が値部第2形式でそこ
にアラウンド・メソドを追加するとすれば、鎖部の形式
を値部第3形式と変更する0以上の処理により、メソド
結合対応表の鎖部にはキー部の型に対応した最新のメソ
ト群などが設定されることになり誤動作しない。When adding a method to an already defined generic function, if the method is applicable to the key type, add it to the data part of each chain part of the method binding correspondence table of the generic function. do. When adding, the method identifier is determined and 1. For example, if it is an around method, it is
Add to method set. If there is no method group with the same identifier, change the chain part format. For example, if the chain part is the value part 2 format and you want to add an around method there, change the chain part format to the value part 3 format. By processing 0 or more, the latest method group corresponding to the type of the key part is set in the chain part of the method join correspondence table, so that malfunctions will not occur.
以下、本発明の一実施例である総称関数処理方式を第1
図により説明する。The generic function processing method, which is an embodiment of the present invention, will be explained in the following.
This will be explained using figures.
総称関数のソースプログラム200は、定義形式(20
1,205)と実行形式(211,212)を含み上記
2つの形式が任意の順序で並べられたものである。定義
変更制御プログラム123は、上記定義形式を入力とし
く154,155) 、総称関数群124を生成または
追加、修正する(156)ものである。The source program 200 of the generic function has the definition format (20
1, 205) and execution format (211, 212), and the above two formats are arranged in an arbitrary order. The definition change control program 123 receives the above definition format as input (154, 155), and generates, adds to, or modifies the generic function group 124 (156).
総称関数呼出し制御プログラム122は、上記実行形式
およびデータ125を入力としく152゜153.15
1)、総称関数群124を参照(158)あるいは追加
、修正しながら(157)プログラムを実行し、実行結
果121を出力する(159)ものである。The generic function call control program 122 receives the above execution format and data 125 as input.
1) The program is executed while referring to the generic function group 124 (158) or adding or modifying it (157), and outputs the execution result 121 (159).
総称関数群124は計算機のメモリ上に実現されるデー
タ構造であり、総称関数名を示すシンボル102、総称
関数オブジェクト101、メソトリスト104およびメ
ソド結合対応表105の組により構成される。The generic function group 124 is a data structure realized on the memory of the computer, and is composed of a set of a symbol 102 indicating a generic function name, a generic function object 101, a method list 104, and a method connection correspondence table 105.
シンボル102は総称関数オブジェクト101をポイン
トしている。総称関数オブジェクトは、メソド結合タイ
プ103を保持し、メントリスト104および、メソド
結合対応表105をポイントしている。メソトリストは
、当該の総称関数に対して定義されたメソドのすべてを
保持する。メソド結合対応表は、引数の型をキーとし、
当該の総称関数が呼出された場合の処理を値とする表で
ある。キーに当たる部分は第一の引数から順に枝分かれ
するような木構造になっている。例えば第一の引数がA
1型(106で照合)、第二の引数がBl型(107で
照合)の場合には、A1・Blの値(108)に設定し
た処理を行うものとし、第1の引数がA1型で第二の引
数がB2型(131で照合)の場合には、A1・B2の
値(132)に設定した処理を行うものである。ここで
、キー部の木構造のなかで引数の型を示すのは型識別子
106である。型識別子は、型名109、バージョンI
Dll0および上位型111を持つ、ここでバージョン
IDとは、型が再定義されて型識別子が生成される毎に
別のID2図の形式203,204での02型に関して
言えば、cl型のことである。値(108)はそれぞれ
制御部(112)およびデータ部(113)によって構
成されている。定義変更制御プログラム123は、第2
0図に示すように、総称関数定義プログラム2011、
型定義および再定義プログラム2012およびメソト追
加定義プログラム2013よりなる。Symbol 102 points to generic function object 101. The generic function object holds a method binding type 103 and points to a ment list 104 and a method binding correspondence table 105. The method list holds all of the methods defined for the generic function in question. The method binding correspondence table uses the argument type as the key,
This is a table whose values are the processing when the relevant generic function is called. The part that corresponds to the key has a tree structure that branches in order from the first argument. For example, the first argument is A
If the first argument is type 1 (verified with 106) and the second argument is type Bl (verified with 107), the processing set to the value of A1/Bl (108) shall be performed; If the second argument is of type B2 (verified at 131), processing set to the value of A1/B2 (132) is performed. Here, in the tree structure of the key part, the type identifier 106 indicates the type of the argument. The type identifier is type name 109, version I
Dll0 and supertype 111, here the version ID refers to the cl type with respect to type 02 in the form 203, 204 of a different ID2 diagram each time the type is redefined and a type identifier is generated. It is. Each value (108) is configured by a control section (112) and a data section (113). The definition change control program 123
As shown in Figure 0, the generic function definition program 2011,
It consists of a type definition and redefinition program 2012 and a mesotho additional definition program 2013.
次に総称関数群124と総称関数プログラムおよびデー
タとの関係について述べる。総称関数プログラムの定義
部たとえば第2図の形式201での総称関数名ml (
201b)は、総称関数群124のなかの総称関数名m
1(201b)は、総称関数群124のなかのシンボル
102となり、実行部たとえば第2図の形式211での
総称関数名m1(211a)で参照することができる。Next, the relationship between the generic function group 124 and the generic function program and data will be described. Definition part of a generic function program For example, the generic function name ml in the format 201 in FIG.
201b) is the generic function name m in the generic function group 124
1 (201b) becomes the symbol 102 in the generic function group 124, and can be referenced by the execution unit, for example, the generic function name m1 (211a) in the format 211 in FIG.
総称関数の引数として渡されるデータたとえば形式21
1の引数objl (21l b)の値は、第21図(
a)のデータ2101のように型識別子の型識別子のな
かで最新の定義によるものは、第21図(b)に示すよ
うに、扇型識別子の型名シンボル2103より最新バー
ジョンとしてポイントされている(2104)ことにす
る。Data passed as an argument to a generic function, e.g. format 21
The value of the argument objl (21l b) of 1 is shown in Figure 21 (
The type identifier with the latest definition among the type identifiers, such as the data 2101 in a), is pointed to as the latest version by the type name symbol 2103 of the fan-shaped identifier, as shown in FIG. 21(b). (2104)
メソド結合対応表105の鎖部108の制御部112お
よびデータ部113の形式は、第6図に示すように、メ
ソド結合のタイプとメソドの種類により5つに分かれる
。As shown in FIG. 6, the formats of the control section 112 and data section 113 of the chain section 108 of the method binding correspondence table 105 are divided into five types depending on the type of method binding and the type of method.
標準メソド結合タイプでプライマリ・メソドのみの場合
は値部第1形式601が用いられる。プライマリ・メソ
ドのほかにビフォー・メソドもしくはアフター・メソド
を含み、アラウンド・メソドを含まない場合には値部第
2形式602が用いられる。アララン・メソドを含む場
合には値部第3形式603が用いられる。If there is only a primary method in the standard method connection type, the value part first format 601 is used. If a before method or an after method is included in addition to the primary method, but no around method is included, the value part second format 602 is used. If the data includes an Arran method, the third format 603 of the value part is used.
組込みメソド結合タイプもしくは短形宜言型メソド結合
タイプでプライマリ・メソドのみの場合には値部第4形
式604が用いられる。プライマリ・メソドのほかにア
ラウンド・メソドを含む湯漬部第1形式〜値部第5形式
の制御部で用いる第1メソド結合手続き〜第5メソド結
合手続きについて第7図〜第11図を用いて説明する。If there is only a primary method in the built-in method binding type or the short form method binding type, the value field fourth format 604 is used. The first to fifth method binding procedures used in the control units of the first form of the boiling part to the fifth form of the value part, which include around methods in addition to the primary method, will be explained using FIGS. 7 to 11. do.
第7図に示す、第1メソド結合手続き701は、適用可
能なプライマリ・メソト群を引数とし、このうち最も下
位の型指定のメソドを呼出すものである。The first method linkage procedure 701 shown in FIG. 7 takes a group of applicable primary methods as arguments and calls the method with the lowest type specification among them.
第8図に示す第2メソド結合手続き80.1は、適用可
能なプライマリ・メソト群、同ビフォー・メソド群およ
び同アフター・メソト群を引数とし、ビフォー・メソド
群を下位型指定の順に呼出し、最も下位の型指定のプラ
イマリ・メソトを呼出し、アフター・メソド群を上位型
指定の順に呼出し、プライマリ・メソドの値を結果とし
て返すものである。The second method binding procedure 80.1 shown in FIG. 8 takes the applicable primary method group, the before method group, and the after method group as arguments, and calls the before method group in the order of subtype specification, It calls the primary method with the lowest type specification, calls the after methods in the order of the higher type specification, and returns the value of the primary method as the result.
第9図に示す第3メソド結合手続き901は、適用可能
なプライマリ・メソド群、同ビフォー、・メソド群、同
アフター・メソド群および同アラウンド・メソド群を引
数とし、プライマリ・メソド群、ビイオー・メソド群お
よびアフター・メソド群をメソド群保存変数1 (90
2)に保存し、最も下位型指定のアラウンド・メソドを
呼出すものである。The third method combination procedure 901 shown in FIG. Method group and after method group are defined as method group preserving variable 1 (90
2) and calls the around method of the lowest type specification.
第10図に示す第4メソド結合手続き1001は、メソ
ド結合のオペレータおよび適用可能なプライマリ・メソ
ド群を引数とし、下位型指定の順にプライマリ・メソド
を呼出しその鎖部を引数としてオペレータを呼出すもの
である。The fourth method binding procedure 1001 shown in FIG. 10 uses a method binding operator and a group of applicable primary methods as arguments, calls the primary methods in the order of subtype specification, and calls the operator using the chain part as an argument. be.
第11図に示す第5メソド結合手続き1101は、メソ
ド結合のオペレータ、適用可能なプライマリ・メソド群
・同アラウンド・メソド群を引数とし、プライマリ・メ
ソド群およびオペレータをメソド群保存変数2 (11
02)に保存し、最も下位型指定のアラウンド・メソド
を呼出すものである。The fifth method combination procedure 1101 shown in FIG.
02) and calls the around method of the lowest type specification.
第1図に示すメソド結合対応表105のデータ部113
には、第6図に示すとおり、当該総称関数に定義されて
いるメソドのうち当該キーで適用可能なもののほかに、
値部第3形式では第1制御メソド、値部第5形式では第
2制御メソドを設定する。Data section 113 of method binding correspondence table 105 shown in FIG.
As shown in Figure 6, in addition to the methods defined in the generic function that are applicable to the key,
The first control method is set for the third format of the value section, and the second control method is set for the fifth format of the value section.
第1制御メソド903は、第9図に示すとおり、プライ
マリ・メソド群、ビフォー・メソド群およびアフター・
メソド群をメソド群保存変数1(902)より参照し、
これらを引数として第2メソド結合手続き801を呼出
すものである。As shown in FIG. 9, the first control method 903 includes a primary method group, a before method group, and an after method group.
Reference the method group from the method group preservation variable 1 (902),
The second method binding procedure 801 is called using these as arguments.
第2制御メソド1103は、第11図に示すとおり、メ
ソド群保存変数2(1102)よりプライマリ・メソド
群およびオペレータを参照し、これらを引数として第1
0図に示す第10図に示す第4メソド結合手続き100
1を呼出すものである。As shown in FIG. 11, the second control method 1103 refers to the primary method group and operator from the method group storage variable 2 (1102), and uses these as arguments to control the first control method.
The fourth method binding procedure 100 shown in FIG. 10 shown in FIG.
1.
次に、総称関数呼出し制御部122による関数呼出し処
理を第12図(a)を用いて説明する。Next, function call processing by the generic function call control unit 122 will be explained using FIG. 12(a).
いくつかの引数とともに総称関数が呼出されると。When a generic function is called with some arguments.
第21図に示すようなり1数のデータ2101の各々に
ついて型識別子106より型名2103を取得しく12
01.1202) 、メソド結合対応表105のキーの
第−層から対応する順位の引数の型\o9と一致するキ
ーを検索し、一致したキーから枝分かれしている次の層
のキーを検索してい< (1203〜1206)、そこ
で最後の順位の引数まで一致するキーがあれば、それぞ
れ型名の最新バージョン2104のバージョンID21
05とキーのバージョンIDll0と比較する。バージ
ョンIDが一致すれば、値をそのまま用いることとし、
一致しなければ今や再定義されて無効になった型情報に
基づく値であると判定し、改めて値を計算しその結果を
当該の鎖部に登録し、当該キーは最新の型識別子に変更
する(1210゜1207.1212)。こうしてバー
ジョン情報を確認した鎖部のデータ部を引数として制御
部の手続きを呼出す(1213)、一致するキーがなけ
れば、末だ当該の引数型に対する値が登録されていない
と判定し新たに値を計算しキーを追加して登録したうえ
で(1207〜1209)データ部を引数として制御部
の手続きを呼出す(1213)、第12図の(b)に示
す値の計算(1207)は、総称関数オブジェクトのメ
ソド・いて、当該呼出しの引数がメソドの型指定を満足
するかを調べ(1222〜1225)、すべての引数に
ついて満足するメソドを識別子毎に収集しく1226)
、第6図に示した値部形式を判定して制御部を決定する
。さらに、値部第3形式ならアラウンド・メソド群に第
1制御メソド903を追加し値部第5形式ならアラウン
ド・メソド群に第2制御メソド1103を追加しデータ
部とする(1227,1228)。As shown in FIG. 21, the type name 2103 is obtained from the type identifier 106 for each of the one number of data 2101.
01.1202), searches for a key that matches the argument type \o9 of the corresponding rank from the -th layer of keys in the method binding correspondence table 105, and searches for keys in the next layer branching from the matched key. < (1203 to 1206), and if there is a key that matches up to the last argument, the version ID 21 of the latest version 2104 of the type name is used.
05 and the key version IDll0. If the version IDs match, use the value as is,
If they do not match, it is determined that the value is based on type information that has now been redefined and is no longer valid, the value is calculated anew, the result is registered in the chain, and the key is changed to the latest type identifier. (1210°1207.1212). The control section procedure is called using the data section of the chain section whose version information has been confirmed as an argument (1213). If there is no matching key, it is determined that no value has been registered for the relevant argument type, and a new value is added. After calculating, adding and registering the key (1207 to 1209), calling the procedure of the control section using the data section as an argument (1213), calculating the value shown in (b) in Figure 12 (1207) is a general term. Checks whether the arguments of the function object satisfy the method type specification (1222 to 1225), and collects methods for each identifier that satisfy all arguments (1226).
, the value part format shown in FIG. 6 is determined to determine the control part. Furthermore, if the value part is in the third format, the first control method 903 is added to the around method group, and if the value part is in the fifth format, the second control method 1103 is added to the around method group to form the data part (1227, 1228).
次に第20図に示した型定義および再定義プログラム2
013の処理を第13図を用いて説明する。型が定義ま
たは再定義された場合には、型識別子106を生成し、
型名シンボルより直前での最近バージョン型識別子のバ
ージョンIDを取得し、これを更新して上記型識別子に
設定する。また、型名の最新バージョンとして上記の生
成した型識別子を設定する。第20図に示した総称関数
定義プログラム2011の処理を第14図を用いて説明
する。総称関数が定義された場合には、総称関数が定義
された場合には、総称関数オブジェクト101を生成し
メソド結合の種類103を設定しメソド・リスト104
およびメゾト結合対応表105を初期化(空リスト)し
ておき、総称関数名のシンボル102に設定する。Next, type definition and redefinition program 2 shown in Figure 20
The process of 013 will be explained using FIG. If the type is defined or redefined, generate a type identifier 106;
The version ID of the latest version type identifier immediately before the type name symbol is obtained, updated, and set as the type identifier. Also, set the type identifier generated above as the latest version of the type name. The processing of the generic function definition program 2011 shown in FIG. 20 will be explained using FIG. 14. When a generic function is defined, a generic function object 101 is generated, a method connection type 103 is set, and a method list 104 is created.
The mesoto combination correspondence table 105 is initialized (empty list) and set to the symbol 102 of the generic function name.
第20図に示したメソド追加定義プログラム2012の
処理を第15図を用いて説明する。総称関数にメソドが
追加された場合には、メソド結合対応表のキー毎にすべ
ての引数の型指定を満たすものかを判定しく1501〜
1504)、満たすキーについては鎖部を変更してい<
(1505〜1507)、鎖部の変更では、まずデー
タ部113に当該のメソドの識別子に対応するメソド群
があるかを判定しく1505)、あればそこに当該のメ
ソドを追加する(1506)、なければ、鎖部形式を変
更してデータ部に当該のメソドの識別子に対応するメソ
ド群を設けて(1507)、メソドを登録することにな
る。鎖部形式の変更(1507)は、第15図(b)に
示す3つの場合(1511,1512,1513)にの
み必要となる。以上の処理をメソド結合対応表105へ
の当該メソドの登録が終わりと、最後にメソド・リスト
104に当該のメソドを追加しておく(1508)。The processing of the method addition definition program 2012 shown in FIG. 20 will be explained using FIG. 15. When a method is added to a generic function, it must be determined whether the type specifications of all arguments are satisfied for each key in the method binding correspondence table (1501~
1504), the chain part is changed for keys that satisfy <
(1505-1507), to change the chain section, first determine whether there is a method group corresponding to the identifier of the method in the data section 113 (1505), and if so, add the method there (1506); If not, the chain section format is changed, a method group corresponding to the identifier of the method is provided in the data section (1507), and the method is registered. Changing the chain type (1507) is necessary only in the three cases (1511, 1512, 1513) shown in FIG. 15(b). After completing the above process and registering the method in the method binding correspondence table 105, the method is finally added to the method list 104 (1508).
以下、第4図、第5図の入力例に従って動作を説明する
。The operation will be explained below according to the input examples shown in FIGS. 4 and 5.
defclass形式(401,402)により第16
図(、)に示すようにC1型およびC2型の型識別子(
1611および1612)が生成され、それぞれシンボ
ル(1621および1622)より最新バージョンとし
てポイントされる(1631および1632)ことにな
る。defmehod形式(404〜407)が評価さ
れ、さらにここで、総称関数m2についてC1型のデー
タとC1型のデータを引数とする呼出しく形式411)
、C2型のデータと01型のデータを引数とする呼出し
く形式412)およびC2型のデータとC2型のデータ
を引数とする呼出しく形式413)が起きると、メソド
結合対応表は第16図(b)のように生成されることに
なる。このような状態からメソドが追加さへた場合の動
作を以下説明する。16th by defclass format (401, 402)
As shown in the figure (, ), the type identifiers of C1 type and C2 type (
1611 and 1612) will be generated and will be pointed to (1631 and 1632) as the latest versions by the symbols (1621 and 1622), respectively. The defmehod format (404 to 407) is evaluated, and furthermore, the calling format 411) with C1 type data and C1 type data as arguments for the generic function m2 is executed.
, when the call format 412) with C2 type data and 01 type data as arguments and the call format 413) with C2 type data and C2 type data as arguments occur, the method binding correspondence table is as shown in Figure 16. It will be generated as shown in (b). The operation when a method is stopped from being added in such a state will be described below.
defmethod形式408が追加定義されるとメソ
ド結合対応表1601のキー毎に引数型が調べられ、こ
こでは第131数02型、第2引数c2型のキーのみが
検索され鎖部1604aが更新される。When the defmethod format 408 is additionally defined, the argument type is checked for each key in the method binding correspondence table 1601, and here, only the keys of the 131st number 02 type and the second argument c2 type are searched and the chain part 1604a is updated. .
鎖部1640aは既にアフター・メソード群1605を
構成要素としているのでここに今回のメソド408dを
設定する。さらにdefmethld形式409が追加
定義されると同様に鎖部1604aが更新されることに
なるが、アラウンド・メソド群を構成要素としていない
ので第15図(b)に示した鎖部変更規則1502に従
い第16図(C)の鎖部1604bのように鎖部形式を
値部第3形式に変更し、既定のアラウンド・メソドであ
る第1制御メソド903とともに当該のアラウンド・メ
ソド409dを登録する。Since the chain portion 1640a already has the after method group 1605 as a component, the current method 408d is set here. Furthermore, when the defmethld format 409 is additionally defined, the chain part 1604a is updated in the same way, but since the around method group is not a component, the chain part change rule 1502 shown in FIG. 15(b) is updated. As shown in the chain part 1604b in FIG. 16(C), the chain part format is changed to the value part third format, and the relevant around method 409d is registered together with the first control method 903, which is the default around method.
ここで総称関数が呼出された場合の動作例を示す。Here is an example of the operation when a generic function is called.
総称関数m2にcl型の引数とC1型の引数が支えられ
る(形式414)と値1602が検索され、メソド、4
04 dプライマ・メソド群として第1メソド結合手続
き701を呼出し、そこからメソド404dを呼出すこ
とになる(702)。If the generic function m2 supports arguments of type cl and arguments of type C1 (format 414), the value 1602 is retrieved, and method 4
04d The first method binding procedure 701 is called as the primer method group, and the method 404d is called from there (702).
総称関数m2にC1型の引数と02型の引数が与えられ
る(形式415)と該当するキーがないので、m2のメ
ソド群メソド404d〜409dのうちより適用可能な
メソドつまりプライマ・メソド404dおよびアフター
・メソド408dを選択しく1222〜1226)、鎖
部形式を第2値部形式602と判定し、第17図に示す
ようにキーを追加して鎖部1701を登録する。そのう
えで鎖部1701を参照してメソド404dをプライマ
リ・メソト群としメソド408dをアフター・メソド群
とし、ビフォー・メソド群をなしとして第2メソド結合
手続き801を呼出しそこからメソド404dを呼出し
く803)次にメソド408dを呼出してメソド404
dの値を結果として返すことになる。When a C1 type argument and a 02 type argument are given to the generic function m2 (format 415), there is no corresponding key, so the more applicable method among the method group methods 404d to 409d of m2, that is, the primer method 404d and the after - Select the method 408d (1222-1226), determine the chain part format to be the second value part format 602, add a key, and register the chain part 1701 as shown in FIG. Then, referring to the chain section 1701, set the method 404d as the primary method group, set the method 408d as the after method group, set the before method group as none, call the second method binding procedure 801, and call the method 404d from there.803) Next Call method 408d to method 404
The value of d will be returned as the result.
総称関数m2に02型の引数と02型の引数が与えられ
ると(形式416)と値1604bが検索され、メソド
404dと、メソド405dとメソド406dをプライ
マリ・メソド群、メソド407dをビフォー・メソド群
・メソド408dをアフター・メソド群、メソド409
dと第1制御メソド903をアラウンド・メソド群とし
て第3メソド結合手続き901を呼出す、そこから、メ
ソド404d〜408dをそれぞれのメソドの種類とと
もにメソド群保存変数1(902)に保存し、メソドに
409dを呼出す(905)、メソド409dはここで
唯一の本来のアラウンド・メソドであり、call−n
ext−method形式が評価されると(908かつ
909)第1制御メソド903を呼出すことになる。第
1制御メソド903では。When an argument of type 02 and an argument of type 02 are given to the generic function m2, the value 1604b is searched (format 416), method 404d, method 405d, and method 406d are the primary method group, and method 407d is the before method group.・Method 408d after method group, method 409
d and the first control method 903 as the around method group. From there, the methods 404d to 408d are saved in the method group storage variable 1 (902) along with their respective method types, and the method 409d (905), method 409d is the only proper around method here, call-n
When the ext-method format is evaluated (908 and 909), the first control method 903 will be called. In the first control method 903.
メソド404d〜408dをそれぞれのメソドの種類と
ともにリストアし、これらを引数として第2メソド結合
手続き801を呼出す(907)。The methods 404d to 408d are restored together with their respective method types, and the second method binding procedure 801 is called using these as arguments (907).
そこから、メソド407dを呼出しく802)、メソド
405dを呼出しく803)、メソド408dを呼出し
て(804)メソド405dの値を結合果として返す。From there, method 407d is called 802), method 405d is called 803), method 408d is called (804), and the value of method 405d is returned as a combination result.
ここで型が再定義された場合の動作例を示す。Here is an example of the behavior when the type is redefined.
上記の総称関数m2で用いているc2型の定義を、de
fclass式422で上位型なしとして再定義したと
する。すると、バージョンIDを従来のc2型最新バー
ジJン1612での値1 (1633)を2に更新した
型識別子1802を生成し、C型の最新バージョンとし
て設定する(1801)。The definition of the c2 type used in the generic function m2 above is de
Assume that the fclass expression 422 is redefined as having no upper type. Then, a type identifier 1802 is generated in which the version ID is updated from the value 1 (1633) of the conventional C2 type latest version J 1612 to 2, and is set as the latest version of the C type (1801).
ここで、c2型のデータと02型のデータを引数として
総称関数m2が呼出される(形式417)と、第17図
におけるメソド結合対応表1601より値1604bが
検索されるが、キー部の型識別子のバージョンID16
33が02型の最新のバージョンl01803と一致し
ないので、改めて値を計算しキーの型識別子を変更して
値を登録することになる(1207.1212)、cl
型を上位型としないならば適用可能なメソドは、プライ
マリ・メソド406dおよびアラウンド・メソド409
dということになり、第18図(b)値1604cのよ
うに変更される。ただし、ここでは第−層のキーより不
一致であるので、このキーの下層の他の値である値16
03aも同様に再計算、再登録することとする(値16
03b)。Here, when the generic function m2 is called with data of type c2 and data of type 02 as arguments (format 417), the value 1604b is searched from the method binding correspondence table 1601 in FIG. Identifier version ID16
33 does not match the latest version of type 02 l01803, we will need to calculate the value again, change the type identifier of the key, and register the value (1207.1212), cl
If the type is not a supertype, the methods that can be applied are the primary method 406d and the around method 409.
d, and is changed as shown in the value 1604c in FIG. 18(b). However, since this is a mismatch compared to the key in the -th layer, the value 16 is another value in the layer below this key.
03a will also be recalculated and re-registered (value 16).
03b).
短形式宣言メソド結合の場合について言えば、総称関数
の定義、メソドの追加および型の再定義の動作は上記の
標準メソド結合の場合は同様である。以下に総称関数が
呼出された場合の動作について述べる。第4図の01お
よびc2型の定義のもとで第5図の形式501〜505
が評価され、そのうえで総称関数m3がcl型の引数で
呼出され(形式511)またc2型の引数で呼出される
(形式512)と、第19図のメソド結合対応表190
1が生成されることになる。ここで、cl型の引数によ
り呼出される(形式513)と、値1902が検索され
関数水(乗算)をオペレータとしメソド503dをプラ
イマリ・メソド群として第4メソド結合手続き1001
を呼出し、そこからメソド503dを呼出しく1002
)、その値を引数として関数:を呼出すことになる。ま
た、c2型の引数により呼出される(形式514)と、
値1903を検索し、関数水をオペレータとしてメソド
504dをプライマリ・メソド群としおよび第2制御メ
ソド1103をアラウンド・メソド群として第5メソド
結合手続き1101を呼出す。In the case of short-form declaration method binding, the operations for defining a generic function, adding a method, and redefining a type are the same as in the case of standard method binding described above. The operation when a generic function is called is described below. Formats 501 to 505 in Figure 5 based on the definitions of types 01 and c2 in Figure 4
is evaluated, and then the generic function m3 is called with an argument of type cl (format 511) and called with an argument of type c2 (format 512), and the method binding correspondence table 190 in FIG.
1 will be generated. Here, when called with a cl type argument (format 513), the value 1902 is searched and the fourth method combination procedure 1001 uses the function water (multiplication) as the operator and the method 503d as the primary method group.
1002 and call method 503d from there.
), the function: is called with that value as an argument. Also, when called with an argument of type c2 (format 514),
The value 1903 is retrieved, and the fifth method combination procedure 1101 is called using function water as the operator, method 504d as the primary method group, and second control method 1103 as the around method group.
そこから、関数水とメソド504dをメソド群保存変数
2(1102)に保存しメソド505dを呼出す。ここ
でメソド505dは唯一の本来のアラウンド・メソドで
あり、call−next−methodが評価される
(1106かつ1107)と第2制御メソド1103が
呼出されることになる。第2制御メソド1103では、
関数水およびメソド504dをリストアしこれらを引数
として第4メソド結合手続きを呼出しく1109)、そ
こからメソド504dを呼出しく1002)その値を引
数として関数*を呼出す(1003)ことになる。From there, the function water and method 504d are stored in method group storage variable 2 (1102), and method 505d is called. Here, method 505d is the only original around method, and when call-next-method is evaluated (1106 and 1107), the second control method 1103 will be called. In the second control method 1103,
The function water and method 504d are restored, and the fourth method connection procedure is called using these as arguments (1109), and from there, the method 504d is called (1002), and the function * is called using the values as arguments (1003).
本実施例によれば以下の効果がある。第一に引数が複数
である総称関数についても高速に処理可能である。第二
にプログラムの変更に対して高速に対応可能であること
で、これは以下の3項目に分けて述べられる。その1は
新しい型を定義する場合にメソド結合対応表を生成する
必要がない。According to this embodiment, there are the following effects. First, generic functions with multiple arguments can be processed at high speed. Second, it is possible to respond quickly to program changes, which can be divided into the following three items. The first is that there is no need to generate a method binding correspondence table when defining a new type.
その2は型を再定義する場合に当該の型や下位の型のメ
ソド結合対応表を作る直す必要がない、その3はメソド
を追加する場合に当該の総称関数のメソド結合対応表以
外のメソド結合対応表を更新する必要がなく、かつメソ
ド結合対応表の値の更新において、メソド結合手続きを
生成する必要がないことである。上記3項目が可能にな
った反面、総称関数呼出し時においてメソド結合対応表
に当該の型のキーがない場合および古い型定義のもとで
の値である場合には値の計算が必要となるが、あらかじ
め用意したいくつかのメソド結合手続きより選んで登録
すればよいので負荷は少ない。2. When redefining a type, there is no need to recreate the method binding correspondence table for the relevant type or lower-level types. 3. When adding a method, add a method other than the method binding correspondence table for the generic function in question. There is no need to update the join correspondence table, and there is no need to generate a method join procedure when updating the values of the method join correspondence table. Although the above three items are now possible, when calling a generic function, if there is no key of the relevant type in the method binding correspondence table, or if the value is based on the old type definition, the value must be calculated. However, the load is low because you can select one from several pre-prepared method combination procedures and register it.
本発明によれば、以下の効果がある。 According to the present invention, there are the following effects.
第1点は、総称関数毎に複数の型識別子をキーとするメ
ソド結合対応表を設けたので、複数の引数型を用いてメ
ソドを選択しメソド結台形を決定する総称関数を扱うこ
とが可能となったことである。また、新しい型の定義所
にメソド結合対応表の値を一斉に計算する負荷を省き、
メソドの追加時のメソド結合対応表の更新も当該の総称
関数のメソド結合対応表のみで済ますことができる。さ
らにキーを木構造としたので、引数の型の組合せ数が大
きくなるような場合でも高速に検索することができる。The first point is that we have provided a method binding correspondence table with multiple type identifiers as keys for each generic function, so it is possible to handle generic functions that use multiple argument types to select methods and determine method binding trapezoids. This is what happened. Also, it eliminates the burden of calculating the values of the method binding correspondence table all at once at the new type definition location.
When a method is added, the method binding correspondence table can be updated only by updating the method binding correspondence table of the relevant generic function. Furthermore, since the key is in a tree structure, it is possible to search at high speed even when the number of combinations of argument types is large.
第2点は、上記型識別子に型定義のバージョン情報を持
たせたので、値の参照時にバージョンの一致を判定する
ことが可能であり、これにより型の再定義時に当該の型
や下位の型のメソド結合対応表を一斉に更新する必要が
なくなり、参照された値のみ遅延型で更新すればいいこ
とになったことである。The second point is that since the above type identifier has version information of the type definition, it is possible to determine whether the version matches when referencing the value, and by this, when redefining the type, it is possible to It is no longer necessary to update the method join correspondence table all at once, and only the referenced values need to be updated in a delayed manner.
第3点は、メソド結合対応表の鎖部を制御部とデータ部
に分けて構成したので、メソドの追加による鎖部の更新
が多くの場合データ部の更新のみで済むようになったこ
とである。The third point is that the chain part of the method binding correspondence table is divided into a control part and a data part, so updating the chain part by adding a method can often only be done by updating the data part. be.
第4点は、第2メソド結合手続きを上記制御部に用いた
ので、標準メソド結合でアラウンド・メソドがない範囲
でのメソド追加がデータ部の更新のみで済むようになっ
たことである。The fourth point is that since the second method linkage procedure is used in the control section, addition of a method in a range where there is no around method in standard method linkage can be done by simply updating the data section.
第5点は、第3メソド結合手続きを上記制御部に、第1
制御メソドを上記データ部に用いたので、標準メソド結
合でアラウンド・メソドも含む範囲でのメソド追加がデ
ータ部の更新のみで済むようになったことである。The fifth point is that the third method connection procedure is sent to the first
Since the control method is used in the data section, adding methods that include around methods using standard method binding only requires updating the data section.
第6点は、第4メソド結合手続きを上記制御部に用いた
ので、組込みメソド結合または短形式宣言メソド結合で
アラウンド・メソドがない範囲でのメソド追加がデータ
部の更新のみで済むようになったことである。The sixth point is that since the fourth method binding procedure is used in the control section, adding a method in the range where there is no around method in built-in method binding or short-form declaration method binding only requires updating the data section. That's what happened.
第7点は、第5メソド結合手続きを上記制御部に、第2
制御メソドを上記データ部に用いたので、組込みメソド
結合または短形式宣言メソド結合でアラウンド・メソド
も含む範囲でのメソド追加がデータ部の更新のみで済む
ようになったことである。The seventh point is that the fifth method connection procedure is sent to the second
Since the control method is used in the data section, adding methods that include around methods through built-in method binding or short-form declaration method binding only requires updating the data portion.
第1図は本発明の一実施例の総称関数処理方式を示して
いる。第2図は本発明の技術の背景である総称関数のプ
ログラムを示したものであり、第3図は[関数プログラ
ムの動作の説明図である。
+ilj”べ
第4図は総称関数の機能のうち特に標準メソド結合タイ
プを用いた場合のプログラム例であり、第5図は短形式
宣言型メソド結合タイプを用いた場合のプログラム例で
ある。第6図は、第1図の総称関数処理方式で用いるメ
ソド結合対応表の鎖部の形式を示している。第7図〜第
11図は、第6図の鎖部形式(第1値部形弐〜第5値部
形式)の制御部で用いる第1メソド結合手続き〜第5メ
ソド結合手続きの処理フローを示している。第12図は
、第1図の総称関数処理方式で用いる総称関数呼出し制
御プログラムの処理フローを示している。第13図〜第
15図は、第1図の総称関数処理方式で用いる定義変更
制御プログラムの構成要素である型定義および再定義プ
ログラム、総称関数定義プログラムおよびメソド定義プ
ログラムのそれぞれ処理フローを示している。
第16図〜第19図は、第1図の総称関数処理方式によ
る動作例を示したものである。このうち、第16図は、
第4図のプログラム例を入力とした場合に生成されるメ
ソド結合対応表を示している。
第17図は、第16図の続きで、新しいキーの値が追加
登録された図である。第18図は、第17図の続きで、
データ型が再定義された後に新定義に基づく値が登録さ
れた図である。第19図は、第5図のプログラム例を入
力とした場合に生成されるメソド結合対応表を示してい
る。
第20図は、第1図の総称関数処理方式で用いる定義変
更制御プログラムの構成を示している。
第21図は、第1図の総称関数処理方式で用いるデータ
と型識別子に関する補足説明図である。
符号の説明
105・・・メソド結合対応表、
106・・・型識別子、110・・・バージミンID1
08・・・鎖部、
112・・・制御部、113・・・データ部、801・
・・第2メソド結合手続き、
901・・・第3メソド結合手続き、
903・・・第1制御メソド、
1001・・・第4メソド結合手続き、103・・・第
2制御メソド。
第
図
竿
4
図
(CIiJ、/σ
(dIL子c1九汀
1
Cl
(ン
(Ol)
ぬSけiP伽−σJ、−ct )
、−(≦Lシ?cトjrすンoh−o+−0z)rν+
07
Zθ2
Cltfclass
2
す
tksc)−’tPす;cpq−of−CI−2)
へ 1l−x2(7It2
<c’lテ゛−タ〉
〈c2!チータン\ン −φt7
穿
困
(耐INL−πa4kIMl−cowr/ytへ久fi
oル片
)
ヘケof
興
図
葛
7
図
第
?
図
第
図
筈
0
図
箒
//
図
ネ/乙図
易/?図
(0L)
わ2/図FIG. 1 shows a generic function processing scheme according to an embodiment of the present invention. FIG. 2 shows a generic function program which is the background of the technology of the present invention, and FIG. 3 is an explanatory diagram of the operation of the function program. Figure 4 is an example of a program using the standard method binding type among the functions of generic functions, and Figure 5 is an example of a program using the short form declaration type method binding type. Figure 6 shows the chain part format of the method binding correspondence table used in the generic function processing method shown in Figure 1. Figures 7 to 11 show the chain part format (first value part form) in Figure 6. 12 shows the processing flow of the first to fifth method binding procedures used in the control unit of the second to fifth value part formats. Figure 12 shows the generic function call used in the generic function processing method in Figure 1. This shows the processing flow of the control program. Figures 13 to 15 show the type definition and redefinition program, generic function definition program, and Each of the processing flows of the method definition program is shown. Fig. 16 to Fig. 19 show an example of the operation by the generic function processing method of Fig. 1.
4 shows a method combination correspondence table generated when the program example of FIG. 4 is input. FIG. 17 is a continuation of FIG. 16, and is a diagram in which a new key value has been added and registered. Figure 18 is a continuation of Figure 17,
FIG. 7 is a diagram in which a value based on a new definition is registered after a data type is redefined. FIG. 19 shows a method combination correspondence table generated when the program example shown in FIG. 5 is input. FIG. 20 shows the configuration of a definition change control program used in the generic function processing method shown in FIG. FIG. 21 is a supplementary explanatory diagram regarding data and type identifiers used in the generic function processing method of FIG. 1. Description of codes 105...Method binding correspondence table, 106...Type identifier, 110...Vergemin ID1
08... Chain part, 112... Control part, 113... Data part, 801...
...Second method connection procedure, 901...Third method connection procedure, 903...First control method, 1001...Fourth method connection procedure, 103...Second control method. Fig. Rod 4 Fig. (CIiJ, /σ (dIL child c1 9 1 Cl (N (Ol) NuSkeiP 伽−σJ, -ct) , -(≦Lshi?ctojrSunoh−o+− 0z)rν+
07 Zθ2 Cltfclass 2 tksc)-'tP;cpq-of-CI-2)
To 1l-x2 (7It2 <c'l data><c2!Chitan\n-φt7 perforation (resistant INL-πa4kIMl-cowr/yt to long fi
oru piece) Heke of Kozukatsu 7 Figure No. 7? Figure number diagram 0 Figure broom// Figure number/Otsuzu easy/? Figure (0L) Wa2/Figure
Claims (1)
は複数の型識別子とその引数が与えられた場合に適用す
べきメソドまたはメソド結合形の組を格納したメソド結
合対応表を有する総称関数群と、総称関数呼出し時には
上記メソド結合対応表より引数のデータ型に対するメソ
ドまたはメソド結合形を検索して実行する総称関数呼出
し制御部と、型や総称関数の定義および変更を実行する
定義変更制御部よりなる総称関数型言語の関数処理方法
において、上記メソド結合対応表のキー部を、第1の引
数の型識別子を第1層のキーとし、第2の引数の型識別
子を第2層のキー部を配置し、以下引数毎に枝分かれす
るような木構造としたことを特徴とする関数処理方法。 2、特許請求の範囲第1項記載のメソド結合対応表にお
いて、キー部の型識別子に型定義のバージョン情報を持
たせ、メソド結合対応表参照時には、引数の型のバージ
ョン情報と上記キー部のバージヨン情報を照合すること
を特徴とする関数処理方法。 3、特許請求の範囲第1項記載のメソド結合対応表にお
いて、メソド結合形をメソド結合制御の実行手続きであ
る制御部と上記手続きに渡す引数であるデータ部に分け
て構成したことを特徴とする関数処理方法。 4、標準メソド結合でアラウンドメソドを含まない総称
関数では、特許請求の範囲第3項記載のメソド結合形を
、適用可能なビフォー・メソド群、プライマリ・メソド
群およびアフター・メソド群をデータ部とし、ビフォー
・メソド群、最も下位の型指定のプライマリ・メソドお
よびアフター・メソド群を順次呼出す手続きである第2
メソド結合手続きを制御部とすることを特徴とする関数
処理方法法。 5、標準メソド結合でアラウンド・メソドを含む総称関
数では、特許請求の範囲第3項記載のメソド結合形を、
適用可能なアラウンド・メソド群、ビフォー・メソド群
、プライマリ・メソド群およびアフター・メソド群をデ
ータ部とし、上記アラウンド・メソド群には最も上位の
型指定のメソドとして、上記ビフォー・メソド群、プラ
イマリ・メソド群およびアフター・メソド群を引数とし
て特許請求の範囲第4項記載の第2メソド結合手続きを
呼出すメソドを付加しておき、最も下位の型指定のアラ
ウンド・メソドを呼出す手続きを制御とすることを特徴
とする関数処理方法。 6、組込みメソド結合または短形式宣言メソド結合でア
ラウンド・メソドを含まない総称関数では、特許請求の
範囲第3項記載のメソド結合形を、当該メソド結合のオ
ペレータおよび適用可能なプライマリ・メソド群をデー
タ部とし、上記プライマリ・メソド群を順次呼出してそ
の値群を引数として上記オペレータを呼出す手続きであ
る第4メソド結合手続きを制御部とすることを特徴とす
る関数処理方法。 7、組込みメソド結合または短形式宣言メソド結合でア
ラウンド・メソドを含む総称関数では、特許請求の範囲
第3項記載のメソド結合形を、当該メソド結合のオペレ
ータ、適用不能なプライマリ・メソド群およびアラウン
ド・メソド群をデータ部とし、上記アラウンド・メソド
群には、最も上位の型指定のメソドとして当該メソド結
合のオペレータと適用可能なプライマリ・メソド群を引
数として特許請求の範囲第6項記載の第4メソド結合手
続きを呼出すメソドを付加しておき、最も下位の型指定
のアラウンド・メソドを呼出す手続きを制御部とする関
数処理方法。[Claims] 1. A method linkage that stores a group of type identifiers that store data type definitions and a set of methods or method linkages that should be applied when one or more type identifiers and their arguments are given. A group of generic functions that have a correspondence table, a generic function call control unit that searches and executes a method or method combination form for the data type of an argument from the above method binding correspondence table when calling a generic function, and definitions and changes of types and generic functions. In the function processing method of a generic functional language consisting of a definition change control unit that executes A function processing method characterized in that a key part of an identifier is arranged in a second layer, and a tree structure is formed in which the key part is arranged for each argument. 2. In the method binding correspondence table described in claim 1, the type identifier of the key part has version information of the type definition, and when referring to the method binding correspondence table, the version information of the argument type and the key part are A function processing method characterized by checking version information. 3. In the method binding correspondence table described in claim 1, the method binding type is divided into a control part which is an execution procedure of method binding control and a data part which is an argument to be passed to the procedure. Function processing method. 4. In a generic function that is a standard method combination and does not include an around method, the method combination described in claim 3 is used as the data part of the applicable before method group, primary method group, and after method group. , the before method group, the lowest typed primary method, and the second procedure which sequentially calls the after method group.
A function processing method characterized in that a method binding procedure is used as a control part. 5. In a generic function that includes an around method in standard method combination, the method combination form described in claim 3 is
The applicable around method group, before method group, primary method group, and after method group are the data part, and the above before method group, primary method group is the method with the highest type specification for the above around method group. - Add a method that calls the second method binding procedure described in claim 4 using the method group and after method group as arguments, and use the procedure that calls the lowest type specified around method as the control. A function processing method characterized by: 6. In a generic function that does not include an around method in built-in method binding or short-form declaration method binding, the method binding form described in claim 3 is used as the operator of the method binding and the applicable primary method group. A function processing method, characterized in that the data part is a control part, and the control part is a fourth method combination procedure which is a procedure for sequentially calling the primary method group and calling the operator using the value group as an argument. 7. In a generic function that includes an around method in a built-in method combination or a short-form declaration method combination, the method combination form described in claim 3 is used as the operator of the method combination, the inapplicable primary method group, and the around method combination. - The data section is a method group, and the around method group is the method of the highest type specification, and the operator of the method combination and the applicable primary method group are used as arguments as set forth in claim 6. A function processing method in which a method that calls a four-method combination procedure is added, and the control section is a procedure that calls the around method of the lowest type specification.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1152338A JP3047976B2 (en) | 1989-06-16 | 1989-06-16 | Function processing method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1152338A JP3047976B2 (en) | 1989-06-16 | 1989-06-16 | Function processing method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0319032A true JPH0319032A (en) | 1991-01-28 |
| JP3047976B2 JP3047976B2 (en) | 2000-06-05 |
Family
ID=15538356
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1152338A Expired - Fee Related JP3047976B2 (en) | 1989-06-16 | 1989-06-16 | Function processing method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3047976B2 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1040090A (en) * | 1996-07-02 | 1998-02-13 | Internatl Business Mach Corp <Ibm> | Program development supporting system, its method and storage medium for storing program component to be used for program development support |
-
1989
- 1989-06-16 JP JP1152338A patent/JP3047976B2/en not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1040090A (en) * | 1996-07-02 | 1998-02-13 | Internatl Business Mach Corp <Ibm> | Program development supporting system, its method and storage medium for storing program component to be used for program development support |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3047976B2 (en) | 2000-06-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7844948B2 (en) | Maintaining multiple valid concurrent serialized object versions | |
| US7207002B2 (en) | Serialization and preservation of objects | |
| US6766518B1 (en) | Establishing relationships between objects based on object interfaces | |
| KR0136765B1 (en) | Method and device for obtaining object type outflow and object type attribute value | |
| Von Oheimb | Hoare logic for Java in Isabelle/HOL | |
| US6169993B1 (en) | Method, data structure, and computer program product for object state storage | |
| US20060095483A1 (en) | Modified computer architecture with finalization of objects | |
| JPH02272627A (en) | Digital computer system and method of invocation of procedure of the same | |
| Veltri et al. | Formalizing 𝜋-calculus in guarded cubical Agda | |
| JPH09269898A (en) | Method and system for improving execution efficiency of executable file | |
| JP2002508565A (en) | How to translate system calls | |
| US6347318B1 (en) | Method, system, and apparatus to improve performance of tree-based data structures in computer programs | |
| Guttman et al. | The VLISP verified scheme system | |
| Meredith et al. | An executable rewriting logic semantics of K-Scheme | |
| JPH0319032A (en) | Function processing method | |
| US7849470B2 (en) | System and method for extending a programming language to include multiple dissimilar object systems | |
| Setzer | Java as a functional programming language | |
| JP2000122876A (en) | Information processing device | |
| CN115888114A (en) | Game data processing method and device, storage medium, and terminal | |
| US6792600B1 (en) | Method and apparatus for just in time compilation of instructions | |
| Minkowitz et al. | A C++ library for implementing specifications | |
| Curtis | The Scheme of Things | |
| US7627859B2 (en) | Method for configuring non-script language library files to be run as scripts | |
| Zamulin | Algebraic modelling of imperative languages with pointers | |
| Umatani | Lightweight DSL for Describing Extensible Transition Systems |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |