JPS608944A - 関数型マシンの終端再帰呼出し制御方式 - Google Patents
関数型マシンの終端再帰呼出し制御方式Info
- Publication number
- JPS608944A JPS608944A JP58116525A JP11652583A JPS608944A JP S608944 A JPS608944 A JP S608944A JP 58116525 A JP58116525 A JP 58116525A JP 11652583 A JP11652583 A JP 11652583A JP S608944 A JPS608944 A JP S608944A
- Authority
- JP
- Japan
- Prior art keywords
- function
- terminal
- frame
- recursive call
- micro
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の技術分野〕
本発明は、機械命令とマイクロ命令をもつ関数型言語マ
シンにおいて、関数を呼出しくCa1l)、復帰(Re
turn )する時のプログラムカウンタ等の制御状態
の受渡し方式に関し、特に復帰後に処理をもたない関数
からの再帰呼出し、すなわち終端再帰呼出しの制御方式
に関する。
シンにおいて、関数を呼出しくCa1l)、復帰(Re
turn )する時のプログラムカウンタ等の制御状態
の受渡し方式に関し、特に復帰後に処理をもたない関数
からの再帰呼出し、すなわち終端再帰呼出しの制御方式
に関する。
はじめに、本発明の対象である関数型言語マシンについ
て概述する。関数型言語マシンでは、プログラムは全て
関数であり、処理は、必要な関数を順次呼出しながら、
実行する形をとる。これらの関数は、機械命令列ででき
ているサブルーチン関数(以下、5UBR関数と呼ぶ)
とマイクロ命令列でできているマイクロルーチン関数(
以下、MICRO関数と呼ぶ)とに分類される。なお、
機械命令は、マイクロ命令に対応させる意味で1マクロ
命令1と呼ばれることもある。
て概述する。関数型言語マシンでは、プログラムは全て
関数であり、処理は、必要な関数を順次呼出しながら、
実行する形をとる。これらの関数は、機械命令列ででき
ているサブルーチン関数(以下、5UBR関数と呼ぶ)
とマイクロ命令列でできているマイクロルーチン関数(
以下、MICRO関数と呼ぶ)とに分類される。なお、
機械命令は、マイクロ命令に対応させる意味で1マクロ
命令1と呼ばれることもある。
一般に、5tJBR関数は、ユーザが高級言語で書いた
プログラムを機械語にコンパイルしたものでおり、MI
CRO関数は、マシンに標準的に用意されている組込関
数である。高級言語自身は、コンパイルされる以外に、
関数型言語専用マシンにおいて、マイクロプログラムで
できた高速のインタプリタにより直接実行されることも
ある。このインタプリタ自身も上記の分類では、MIC
RO関数に属する。
プログラムを機械語にコンパイルしたものでおり、MI
CRO関数は、マシンに標準的に用意されている組込関
数である。高級言語自身は、コンパイルされる以外に、
関数型言語専用マシンにおいて、マイクロプログラムで
できた高速のインタプリタにより直接実行されることも
ある。このインタプリタ自身も上記の分類では、MIC
RO関数に属する。
このようなマシンにおいて、ユーザのプログラムを実行
する場合、制御は5tJBR関数とMICRO関数の間
を行ったり来たりすることになる。
する場合、制御は5tJBR関数とMICRO関数の間
を行ったり来たりすることになる。
第1図は、上述した関数型言語プログラムの実行を概念
的に示したものである。fO乃至fsは関数、Ca1l
は呼出し、Ratqurnは復帰を表わしている。ここ
で、たとえば関数fo 、 flはMICRO関数、f
z 、 fsは5UBR関数であることができる。
的に示したものである。fO乃至fsは関数、Ca1l
は呼出し、Ratqurnは復帰を表わしている。ここ
で、たとえば関数fo 、 flはMICRO関数、f
z 、 fsは5UBR関数であることができる。
ところで、マイクロプログラムの実行制御は、基本的に
マイクロプログラムカウンタ(以下MPCと略す)に従
い、制御状態は基本的にはこのMPCによって規定され
る。
マイクロプログラムカウンタ(以下MPCと略す)に従
い、制御状態は基本的にはこのMPCによって規定され
る。
一方、機械命令プログラムの実行制御は、基本的に機械
命令のプログラムカウンタ(以下PCと略す)に従がい
、制御状態は基本的にはこのPCによって規定される。
命令のプログラムカウンタ(以下PCと略す)に従がい
、制御状態は基本的にはこのPCによって規定される。
更に、機械命令自身は完全にハードウェアで実現される
マシンもあるが、上記のようなマシンでは、一般にマイ
クロルーチン(マイクロプログラム)として実現されて
いる。
マシンもあるが、上記のようなマシンでは、一般にマイ
クロルーチン(マイクロプログラム)として実現されて
いる。
関数型言語を実行する場合には、通常、各関数ごとにス
タックの上にフレームと呼ばれる制御ブロックをつくり
、そのフレームに関数名や戻り番地や上位フレームへの
リンク等を格納する。関数の処理が全て終了すると、そ
のフレームはおりたー・たまれる。
タックの上にフレームと呼ばれる制御ブロックをつくり
、そのフレームに関数名や戻り番地や上位フレームへの
リンク等を格納する。関数の処理が全て終了すると、そ
のフレームはおりたー・たまれる。
第2図は、その概念図であり、(α)に例示された/(
1、fl、 /2からなる関数型プログラムを実行した
ときに、(b)に示すように、呼出しく(])、■)ご
とに新しいスタックの作成が行なわれ、そして復帰(■
、■)ごとに、スタックのおりたたみが行なわれる。
1、fl、 /2からなる関数型プログラムを実行した
ときに、(b)に示すように、呼出しく(])、■)ご
とに新しいスタックの作成が行なわれ、そして復帰(■
、■)ごとに、スタックのおりたたみが行なわれる。
呼出されたMICRO関数では、上記の戻り番地として
は、自分の呼出し元関数(Ca1ler )のMPC値
をフレームに格納していればよい。それだけで、自分の
仕事力を済めば、呼出し元関数に制御を返すことができ
る。呼出し元関数が5IJBR関数であっても、その時
のPCをフレームへ格納する必要はない。
は、自分の呼出し元関数(Ca1ler )のMPC値
をフレームに格納していればよい。それだけで、自分の
仕事力を済めば、呼出し元関数に制御を返すことができ
る。呼出し元関数が5IJBR関数であっても、その時
のPCをフレームへ格納する必要はない。
なぜならば、MICRO関数の実行においては、PCの
値を変更することがないからである。
値を変更することがないからである。
一方、呼出された5UBR関数では、フレームに格納す
る戻り番地として、MPCとPCの両方の値が必要であ
る。PCの格納については、5UBR関数がPCを動か
して、すなわちPCにしたがって実行されることから、
当然に必要である。
る戻り番地として、MPCとPCの両方の値が必要であ
る。PCの格納については、5UBR関数がPCを動か
して、すなわちPCにしたがって実行されることから、
当然に必要である。
5UBR関数の間でのみ制御が授受されている場合には
、呼出し元5UBR関数へ復帰する際に、先に格納して
置いたPC値から機械命令の実行が開始されることから
、MPCを戻り番地としてフレームへ格納する必要はな
いが、5IJBR関数の呼出し元が■−CRO関数であ
る場合には、復帰後の手続きを示すMPC値を、スタッ
クフレームへ戻り番地として格納しておく必要がある。
、呼出し元5UBR関数へ復帰する際に、先に格納して
置いたPC値から機械命令の実行が開始されることから
、MPCを戻り番地としてフレームへ格納する必要はな
いが、5IJBR関数の呼出し元が■−CRO関数であ
る場合には、復帰後の手続きを示すMPC値を、スタッ
クフレームへ戻り番地として格納しておく必要がある。
しかし、呼出された5UBR関数には、呼出し元関数が
5IJBR関数であるかMICRO関数であるかを知る
ことができないから、常にMPCとPCとを戻り番地と
して格納する必要がある。
5IJBR関数であるかMICRO関数であるかを知る
ことができないから、常にMPCとPCとを戻り番地と
して格納する必要がある。
このようにして、MICRO関数のフレームは、たとえ
ば第3図に示すような構成をもち、5UBR関数のフレ
ームは第4図に示すような構成をもつ。第3図のMIC
RO関数のフレームは、1の関数名、2のMPC8(M
PC5ave域)、3のFPS (F’rsyyu P
oss−tgr 5av−域)、および4の実引数から
なり、他方、5TJBR関iのフレームは、 MICR
O関数のフレームに5のPC8(Programg C
owntar 5av−域)を加えたものである。なお
、 FPはフレームポインタ、 STPはスタックポイ
ンタを表わしている。
ば第3図に示すような構成をもち、5UBR関数のフレ
ームは第4図に示すような構成をもつ。第3図のMIC
RO関数のフレームは、1の関数名、2のMPC8(M
PC5ave域)、3のFPS (F’rsyyu P
oss−tgr 5av−域)、および4の実引数から
なり、他方、5TJBR関iのフレームは、 MICR
O関数のフレームに5のPC8(Programg C
owntar 5av−域)を加えたものである。なお
、 FPはフレームポインタ、 STPはスタックポイ
ンタを表わしている。
ところで、MICRO関数が呼出し元へ復帰する時には
そのフレームをおりたたみ、すなわち7レームポインタ
FPSが指示するフレームへ移り、 MPC8域の値を
MPCへ戻してそこへ制御を返す。これにより、呼出し
元関数の後続手続きが再開される。
そのフレームをおりたたみ、すなわち7レームポインタ
FPSが指示するフレームへ移り、 MPC8域の値を
MPCへ戻してそこへ制御を返す。これにより、呼出し
元関数の後続手続きが再開される。
これに対し、5UBR関数が呼出し元関数へ復帰する時
には、フレームをおりたたみ、PC8域の値をPCへ戻
し、更にMPC8域の値をMPCへ戻してそこへ制御を
返す。ここで呼出し元が5TJBR関数であった場合に
は、MPC8値は、PC値が示す機械命令をフェッチし
て実行を始める手順を指す。しかし、呼出し元がMIC
RO関数である場合には、MPC8値は、一般に呼出し
元関数により定まる後続手続きを指している。
には、フレームをおりたたみ、PC8域の値をPCへ戻
し、更にMPC8域の値をMPCへ戻してそこへ制御を
返す。ここで呼出し元が5TJBR関数であった場合に
は、MPC8値は、PC値が示す機械命令をフェッチし
て実行を始める手順を指す。しかし、呼出し元がMIC
RO関数である場合には、MPC8値は、一般に呼出し
元関数により定まる後続手続きを指している。
次に、本発明が特にかかわっている終端再帰呼出しにつ
いて説明する。
いて説明する。
関数型言語においては、前述したように、各関数は他の
関数を呼出しながら仕事を進めていくが、最後の関数呼
出しの場合には、復帰後に処理が行なわれないため、P
CやMPCの待避は不要であるから、呼出すべき関数の
フレームを作る必要はない。
関数を呼出しながら仕事を進めていくが、最後の関数呼
出しの場合には、復帰後に処理が行なわれないため、P
CやMPCの待避は不要であるから、呼出すべき関数の
フレームを作る必要はない。
このため、現在の呼出し元関数のフレームを流用して関
数呼出しを行なう。これを、一般に終端再帰呼出しく
Ta1l recurstox catl )と言う。
数呼出しを行なう。これを、一般に終端再帰呼出しく
Ta1l recurstox catl )と言う。
これ罠より、フレームの作成、フレームのおりたたみの
操作が省略でき、実行速度が向上する。
操作が省略でき、実行速度が向上する。
しかし、第3図に示したように、MICRO関数のフレ
ームにはPC8域が設けられていないので、MI−CR
O関数を呼出したときに、呼出されたMICRO関数は
PCの受渡しを行なわず、また復帰時にPC8域をPC
へ戻す操作も行なわない。したがってこのような場合に
は5tJBR関数からMICRO関数を終端再帰呼出し
すると、5UBR関数に制御を戻すことができないとい
う問題があった。つまり、5TJBR関数のフレームに
は、第4図に示したように、そのPC8域にPCの戻り
番地が格納されているが、5UBR関数フレームを流用
してMICRO関数を呼出すと、呼出されたMICRO
関数は、流用された5tJBR関数フレームを第3図に
示したMICRO関数フレームと解釈して、復帰時にP
C8をPCへ戻さないので、呼出し元5tJBR関数へ
制御が返らないことになる。
ームにはPC8域が設けられていないので、MI−CR
O関数を呼出したときに、呼出されたMICRO関数は
PCの受渡しを行なわず、また復帰時にPC8域をPC
へ戻す操作も行なわない。したがってこのような場合に
は5tJBR関数からMICRO関数を終端再帰呼出し
すると、5UBR関数に制御を戻すことができないとい
う問題があった。つまり、5TJBR関数のフレームに
は、第4図に示したように、そのPC8域にPCの戻り
番地が格納されているが、5UBR関数フレームを流用
してMICRO関数を呼出すと、呼出されたMICRO
関数は、流用された5tJBR関数フレームを第3図に
示したMICRO関数フレームと解釈して、復帰時にP
C8をPCへ戻さないので、呼出し元5tJBR関数へ
制御が返らないことになる。
この問題は、MICRO関数にもPCの受渡しをさせる
ようにすれば一つの解決方法となるが、その反面、通常
の呼出しにおけるMICRO関数の処理に無駄な手順が
入り、処理が遅くなるという欠点があった。
ようにすれば一つの解決方法となるが、その反面、通常
の呼出しにおけるMICRO関数の処理に無駄な手順が
入り、処理が遅くなるという欠点があった。
本発明の目的は、上記した従来方式の問題を解決するこ
とにあり、そのため、MIC[)関数は実行時にPCを
操作することがないことに着目し、5U−BR関数が終
端再帰呼出しのため自己のフレームを流用してMICR
O関数を呼出したとき、呼出し元弼−BR関数の戻りP
C値をPC8からPCへ設定、すなわち実質的に待避し
て置くものである。これにより、呼出されたMICRO
関数は、従来方式のように流用スタックのPC8域を管
理できなくても、呼出し元5tJBR関数へ復帰する際
、既に設定されているPCの値を用いて制御を渡すこと
が可能となる。
とにあり、そのため、MIC[)関数は実行時にPCを
操作することがないことに着目し、5U−BR関数が終
端再帰呼出しのため自己のフレームを流用してMICR
O関数を呼出したとき、呼出し元弼−BR関数の戻りP
C値をPC8からPCへ設定、すなわち実質的に待避し
て置くものである。これにより、呼出されたMICRO
関数は、従来方式のように流用スタックのPC8域を管
理できなくても、呼出し元5tJBR関数へ復帰する際
、既に設定されているPCの値を用いて制御を渡すこと
が可能となる。
本発明の構成は、それにより、機械命令とマイクロ命令
の実行機能をもつ関数型言語マシンにおいて、機械語で
記述されたサブルーチン関数からマイクロ命令で記述さ
れたマイクロルーチン関数を呼出す場合には、機械命令
の戻り番地を機械命令のプログラムカウンタに設定して
置き、一方マイクロルーチン関数がサブルーチン関数を
呼出す場合には、プログラムカウンタの値をスタックの
所定域へ待避することにより、マイクロルーチン関数が
機械命令のプログラムカウンタの管理をすることなしに
、サブルーチン関数とマイクロルーチン関数との間で、
互いに終端再帰呼出しを実行させることを特徴としてい
る。
の実行機能をもつ関数型言語マシンにおいて、機械語で
記述されたサブルーチン関数からマイクロ命令で記述さ
れたマイクロルーチン関数を呼出す場合には、機械命令
の戻り番地を機械命令のプログラムカウンタに設定して
置き、一方マイクロルーチン関数がサブルーチン関数を
呼出す場合には、プログラムカウンタの値をスタックの
所定域へ待避することにより、マイクロルーチン関数が
機械命令のプログラムカウンタの管理をすることなしに
、サブルーチン関数とマイクロルーチン関数との間で、
互いに終端再帰呼出しを実行させることを特徴としてい
る。
以下に、本発明の詳細を実施例にしたがって説明する。
本発明方式の原理を用いた場合、5UBR関数およびM
ICRO関数間での呼出し制御は、次のように行なうこ
とができる。
ICRO関数間での呼出し制御は、次のように行なうこ
とができる。
基本的には、5tJBR関数が制御をもりている時には
、その戻りPC番地はスタックフレームのPC8域へ格
納しておくが、MICRO関数が制御をもっている時に
は、戻りPC番地をPCに設定して置くようにする。つ
まり、5TJBR関数がMICRO関数を呼出す時には
、戻りPC番地をPCへ放置してMICRO関数の起動
をかける。さらに詳しく言うと、終端再帰呼出しの時に
は、自フレームのPC’S 域をPCへ移し、非終端再
帰呼出しの時には、CM几命令の次のPCアドレスをそ
のままPCへ置いておくようにする。
、その戻りPC番地はスタックフレームのPC8域へ格
納しておくが、MICRO関数が制御をもっている時に
は、戻りPC番地をPCに設定して置くようにする。つ
まり、5TJBR関数がMICRO関数を呼出す時には
、戻りPC番地をPCへ放置してMICRO関数の起動
をかける。さらに詳しく言うと、終端再帰呼出しの時に
は、自フレームのPC’S 域をPCへ移し、非終端再
帰呼出しの時には、CM几命令の次のPCアドレスをそ
のままPCへ置いておくようにする。
第5図(α)は前者の1例を示し、5tJBR関数f1
が■−CRO関数f2を終端再帰呼出したとき、PC8
の値をPCに設定して量くことにより、f2からの復帰
時にPCの値が示すfoへ制御を渡すことができる。
が■−CRO関数f2を終端再帰呼出したとき、PC8
の値をPCに設定して量くことにより、f2からの復帰
時にPCの値が示すfoへ制御を渡すことができる。
第5図(b)は後者の1例を示し、5TJBR関数f1
が■−CRO関数f2関数約2再帰呼出した場合、現P
C値の次の番地を戻り番地としてPCに設定して置けば
、f2からの復帰時に、PCが示すflの戻り番地から
flを再開することができる。
が■−CRO関数f2関数約2再帰呼出した場合、現P
C値の次の番地を戻り番地としてPCに設定して置けば
、f2からの復帰時に、PCが示すflの戻り番地から
flを再開することができる。
一方、MICRO関数が5UBR関数を呼出す時には、
PCの値をスタックのPC8域へ格納して、5UBR関
数の起動をかける。詳しく言うと、終端再帰呼出しの時
には、第5図(6)に示すように自フレームのPC8域
(MICRO関数だから空いている。)へ、PCの値を
格納し、非終端再帰呼出しの時には、第5図(d)に示
すように呼出すべき5UBR関数のために作ったフレー
ムのPC8域へPCの値を格納する。
PCの値をスタックのPC8域へ格納して、5UBR関
数の起動をかける。詳しく言うと、終端再帰呼出しの時
には、第5図(6)に示すように自フレームのPC8域
(MICRO関数だから空いている。)へ、PCの値を
格納し、非終端再帰呼出しの時には、第5図(d)に示
すように呼出すべき5UBR関数のために作ったフレー
ムのPC8域へPCの値を格納する。
以上のことから、関数呼出しの際のPCの受渡し方式は
以下のようになる。なお、◎印は、5UBR関数とMI
CRO関数との間で制御が移動するものである。
以下のようになる。なお、◎印は、5UBR関数とMI
CRO関数との間で制御が移動するものである。
また、前述したように、終端再帰呼出しのときは呼出し
元フレマ′ムを流用し、非終端再帰呼出しのときには新
フレームを作成するものとする。
元フレマ′ムを流用し、非終端再帰呼出しのときには新
フレームを作成するものとする。
(1) 呼出し元が5(JBR関数の場合◎ MICR
O関数を終端再帰呼出しするとき、〔自フレームのPC
8域→PCIしてから呼出し ・ 5TJBR関数を終端再帰呼出しするとき、〔自フ
レームのPC8域 そのまま〕で呼出し◎ MICRO
関数を非終端再帰呼出しするとき〔PCはそのまま、か
つMICRO関数フレームのPC8域は空〕で呼出し ・ 5tJBR関数を非終端再帰呼出しするとき(PC
を呼出される5TJBR関数フレームのPC8域へ格納
〕して呼出し く2)呼出し元がMICRO関数の場合・ MICRO
関数を終端再帰呼出しするとき〔自フレームのPC8域
は空〕で呼出し◎ 5UBR関数を終端再帰呼出しする
とき[PC−+PC8域]してから呼出し ・ MICRO関数を非終端再帰呼出しするとき〔呼出
されるMICRO関数フレームのPcs域は空で呼出し ◎ 5tJBR関数を非終端再帰呼出しするとき〔PC
を呼出される5UBR関数フレームのPC8域へ格納〕
してから呼出し 第6図は、以上のPC受渡し方式を適用した関数呼出し
制御の例であり、フレームのPC8域とPCの設定規則
を示している。図中、実線の矢印は、終端再帰呼出しの
場合の制御データの流れ、そして点線の矢印は、非終端
再帰呼出しの場合の制御データの流れを表わしている。
O関数を終端再帰呼出しするとき、〔自フレームのPC
8域→PCIしてから呼出し ・ 5TJBR関数を終端再帰呼出しするとき、〔自フ
レームのPC8域 そのまま〕で呼出し◎ MICRO
関数を非終端再帰呼出しするとき〔PCはそのまま、か
つMICRO関数フレームのPC8域は空〕で呼出し ・ 5tJBR関数を非終端再帰呼出しするとき(PC
を呼出される5TJBR関数フレームのPC8域へ格納
〕して呼出し く2)呼出し元がMICRO関数の場合・ MICRO
関数を終端再帰呼出しするとき〔自フレームのPC8域
は空〕で呼出し◎ 5UBR関数を終端再帰呼出しする
とき[PC−+PC8域]してから呼出し ・ MICRO関数を非終端再帰呼出しするとき〔呼出
されるMICRO関数フレームのPcs域は空で呼出し ◎ 5tJBR関数を非終端再帰呼出しするとき〔PC
を呼出される5UBR関数フレームのPC8域へ格納〕
してから呼出し 第6図は、以上のPC受渡し方式を適用した関数呼出し
制御の例であり、フレームのPC8域とPCの設定規則
を示している。図中、実線の矢印は、終端再帰呼出しの
場合の制御データの流れ、そして点線の矢印は、非終端
再帰呼出しの場合の制御データの流れを表わしている。
なお、本図におけるように、5UBR関数を呼出すMI
C’RO関数は特定の関数(インタプリタ関数)だけで
ある。
C’RO関数は特定の関数(インタプリタ関数)だけで
ある。
以上のように、PC戻り番地を受渡すことにより、MI
CRO関数側がスタックフレームにPCを格納したり、
PCへ戻したりすることなく、5tJBR関数トMIC
RO関数の間で互いに、終端再帰呼出しすることが可能
にな・す、関数型言語の処理効率を高めることかできる
。
CRO関数側がスタックフレームにPCを格納したり、
PCへ戻したりすることなく、5tJBR関数トMIC
RO関数の間で互いに、終端再帰呼出しすることが可能
にな・す、関数型言語の処理効率を高めることかできる
。
第1図は関数型言語プログラムの概念図、第2図(a)
、 (6)はフレームの作成およびおりたたみの説明
図、第3図はMICRO関数フレームの構成図、第4図
は5UBR関数フレームの構成図、第5図(IL)乃至
(d)は本発明方式の原理説明図、第6図は制御データ
受渡しの実施例説明図である。 図中、fo 、 fl、 f2 、 fs &’!、関
数1ft語ノ関数、2はMPC8(マイクロプログラム
・カウンタ・セーブ)域、3はFPS (フレーム・ポ
インタ・セーブ)域、5はPC8(プログラムΦカウン
タeセーブ)域、FPはフレーム・ポインタ、STPは
スタック・ポインタを表わす。 特許出願人 富士通株式会社 代理人弁理士 長谷用文廣(外1名) :) 9 囚 図 − 一 N 二 す ヤ 257− ■打 霞
、 (6)はフレームの作成およびおりたたみの説明
図、第3図はMICRO関数フレームの構成図、第4図
は5UBR関数フレームの構成図、第5図(IL)乃至
(d)は本発明方式の原理説明図、第6図は制御データ
受渡しの実施例説明図である。 図中、fo 、 fl、 f2 、 fs &’!、関
数1ft語ノ関数、2はMPC8(マイクロプログラム
・カウンタ・セーブ)域、3はFPS (フレーム・ポ
インタ・セーブ)域、5はPC8(プログラムΦカウン
タeセーブ)域、FPはフレーム・ポインタ、STPは
スタック・ポインタを表わす。 特許出願人 富士通株式会社 代理人弁理士 長谷用文廣(外1名) :) 9 囚 図 − 一 N 二 す ヤ 257− ■打 霞
Claims (1)
- 機械命令とマイクロ命令の実行機能をもつ関数型言語マ
シンにおいて、機械語で記述されたサブルーチン関数か
らマイクロ命令で記述されたマイクロルーチン関数を呼
出す場合には、機械命令の戻り番地を機械命令のプログ
ラムカウンタに設定して置き、マイクロルーチン関数が
サブルーチン関数を呼出す場合には、マイクロプログラ
ムカウンタノ値ヲスタックの所定域へ待避することによ
り、マイクロト−チン関数が・機械命令のプログラムカ
ウンタの管理をすることなしに、サブルーチン関数とマ
イクロルーチン関数との間で、互いに終端再帰呼出しを
実行させることを特徴とする終端再帰呼出し制御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58116525A JPS608944A (ja) | 1983-06-28 | 1983-06-28 | 関数型マシンの終端再帰呼出し制御方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58116525A JPS608944A (ja) | 1983-06-28 | 1983-06-28 | 関数型マシンの終端再帰呼出し制御方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS608944A true JPS608944A (ja) | 1985-01-17 |
Family
ID=14689282
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58116525A Pending JPS608944A (ja) | 1983-06-28 | 1983-06-28 | 関数型マシンの終端再帰呼出し制御方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS608944A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2002077802A1 (en) * | 2001-03-26 | 2002-10-03 | Kansai Technology Licensing Organization Co.,Ltd. | Function executing method, function executing device, computer program and recording medium |
-
1983
- 1983-06-28 JP JP58116525A patent/JPS608944A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2002077802A1 (en) * | 2001-03-26 | 2002-10-03 | Kansai Technology Licensing Organization Co.,Ltd. | Function executing method, function executing device, computer program and recording medium |
| US7130972B2 (en) | 2001-03-26 | 2006-10-31 | Kansai Technology Licensing Organization Co., Ltd | Function execution method, function execution apparatus, computer program and recorded medium |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2520543B2 (ja) | プログラムの実行を管理する方法及びシステム | |
| US8635612B2 (en) | Systems and methods for hypervisor discovery and utilization | |
| JPH04245543A (ja) | サブプログラム呼び出しを実行する方法および装置と コンパイラ装置 | |
| JP2001516922A (ja) | ハードウェア補助コンテキスト切換え機能を備えたデータ処理装置 | |
| JPH07225693A (ja) | 異なるアドレス空間にわたってスレッド事象を処理する方法 | |
| JP2011501323A (ja) | ルーチン内のスレッドを切り替える方法 | |
| JPS608944A (ja) | 関数型マシンの終端再帰呼出し制御方式 | |
| US5388263A (en) | Procedure state descriptor system for digital data processors | |
| JPH03250223A (ja) | 仮想計算機のメモリクリア処理方式 | |
| JP3120434B2 (ja) | プログラム動作解析方法 | |
| JPH02236646A (ja) | プログラム性能測定方式 | |
| JPS59146341A (ja) | Osのマイクロプログラム制御方式 | |
| JP2795676B2 (ja) | プログラムトレース装置 | |
| JPS5848154A (ja) | プログラム1ステツプ制御方式 | |
| JPH01222329A (ja) | 条件分岐命令を含むプログラムの実行方式 | |
| JPH05241889A (ja) | 機械語命令のステップ実行方式 | |
| JPH0816431A (ja) | 利用者プログラムのデバッグ処理システム | |
| JP2817473B2 (ja) | デバッグシステム | |
| JP2822728B2 (ja) | コンピュータシステム | |
| JPH08320809A (ja) | 外乱プロセス排除方式 | |
| JPS6349902A (ja) | プログラマブルコントロ−ラの制御方法 | |
| JPH04175835A (ja) | オペレーティングシステムのデバグ方式 | |
| JPH0635713A (ja) | 論理型言語と他言語の相互呼び出し方式 | |
| JPH03136131A (ja) | システムプログラム階層分離作成方式 | |
| CN113495760A (zh) | 一种实现在mips体系快速中断响应的系统 |