JP2655613B2 - 異種言語手続き混在方式 - Google Patents

異種言語手続き混在方式

Info

Publication number
JP2655613B2
JP2655613B2 JP63301272A JP30127288A JP2655613B2 JP 2655613 B2 JP2655613 B2 JP 2655613B2 JP 63301272 A JP63301272 A JP 63301272A JP 30127288 A JP30127288 A JP 30127288A JP 2655613 B2 JP2655613 B2 JP 2655613B2
Authority
JP
Japan
Prior art keywords
interpreter
procedure
language
stack area
procedure means
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP63301272A
Other languages
English (en)
Other versions
JPH02144723A (ja
Inventor
誠二 内田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
Nippon Electric 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP63301272A priority Critical patent/JP2655613B2/ja
Publication of JPH02144723A publication Critical patent/JPH02144723A/ja
Application granted granted Critical
Publication of JP2655613B2 publication Critical patent/JP2655613B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は電子計算機システムの利用技術、特にメモリ
領域におけるガーベジコレクションに利用される。
本発明は、電子計算機システムの利用技術で、インタ
プリタ系の言語とコンパイラ系の言語とが互いに他の言
語で前述された手続きを呼び出す異種言語手続き混在方
式に関する。
〔概要〕
本発明は、インタプリタ系の言語とコンパイラ系の言
語とが互いに他の言語で記述された手続き手段を呼び出
す異種言語手続き混在方式において、 インタプリタ言語が用いるスタック領域と、コンパイ
ラ系の他言語が用いるスタック領域とを分離して設ける
ことにより、 ガーベジコレクション処理の処理時間を短縮できるよ
うにしたものである。
〔従来の技術〕
従来、LISPを始めとするインタプリタ系の言語と、C
を始めとするコンパイラ系の言語との間での手続き呼び
出しにおいては、インタプリタシステムが、コンパイラ
系の言語で記述された手続きを動的に自己にリンクし、
この手続きを自己の一モジュールとして動作可能とせし
めることが広く行われている。その一例として、インタ
プリタシステムforeign(外部)なる手続き手段を前も
って組み込んでおり、利用者はこの手続き手段を用い
て、コンパイラ系の言語で記述され、コンパイルされた
外部手続き手段をインタプリタの一手続き手段として登
録し、その後この手続き手段をインタプリタ言語で記述
された手続き手段と何ら区別することなく呼び出し可能
としている例がある。
前述の例においては、コンパイラ系の手続き手段が、
インタプリタ系の手続き手段を呼び出すことは認められ
ていない。使用するスタック領域はシステムで一つであ
り、インタプリタ手続き手段、インタプリタ本体、なら
びに他言語手続き手段のいずれもが、このスタック領域
を共有する。
近年、このような他言語手続き呼び出しに関する利用
技術の向上にともない、インタプリタから良び出された
他言語手続き手段がインタプリタ言語で記述された手続
き手段を呼び出すことが可能となってきている。その一
例として、前記例を自然に拡張し、インタプリタ手続き
手段、インタプリタ本体、ならびに他言語手続き手段の
いずれもが同一のスタッタ領域を共有し、かつ他言語手
続き手段がインタプリタ手続き手段を呼び出すことを可
能としているLISP処理系がある。この従来例において、
LISP関数l1がCの関数C1を呼び、C1がLISP関数l2を呼ん
だ場合、スタック領域の先頭付近は第3図に示すような
状態となる。
〔発明が解決しようとする問題点〕
一般に、インタプリタシステムは、実行時に主記憶上
にデータ領域を割り付けながら動作し、主記憶に余裕が
なくなったとき、すでに参照されなくなったデータ領域
を回収し、後の再使用に備えるいわゆるガーベジコレク
ション処理を行う。この処理においては、割付け済みの
各データ領域への参照が存在するか否かを調べる目的
で、スタック領域を走査する。
前述した従来の方式においては、このスタック領域に
他言語手続き手段のためのデータが混在して格納されて
いるため、この走査処理において、これらの格納領域を
読みとばさなければならない。すなわち、ガーベジコレ
クション処理において、スタック領域を走査する際、常
に現在処理しているデータが他言語のためのものである
か否かを確認する必要があり、ガーベジコレクション処
理に多大な処理時間を要する欠点がある。
本発明の目的は、前記の欠点を除去することにより、
ガーベジコレクション処理の処理時間を短縮できる異種
言語手続き混在方式を提供することにある。
〔問題点を解決するための手段〕
本発明は、少なくとも一つのインタプリタ手続き手段
(3a,3b)を含むインタプリタ(3)と、このインタプ
リタに制御され前記インタプリタに動的にリンクされる
他言語手続き手段(4)とを備えた異種言語手続き混在
方式において、前記インタプリタ手続き手段および前記
インタプリタ自身の実行を管理するインタプリタ用スタ
ック領域(5)と、前記異種言語手続き手段の実行を管
理する他言語手続き用スタック領域(6)とを主記憶装
置(1)内の別領域にそれぞれ設け、前記インタプリタ
(3)は、前記インタプリタ手続き手段に係るデータを
前記インタプリタ用スタック領域(5)に記憶し、他言
語手続き手段にかかるデータを前記他言語手続き用スタ
ック領域(6)に記憶する手段を含むことを特徴とす
る。
〔作用〕
インタプリタ用スタック手段は、インタプリタ手続き
手段およびインタプリタ自身の実行を管理するデータを
格納し、前記インタプリタ手続き手段および前記インタ
プリタ自身はその格納されたデータに従って処理を実行
する。同様に、他言語手続き用スタック手段は、前記イ
ンタプリタに動的にリンクされた、例えばコンパイラ言
語手続き手段からなる異種言語手続き手段の実行を管理
するデータを格納し、前記他言語手続き手段はその格納
されたデータに従って処理を実行する。
従って、前記インタプリタ用スタック手段にはインタ
プリタ言語以外の他言語が格納されることはないので、
ガーベジコレクション処理において他言語を読みとばす
ための走査は必要でなくなり、走査回数を軽減し、処理
時間を短縮することが可能となる。
〔実施例〕
以下、本発明の実施例について図面を参照して説明す
る。
第1図は本発明の一実施例を示すブロック構成図であ
る。
本実施例は、二つのインタプリタ手続き手段3aおよび
3bを含むインタプリタ2と、このインタプリタ2に制御
され、インタプリタ2に動的にリンクされたコンパイラ
言語手続き手段からなる他言語手続き手段4とを備えた
異種言語手続き混在方式において、 インタプリタ手続き手段3aおよび3bならびにインタプ
リタ2自身の実行を管理するインタプリタ用スタック手
段としてのインタプリタ用スタック領域5と、異種言語
手続き手段4の実行を管理する他言語手続き用スタック
手段としての他言語手続き用スタック領域6とを備えて
いる。そしてこれらは主記憶装置1内に構成される。
本発明の特徴は、第1図において、他言語手続き用ス
タック領域6を設けたことにある。
次に、本実施例の動作について第2図に示す流れ図を
参照して説明する。第2図は、インタプリタ手続き手段
3a中に他言語手続き手段4への呼出し手段が含まれてお
り、他言語手続き手段4中にはインタプリタ手続き手段
3bへの呼出し手段が含まれており、インタプリタ手続き
手段3bが処理実行中に、ガーベジコレクション処理が実
行される場合を示す。
インタプリタ2は、インタプリタ手続き手段3aを実行
する際、その引数をインタプリタ用スタック領域5に格
納し、インタプリタ手続き手段3aに制御を渡す(ステッ
プS1)。インタプリタ手続き手段3aは、その中に他言語
手続き手段4への呼び出し手段が含まれている場合、ス
タックポインタを他言語手続き用スタック領域6に移
し、この他言語手続き用スタック領域6に他言語手続き
手段4への引数を格納し、この他言語手続き手段4に制
御を渡す(ステップS2)。
他言語手続き手段4は、他言語手続き用スタック領域
6をスタックとして使用し処理を行う。その中にインタ
プリタ手続き手段3bへの呼び出し手段が含まれている場
合、他言語手続き手段4は他言語手続き用スタック領域
6にインタプリタ手続き手段3bへの引数を格納し、イン
タプリタ手続き手段3bに制御を渡す(ステップS3)。
インタプリタ手続き手段3bは、呼び出されたときのス
タックポインタが他言語手続き用スタック領域6を指示
していることから自手段が他言語手続き4から呼び出さ
れたことを知り、この他言語手続き用スタック領域6に
格納された引数をもとに自手段に対する引数を得る。つ
いでスタックポインタをインタプリタ用スタック領域5
に移し、処理を実行する。処理途中にガーベジコレクシ
ョン処理が発生した場合、スタックポインタの指示する
インタプリタ用スタック領域5には他言語手続き手段4
に起因するデータは格納されていないため、他言語手続
き手段4に起因する確認処理は行わない。インタプリタ
手続き手段3bは、その処理完了時、スタックポインタを
他言語手続き用スタック領域6に戻し、他言語手続き手
段4に制御を戻す(ステップS4)。
他言語手続き手段4は、その実行が終了すると、制御
をインタプリタ手続き手段3aに戻す(ステップS5)。
インタプリタ手続き手段3aは、スタックポインタをイ
ンタプリタ用スタック領域5に戻す(ステップS6)。
〔発明の効果〕
以上説明したように、本発明は、インタプリタ手続き
手段の実行のためのスタック領域と、他言語手続き手段
の実行のためのスタック領域とを分離することにより、
ガーベジコレクション処理におけるスタック領域の走査
処理を軽減できる効果がある。インタプリタシステムの
実行において、ガーベジコレクション処理に要する時間
は、一般にインタプリタ実行時間の1割ないし2割にお
よぶ。本発明によれば、ガーベジコレクション処理が高
速に行えるようなスタックの割り当てを行うことがで
き、インタプリタシステムの総合的な利用効率を高める
ことができ、その効果は大である。
【図面の簡単な説明】
第1図は本発明の一実施例を示すブロック構成図。 第2図はその動作を示す流れ図。 第3図は従来例におけるスタック領域の使用状態を示す
説明図。 1……主記憶装置、2……インタプリタ、3a、3b……イ
ンタプリタ手続き手段、4……他言語手続き手段、5…
…インタプリタ用スタック領域、6……他言語手続き用
スタック領域、S1〜S6……ステップ。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】少なくとも一つのインタプリタ手続き手段
    (3a,3b)を含むインタプリタ(3)と、このインタプ
    リタに制御され前記インタプリタに動的にリンクされる
    他言語手続き手段(4)とを備えた異種言語手続き混在
    方式において、 前記インタプリタ手続き手段および前記インタプリタ自
    身の実行を管理するインタプリタ用スタック領域(5)
    と、前記異種言語手続き手段の実行を管理する他言語手
    続き用スタック領域(6)とを記憶装置(1)内の別領
    域にそれぞれ設け、 前記インタプリタ(3)は、前記インタプリタ手続き手
    段に係るデータを前記インタプリタ用スタック領域
    (5)に記憶し、他言語手続き手段にかかるデータを前
    記他言語手続き用スタック領域(6)に記憶する手段を
    含む ことを特徴とする異種言語手続き混在方式。
JP63301272A 1988-11-28 1988-11-28 異種言語手続き混在方式 Expired - Lifetime JP2655613B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63301272A JP2655613B2 (ja) 1988-11-28 1988-11-28 異種言語手続き混在方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63301272A JP2655613B2 (ja) 1988-11-28 1988-11-28 異種言語手続き混在方式

Publications (2)

Publication Number Publication Date
JPH02144723A JPH02144723A (ja) 1990-06-04
JP2655613B2 true JP2655613B2 (ja) 1997-09-24

Family

ID=17894823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63301272A Expired - Lifetime JP2655613B2 (ja) 1988-11-28 1988-11-28 異種言語手続き混在方式

Country Status (1)

Country Link
JP (1) JP2655613B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6339037A (ja) * 1986-08-04 1988-02-19 Fujitsu Ltd プログラム呼出し処理方式

Also Published As

Publication number Publication date
JPH02144723A (ja) 1990-06-04

Similar Documents

Publication Publication Date Title
US4916608A (en) Provision of virtual storage resources to an operating system control program
EP0358620A2 (en) Callback facilities for interpretive processors
EP0709777A2 (en) Method of and apparatus for debugging multitask programs
JPH09502558A (ja) マルチタスクオペレーティングシステムにおける共用コード及びデータを保護するための方法およびシステム
JP2655613B2 (ja) 異種言語手続き混在方式
JP3030490B2 (ja) 同期制御方法及び装置
EP0578496B1 (en) Job execution method in multi-CPU system
JPS6232498B2 (ja)
US5765148A (en) Database processing apparatus and database processing method for variable length objects, and computer-readable memory medium for storing database processing program
EP0408200A2 (en) Using shared resident functions in a computer system
JP2560491B2 (ja) 並列化手続き実行方式
JPS62216042A (ja) デ−タ領域のメモリ割付方式
JPS5960641A (ja) 呼出し関係解析方法
JPH04322327A (ja) サブルーチン共有方法
JPH01147646A (ja) データ処理システムにおける情報共有処理方式
JPH0640312B2 (ja) プログラムインタフエ−ス方式
JPS63121929A (ja) スタツク処理方式
JPH02115958A (ja) データ転送制御方式
JPS6334638A (ja) 本体系と共通ル−チンとのリンク方式
JPH0566948A (ja) パラメータ受け渡し方式
JPS62290945A (ja) ソフトウエアデバツグ方式
JPS63111531A (ja) システム生成変更方式
JPH0650470B2 (ja) 動的ディスパッチング方式
JPH06149811A (ja) 電子計算機システム
JPS60198661A (ja) 入出力制御方式