JPS593643A - 関数型マシンの実行制御方式 - Google Patents

関数型マシンの実行制御方式

Info

Publication number
JPS593643A
JPS593643A JP57113303A JP11330382A JPS593643A JP S593643 A JPS593643 A JP S593643A JP 57113303 A JP57113303 A JP 57113303A JP 11330382 A JP11330382 A JP 11330382A JP S593643 A JPS593643 A JP S593643A
Authority
JP
Japan
Prior art keywords
interpreter
mode
exception
function
user
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
Application number
JP57113303A
Other languages
English (en)
Other versions
JPH0157375B2 (ja
Inventor
Akira Hattori
彰 服部
Hiroshi Hayashi
弘 林
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP57113303A priority Critical patent/JPS593643A/ja
Publication of JPS593643A publication Critical patent/JPS593643A/ja
Publication of JPH0157375B2 publication Critical patent/JPH0157375B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (1)発明の技術分野 本発明は関数型マシンの実行制御方式、特に例えばLi
5戸 などの関数型言語を処理するマシンにおいて、ユ
ーザが指示する毎に関数を1個ずつ評価してその情況を
出力するような場合のステップ・モードと、連続的に実
行する通常モードとの切替えを簡易に行うことができる
ようにすると共に。
通常モード時における効率低下を防止した関数型マシン
の実行制御方式に関するものである。
(2)  技術の背景 例えば、リスト処理に用いられるLi5pなどの関数型
言語を処理する計算機においては、インタ7’ IJ夕
が関数型言語で記述されたソース・プログラムを直接に
解釈し、実行していくようにされる。
従って、ユーザは計算機と会話をしつつインタラクティ
ブにプログラムの実行やデバグを行うことができる。プ
ログラムを試験する場合には、プログラムされた関数を
連続的に実行するのではなくて、ユーザが指示する毎に
、関数を1つずつ評価実行し、それに伴って評価しよう
としている関数の名前や引数の値、リターン値または検
出したエラー情報などをユーザに通知したり1例えば大
域変数の値などの環境に関するユーザの間合せに応答す
る機能が有効になる。
(3)従来技術と問題点 第1図は一般的なインタプリタの動作サイクル説明図、
第2図は従来のステップ制御ルーチンの処理説明図を示
す。
第1図図示の如く、一般にインタプリタ1は。
関数型言語で作成されたプログラム2の関数を再帰的に
評価し、実行する。すなわち、第1図図示処理3によっ
て1次に評価する関数のタイプをチェックし、処理4に
よって引数の評価を行ない。
処理5によってその関数の起動または評価を実行した後
、再び処理3に戻り9次の関数の処理を同様に繰返す。
複数の関数から構成される関数群からなるプログラム2
は9通常インタプリタ1によって連続的に評価され実行
される。しかし、プログラムの開発段階では、連続的に
実行した場合にバグの存在個所が不明となるので、1ス
テツプずつ実行しながらチェックしていくことが必要に
なる。そこで。
従来関数型言語のインタプリタにおいては9例えば第1
図図示A点にディレール・ポイントを設け。
そのA点に第2図図示の如きステップ制御ルーチン6を
挿入して、関数単位にその動作を確認できるようにされ
ていた。
すなわち、第1図図示処理3によって関数のタイプチェ
ックをしたのちに、第2図図示ステップ制御ルーチン6
によって、まずステップ蓼モードであるかどうかの判定
が行われる。もし、デバグ時などであれば、予め定めら
れた記憶域にステップ・モードの表示がなされる。そし
て、ステップ・モードでないときには、第1図図示処理
4に直ちに制御が渡されるが、ステップ・モードである
ときには9次に現在処理対象となっている関数が。
ユーザ自身が定義した関数であるかどうかの判定が行わ
れる。ユーザ自身が定義した関数である場合にのみ、デ
ィスプレイまたはプリンタにプロンプト、すなわちユー
ザへの応答促進メツセージを出力し、ユーザからの指示
を待つ。ユーザからの指示としては1例えば、■次の関
数の実行とその情況報告、■現在の環境(例えば大域変
数の値)の間合せ、■実行モードの変更(例えばステッ
プ・モードのキャンセル)、といったものがあり。
ユーザからの指示があった場合に、その指示を実行して
、その後第1図図示処理3に制御を移行するようにされ
る。従って関数単位にユーザがプログラムの実行に関与
できることとなる。
しかし、上記従来の方式によれば、インタプリタ1に第
2図に図示したステップ制御ルーチン6を埋込む必要が
あり、非ステツプ・モードの通常時においても、常にソ
フトウェアによって現在ステップ・モードであるか否か
の判定が動的に行われることとなる。従って、非ステツ
プ・モード時の効率が低下するという問題があった。特
に、インタプリタによる高級言語マシンの場合、インタ
プリタ自身の効率は直接全体の性能に影響する。
(4)発明の目的 本発明は上記問題点の解決を図り9通常時におけるイン
タプリタの性能を低下させることなく。
ステップ・モードの処理をサポートできるようにするこ
とを目的としている。
(5)発明の構成 そのため9本発明ケよ9例えば第1図図示A点で。
ステップ・モードであるときにのみマイクロレベルの割
込が発生するような手段を設け、ハードウェアによって
自動的にステップ・モード処理部へ制御が移行するよう
にしたものである。すなわち。
本発明の関数型マシンの実行制御方式は、インタプリタ
が関数型言語を解釈しつつ実行する関数型マシンにおい
て、上記インタプリタが実行するマイクロ命令にステッ
プ例外を営利けるかどうか全示す制御域を設けるととも
に、上記関数型言語全連続的に処理する通常モードまた
はインタラクティブに処理するステップ・モードを指示
するモード指示部と、上記モード指示部がステップ・モ
ードを示しているときに上記マイクロ命令の制御域“が
ステップ例外受付は可能状態であれば割込を発生させる
例外検出部と、インタラクティブに処理ナベきステップ
動作のレベルを決定するステップ制御語と、上記例外検
出部によって起動され上記ステップ制御語の内容に従っ
てステップ動作を実行処理するステップ・モード処理部
とをそなえたことを特徴としている。
以下図面を参照しつつ実施例にもとづいて説明する。
(6)発明の実施例 第゛3図は本発明の一実施例構成を示す。図中。
1はインタプリタ、l0Fiマイクロ命令実行制御部、
11はマイクロ命令レジスタ、12は一般例外(EXP
)ビット、13はステップ例外(SEXP)ビット、1
4はモード指示に用いられるステップ・フラグ、15お
よび16はアンド・ゲート、17はオア・ゲート、18
はシーケンス制御部、19はマイクロプログラム・カウ
ンタ、20ハテコーダ、21はコントロール・ストレジ
(C8)。
2z・はステップ制御@、23はステップ・モード処理
部を表わす。
第3図において、インタプリタ1はC821に記憶され
たマイクロ命令によるマイクロ・プログラムによって、
関数型言語を解釈しつつ実行する。
マイクロ命令実行制御部10は、これらのマイクロ命令
を逐次フェッチして実行処理する制御部である。C82
1VC記憶されたマイクロ命令は1通常マイクロ・プロ
グラム・カウンタ19の値によって決定されるアドレス
から、マイクロ命令レジスタ11に読み上げられる。各
マイクロ命令には。
一般の実行シーケンスの例外(Excgption )
を受付けるかどうかを示す制御域であるEXPビット1
2に加えて、ステップ例外を受付けるかどうかを示す制
御域である8EXPビツト13のフィールドが設けられ
る。なお、インタプリタ1による処理内容によっては、
上記EXPビット12および5EXPピツ)13i同じ
制御域で兼用するようにしてもよい。この実施例におい
ては、5BXPピツト13が別個に設けられている場合
について説明する。
ステップ・フラグ14は、関数型言語を連続的に処理す
る通常モードまたはインタラクティブに処理するステッ
プ・モードを指示するモード指示部であって9例えばフ
リップ・フロップで構成される。ステップ・モード時に
は、「1」にセットされる。ステップ・フラグ140セ
ツトまたはリセットは、プログラムによって、または操
作パネルからのスイッチのオン/オフによって行われる
シーケンス制御部18は、マイクロ・プログラムの実行
シーケンスを制御するロジックであって。
次に実行すべきシーケンスを決定して、デコーダ20に
よってそのアドレスを選択するようにされるO ステップ制御語22は、ステップ・モード時にインタラ
クティブに処理すべきステップ動作のレベルを指示する
ものである。特定のレジスタまたは主メモリ上の所定の
位置等に設けられる。ユーザが、インタプリタ1の起動
に先立ち、またはインタプリタ1の実行最中に、所望の
値を任意に設定できるようになっている。ステップ制御
語22の各ピッ)A、B、・・・Cのオン/オフによっ
て。
例えば■全関数についてステップ動作を行うかどうか、
■ユーザ定義関数のみステップ動作を行うかどうか、■
関数名アトム・ヘッダにトレース(Tταcm )指示
しである関数のみステップ動作を行うかどうか、または
■ユーザ定義関数内の全関数についてステップ動作を行
うかどうか9等の指示を行うことができるようにされる
。関数型言語においては、関数呼出しのネスティングが
多く用いられ、ユーザ定義関数から、多数の他の関数が
呼び出されるので、ユーザはステップ制御語22を適当
に操作することによって、必要な個所だけステップ動作
に入るように選択できることとなる。
ステップ・モード処理部23は、ステップ制御語22の
内容に従って、ステップ動作を実行処理するものである
次にマイクロ命令実行制御部100制御動作について説
明する。
ィンタプリタエのマイクロ命令のうち、第1図図示A点
の位置に相当するマイクロ命令についての5EXPビツ
ト13は、インタプリタ1の作成時に予めオンとなるよ
うに設定される。ユーザは。
関数型言語によって作成されたプログラムを試験する場
合には、ステップ制御語22にどのレベルでステップ動
作を実行させるかについての表示を行い、ステップ・フ
ラグ14iセツトする。そこで、インタプリタ1を起動
すると、インタプリタ1が次に評価する関数タイプを調
べた後、sgxPビット13がオンとなったマイクロ命
令が、マイクロ命令レジスタ13にロードされることに
なる0 8EXPビツト13の情報は、ステップ・フラグ14の
出力信号と共に、アンド・ゲート15に入力される。今
、どちらもオンになっているので。
アンド・ゲート15の出力もオンとなり、オア・ゲート
17を経由して、シーケンス制御部18に例外条件の発
生が伝達されることになる。この点の機構については9
例えば入出力割込を発生させる機構と同様であシ2例え
ば入出力割込要求信号等の例外条件信号が出力されてい
る場合に、EXPビット12がオンになると、アンド・
ゲート16の出力もオンになり、オア・ゲート17を経
由して例外条件の発生が伝達されるような制御と同様で
ある。シーケンス制御部18は、マイクロ・プログラム
・カウンタ19を選択する代わりに1例外解析ルーチン
・アドレスを選択する選択信号をデコーダ20に出力す
る。次に例外解析ルーチンのマイクロ命令が、 C82
1からマイクロ命令レジスタ11に読み出されることに
なる。例外解析ルーチンは、ステップ・フラグ14がセ
ットされていることを確認して、ステップ・モード処理
部23を起動する。
ステップ・モード処理部23は、ステップ制御語22を
参照して、ステップ動作を決定する。ステップ動作に入
った場合には、プロンプトを出力し、ユーザからの指示
を待ち、インタラクティブにユーザの指示を処理する。
本発明によれば、ユーザは1例えば予めステップ制御語
22に、ユーザ定義関数のみのステップ動作−!、fC
は関数名アトム・ヘッダにトレース指示しである関数の
みのステップ動作を設定しておき。
ユーザが特に1ステツプず、つ追跡したい関数へインタ
プリタ1が到達して、ステップ動作により指示をプロン
プトして来たときに、ステップ制御語22に新たにユー
ザ定義関数内の全関数のステップ動作指示を設定して、
その関数内を詳細に追跡するようなことも容易に実施で
きる。このステップ制御語22のユーザ定義関数内金関
数ステップ動作指示のビットは、ユーザ定義関数からリ
ターンするときに、インタプリタ1が自動的にリセット
するようにしてもよいし、ユーザがステップ動作不要と
なったときに、リセット指示をするようにしてもよい。
ステップ・フラグ14がオフの状態のとき、すなわち通
常モードのときには、マイクロ命令の5EXPビツト1
3のオン/オフにかかわらずアンド・ゲート15の出力
は、常に[−〇」となる。従って、関数型言語によるプ
ログラムは、インタプリタ1によって1通常の実行順序
に従い、連続的に処理されることとなる。
(7)発明の詳細 な説明した如く本発明によれば、マイクロレベルの割込
機構を利用することにより、インタプリタにおいて、ス
テップ動作に入るべきかどうかを各関数毎にソフト的に
判定する必要はなくなり。
特に通常モード時においてインタプリタの性能が低下す
るのを防ぐことができる。また、ステップ・モード時に
おいて、ステップ動作のレベルをユーザが自由に指定で
き、能率のよいデバグ等を行うことが可能となる。ステ
ップ・モードと通常モードとの切替えも簡易に行うこと
ができる。
【図面の簡単な説明】
第1図は一般的なインタプリタの動作サイクル説明図、
第2図は従来のステップ制御ルーチンの処理説明図、第
3図は本発明の一実施例構成を示す0 図中、工はインタプリタ、10はマイクロ命令実行制御
部、11はマイクロ命令レジスタ、13はステップ例外
ビット、14はステップやフラグ。 18はシーケンス制御部、22はステップ制御語。 23はステップ・モード処理部を表わす。 特許出願人 富士通株式会社

Claims (1)

    【特許請求の範囲】
  1. インタプリタが関数型言語を解釈しつつ実行する関数型
    マシンにおいて、上記インタプリタが実行するマイクロ
    命令にステップ例外を受付けるかどうかを示す制御域を
    設けるとともに、上記関数型言語を連続的に処理する通
    常モードまたはインタラクティブに処理するステップ・
    モードを指示するモード指示部と、上記モード指示部が
    ステップ・モードを示しているときに上記マイクロ命令
    の制御域がステップ例外受付は可能状態であれば割込を
    発生させる例外検出部と、インタラクティブに処理すべ
    きステップ動作のレベルを決定するステップ制御語と、
    上記例外検出部によって起動され上記ステップ制御語の
    内容に従ってステップ動作を実行処理するステップ・モ
    ード処理部とをそなえたことを特徴とする関数型マシン
    の実行制御方式。
JP57113303A 1982-06-30 1982-06-30 関数型マシンの実行制御方式 Granted JPS593643A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP57113303A JPS593643A (ja) 1982-06-30 1982-06-30 関数型マシンの実行制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP57113303A JPS593643A (ja) 1982-06-30 1982-06-30 関数型マシンの実行制御方式

Publications (2)

Publication Number Publication Date
JPS593643A true JPS593643A (ja) 1984-01-10
JPH0157375B2 JPH0157375B2 (ja) 1989-12-05

Family

ID=14608801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57113303A Granted JPS593643A (ja) 1982-06-30 1982-06-30 関数型マシンの実行制御方式

Country Status (1)

Country Link
JP (1) JPS593643A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434360B1 (en) 1998-05-08 2002-08-13 Nec Corporation Radio communication apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434360B1 (en) 1998-05-08 2002-08-13 Nec Corporation Radio communication apparatus

Also Published As

Publication number Publication date
JPH0157375B2 (ja) 1989-12-05

Similar Documents

Publication Publication Date Title
US5187802A (en) Virtual machine system with vitual machine resetting store indicating that virtual machine processed interrupt without virtual machine control program intervention
US4812975A (en) Emulation method
US5740413A (en) Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping
US5621886A (en) Method and apparatus for providing efficient software debugging
US4494188A (en) Method of processing an operating system in a multi-processor system
KR100248376B1 (ko) 동적-비주얼 통합 병렬 디버깅 장치 및 디버깅 방법
JP5905911B2 (ja) シングルステップ実行を用いる診断コード
JPS593643A (ja) 関数型マシンの実行制御方式
JPH1049373A (ja) パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置
KR900008402A (ko) 저장 및 복귀방법과 이방법의 실행에 가장 적절한 프로세서 시스템
JP2808757B2 (ja) デバッグ用マイクロプロセッサ
JPH05250221A (ja) シミュレータ実行方式
JP3130421B2 (ja) プログラム解析方法および装置
EP0525672A2 (en) Microprocessor with program tracing
JP2002366378A (ja) プログラムのデバッグ装置及びデバッグ方法、並びに記憶媒体
JPS6278630A (ja) 情報処理装置
JP2540605B2 (ja) デ―タフロ―コンピュ―タの実行検知方式
JPS6382525A (ja) トレ−ス機能付マイクロプロセツサ
JPS6116338A (ja) 仮想計算機システムにおける割込み処理方式
JPH0695910A (ja) 異常処理のための対話型デバッグ制御方式
JPH03141436A (ja) デバッグ装置
JPH08185326A (ja) インタープリタ言語処理装置
JPH0566961A (ja) 情報処理装置のソフトウエアデバツグ方式
JPS60142428A (ja) エミユレ−シヨン方式
JPH05189267A (ja) マイクロプロセッサの動作制御方式、及びエミュレータ