JPH03103926A - プロローグインタプリタ・コンパイラのインタフェース方法 - Google Patents

プロローグインタプリタ・コンパイラのインタフェース方法

Info

Publication number
JPH03103926A
JPH03103926A JP24063889A JP24063889A JPH03103926A JP H03103926 A JPH03103926 A JP H03103926A JP 24063889 A JP24063889 A JP 24063889A JP 24063889 A JP24063889 A JP 24063889A JP H03103926 A JPH03103926 A JP H03103926A
Authority
JP
Japan
Prior art keywords
compiler
backtracking
interface
prologue
interpreter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP24063889A
Other languages
English (en)
Inventor
Yoshiyuki Otsu
大津 善行
Hiroshi Suzuki
弘 鈴木
Takashi Ishikawa
隆 石川
Hideki Sato
秀樹 佐藤
Shigeo Abe
阿部 重夫
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.)
Hitachi Ltd
Hitachi Information and Control Systems Inc
Original Assignee
Hitachi Ltd
Hitachi Process Computer Engineering Inc
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 Hitachi Ltd, Hitachi Process Computer Engineering Inc filed Critical Hitachi Ltd
Priority to JP24063889A priority Critical patent/JPH03103926A/ja
Publication of JPH03103926A publication Critical patent/JPH03103926A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はプロローグ言語処理系におけるインタプリタ・
コンパイラのインタフェース方法に関する。
〔従来の技術〕
プロローグ言餠処那系において、インタプリタコードと
コンパイラコードの混在実行をつかさどるソフトウェア
としてインタフェース処理プログラムがある。インタフ
ェース処理プログラムは、インタプリタコードからコン
パイラコードへの移行、あるいはその逆への移行用があ
る。インタプリタコードからコンパイラコードへの移行
時にはコンパイラコードで、その逆ではインタプリタコ
ードで、プロローグ特有のバックトラックという後戻り
実行の可能性があるため、インタフェース処理プログラ
ムは、バックトラックに備えて実行環境の退避処理を行
っている。この実行環境の退避処理は、インタフェース
処理プログラムの実行時に行われるため、ユーザプログ
ラムの実行においてのオーバヘッドは大きい。かかる従
来例には、r C  Prologのコンパイラの開発
一内部構造について」(情報処理学会、第33回全国大
会。小林他)がある。
〔発1リ」が解決しようとする課題〕 上記従来技術は、ユーザプログラムにバックトラックの
無い範囲が存在する点について配慮がされておらず、イ
ンタプリタコードとコンパイラコードのインタフェース
処理において、常にバックトラック用の実行環境の退避
処縄を行うという問題があった。
本発四の目的は、ユーザがバックトラックの無い範囲を
インタフェース処理プログラムに知らせ、インタフェー
ス処理プログラムが不必要な実行環境の退避処理を行わ
ず、ユーザプログラムを高速に実行させるインタフェー
ス方法を提供するものである。
〔課題を解決するための手段〕
本発明は、インタプリタとコンパイラを有する−3− −4= プロローグ賃語処理系において、バックトラックが無い
ことを示す情報を入力し、このバックトラックが無いと
いう情報を記憶するインタフェースフラグと、そのイン
タフェースフラグを参照しバックトラックのための実行
環境の退避処理をスキップする処則を設けた。
ここで、バックトラックがないことを示す情報の入力に
は、主として組込述語による例、プロローグモニタ起動
時に指定する例、割込みによる例とがあるが、これに限
定されない。
〔作 用〕
本発明によれば、バックトラックが無いことを示すイン
タフェースフラグを設けておき、インタプリタコードと
コンパイラコードの混在実行が行われる時に、インタフ
ェースフラグを参照し、バックトラック用の実行環境の
退避処理をスキップする。これにより、ユーザプログラ
ムの高速実行を図る。
〔実施例〕
以下、本発明の実施例を第1図、第2図、第3図、第4
図、第5図、第6図、第7図、第8図、第9図、第10
図により説明する。
第1図は、本発明の基本的概念を示したものである。本
発明は、ユーザが何らかの形でプロローグ言語処理系(
103)に、本発明の特徴であるバックトラックが無い
という情報(101)を入力(102)すると、プロロ
ーグ言語処理系(103)は、インタフェースフラグ(
104)にバックトラックが無いことを記憶する。この
状態でインタプリタコードとコンパイラコードの混在実
行を行うと、インタフェース処aI!プログラム(10
6)が動作する。インタフェース処理プログラム(10
6)は、先程インタフェースフラグ(104)に記憶し
たバックトラックが無いという情報を参照(105) 
シ,バックトラックのための実行環境の退避処理をスキ
ップする手段(107)で、ユーザプログラムを高速に
実行する。
ここでは本発明の実施例について3つ述べる。
第1の実施例は、ユーザが指定するパックトラックが無
いという情報(101)を入力(102)する手段とし
て組込述語を用いる実施例である。組込述語とはシステ
ムにあらかじめ備えてある手続きをいう。
第2の実施例は、ユーザが指定するバック1−ラックが
無いという情報(101)を入力(102)する手段と
して、プロローグ言語処理系起動時にプロローグコマン
ドパラメータにて指定する実施例である。
第3の実施例は、ユーザが指定するバックトラックが無
いという情報(101.)を入力(102)する手段と
して、プロローグ言語処理系動作時に割込みにて指足す
る実施例である。この人力されたユーザが指定するバッ
クトラックが無いという情報(100をインタフェース
フラグ(104)に記憶する手段と、インタフェース処
理プログラム(106)がインタフェースフラグ(10
4)に記憶した情報を参照(105) L実行環境の退
避処理をスキップ(107)する手段については、第1
、第2、第3の実施例とも同一であるため、第1の実施
例説明時にのみ説明する。
第1の実施例について第2図、第3図、第4図、第5図
、第6図を用いて説明する。第2図は、プロローグ言語
処理系の構或を示したものである。
第工の実施例はこの図を中心に説明する。第3図はバッ
クトラックが無い述語群の開始を示す組込述飴の処理フ
ロー図である。第4図はバックトラックが無い述語群の
終了を示す組込述語の処理フロー図である。第5図はイ
ンタプリタコードとコンパイラコードの混在実行をつか
さどるインタフェース処理プログラムの処理フロー図で
ある。第6図はバックトラックが無いことを指定する組
込述餅の使用方法を示したものである。
第1の実施例について第2図を用いて説明する。
第2図で、プロローグモニタ(208)、インタフェー
ス処理プログラム(213)、組込述語群(216)は
システムが管理するもので、インタプリタコード群(2
09)とコンパイラコード群(214)は、ユーザが記
述したプログラムが、インタプリ夕とコンパイラによっ
てコード変換後に生成されるものである。
本説明では,インタプリタコード群(209)に、コン
パイラコード呼出しコード(2 1. 1 )が混在し
た場合のインタプリタコード群(209)の実行につい
て説明する。
インタプリタコード群(209)の実行を説明する7− 8 前に組込述@ A (217)、組込述m B (21
8)を用いたユーザのプログラミング方法について第6
同を用いて説明する。ユーザがプログラミング時にバッ
クトラックが無い述語群を認識すると、その述語群の前
に組込述語A (602)を挿入し、その述語群の後に
組込述語B (603)を挿入する。よって、組込述開
A(602)と組込述m B (603)とで囲まれた
範囲(601)ではバックトラックが無いことを指定す
ることが可能となる。第2図に戻り、インタプリタコー
ド群(209)の実行について説明する。まず、組込述
語A呼出しコード(210)を実行すると、移行線20
1により組込述語群(216)の中の組込述語A(21
7)に制御を移す。組込述語A (217)の処理フロ
ー図を第3図に示す。組込述語Aではユーザが指定した
バックトラックが無いことをインタフェースフラグ(2
19)に記憶する(301)。第2図に戻り、組込述語
A (217)の実行が終了すると、移行線202によ
り組込述114 A呼出しコード(210)に戻る。組
込述語A呼出しコード(210)の実行が終了すると、
コンパイラコード呼出しコード(211)を実行する。
コンパイラコード呼出しコード(211)の実行は移行
線203でインタフェース処理プログラム(213)に
制御を移す。インタフェース処理プログラムの処理フロ
ー図を第5図に示す。インタフェース処理プログラムは
、先程設定したインタフェースフラグ(219)を参照
し、バックトラックが無いかどうか判定する(501.
)。判定が真ならば、バックトラック用の実行環境の退
避処理(502)をスキップする。第2図に戻り、イン
タフェース処理プログラム(213)の実行が終了する
と、移行線204によりコンパイラコード群(214)
のコンパイラコード(215)ヘジャンプする。コンパ
イラコード(215)の実行が終了すると移行線205
により、コンパイラコード呼出しコード(211)へ戻
る。コンパイラコード呼出しコード(211)の実行が
終了すると、組込述語B呼出しコード(212)を実行
する。組込述語B呼出しコード(212)を実行すると
移行線206により、組込述語群(216)の中の組込
述語B (218)へ制御を移す。組込述語Bの処理フ
ロー図を第4図に示す。
組込述語Bでは、第3図の組込述語Aでインタフ工一ス
フラグ(219)に記憶したバックトラックが無いとい
う情報をクリアする(401)。第2図に戻り組込述語
B (218)の実行が終了すると、移行線207によ
り組込述語B呼出しコード(212)へ戻る。
以上でインタプリタコード群(209)の実行はすべて
終了し、インタフェース処理プログラム(213)にて
、バックトラックのための実行環境の退避処理はスキッ
プされ、ユーザ述語の高速な実行が図れる。
第2の実施例について、第7図、第8図を用いて説明す
る。第7図は、プロローグコマンドパラメータを用いた
実施例について示した図である。
第8図は、プロローグモニタの処理フロー図である。ま
ず第7図で、ユーザがプロローグ処理系を使用するとプ
ロローグモニタ(703)起動(701)する。
プロローグモニタ(703)は、起動(701)時にユ
ーザが指定するプロローグコマンドパラメータ(704
)を入力(702)する。第2の実施例では、このプロ
ローグコマンドパラメータ(704)としてバックトラ
ックが無いという情報を用いる実施例である。
バックトラックが無いという情報をプロローグモニタ(
703)が入力すると、プロローグモニタ(703)は
、第8図で示すよう入力したプロローグコマンドパラメ
ータが、バックトラックの無い情報かどうかを判定する
(801)。判定が真ならば、バックトラックが無いこ
とをインタフェースフラグ(705)に記憶する(80
2)。インタフェースフラグに記憶した情報は、第lの
実施例で示したようにインタプリタコードとコンパイラ
コードの混在実行時に、インタフェース処理プログラム
が参照し、バックトラック用の実行環境の退避処理をス
キップする。
第3の実施例について、第9図、第10図を用いて説明
する6第9図は、割込み処理を用いた実施例について示
した図である。第10図は、割込み処矧プログラムの処
川1フロー図である。まず第9図で、ユーザがプロロー
グ言語処理系を使用するとプロローグモニタ(901)
が動作する。プロローグモニタ(901)の実行(90
2)中に、ユーザがプロローグモニタ(901)に対し
てバックトラックの無い情報を入力しようとすると、プ
ロローグモニタ(901)−11−一 ー12一 に割込み(903)を入れる。割込み(903)が入る
とプロローグモニタ(901)は、移行線904により
割込み処理プログラム(905)に制御を移す。割込み
処理プログラム(905)の処理フロー図を第lO図に
示す。
割込処理プログラムはユーザに対してコマンド入力を要
求し、ユーザが指定するコマンドを入力する(1001
)。入力したコマンドは解釈し、バックトラックが無い
という情報かどうかを判定する(1002)。
判定が真ならバックトラックが無いことをインタフェー
スフラグ(907)に記憶する(1003)。判定が偽
なら入力したコマンドがバックトラックが有るという情
報かどうか判定する(1004)。判定が真ならインタ
フェースフラグに記憶した情報をクリア(1005)す
る。割込み処理プログラムの実行が終了すると第9図の
移行線906によりプロローグモニタ(901)へ戻る
。ここで、インタフェースフラグ(907)にバックト
ラックが無いという情報が記憶してあれば、第1の実施
例で説明したように、インタプリタコードとコンパイラ
コードの混在実行時に、インタフェース処矧プログラム
がインタフエースフラグを参照し、バックトラック用の
実行環境の退避処理をスキップする。
〔発明の効果〕
本発1リ」によれば、ユーザ指定で、インタプリタコー
ドとコンパイラコードの混在実行をつかさどるインタフ
ェース処理プログラムに、ダイレク1〜にバックトラッ
クの有無を知らせることにより、インタプリタコードと
コンパイラコードを混在実行した場合、ユーザ述語の実
行性能が向上するという効果がある。
【図面の簡単な説明】
第1図は、本発明の基本的概念を示す図、第2図は、プ
ロローグ言語処理系及び第1の実施例図、第3図、第4
図は組込述語処理フロー図、第5図はインタフェース処
理プログラム処理フロー図、第6図は、組込述語使用方
法を示す図、第7図は第2の実施例図、第8図はプロロ
ーグモニタ処理フロー図、第9図は、第3の実施例図、
第10図は、割込み処理プログラム処理フロー図を示し
たものである。 101・・・バックトラックが無いという情報、104
・・インタフェースフラグ、106・・インタフェース
処理プログラム、107・・・実行環境の退避をスキッ
プする処理。

Claims (1)

  1. 【特許請求の範囲】 1、インタプリタとコンパイラを有するプロローグ言語
    処理系において、バックトラックが無いことを示す情報
    を入力し、このバックトラックが無いという情報を記憶
    するインタフェースフラグと、そのインタフェースフラ
    グを参照しバックトラックのための実行環境の退避処理
    をスキップする処理を設けたことを特徴とする、プロロ
    ーグインタプリタ・コンパイラのインタフェース方法。 2、インタプリタとコンパイラを有するプロローグ言語
    処理系において、バックトラックが無いことを示す組込
    述語と、その組込述語によって指定されたバックトラッ
    クが無いという情報を記憶するインタフェースフラグと
    、そのインタフェースフラグを参照しバックトラックの
    ための実行環境の退避処理をスキップする処理を設けた
    ことを特徴とする、プロローグインタプリタ・コンパイ
    ラのインタフェース方法。 3、インタプリタとコンパイラを有するプロローグ言語
    処理系において、バックトラックが無いことをプロロー
    グモニタ起動時に指定可能な処理と、その指定した情報
    を記憶するインタフェースフラグと、そのインタフェー
    スフラグを参照しバックトラックのための実行環境の退
    避処理をスキップする処理を設けたことを特徴とする、
    プロローグインタプリタ・コンパイラのインタフェース
    方法。 4、インタプリタとコンパイラを有するプロローグ言語
    処理系において、プロローグ言語処理系可動時にバック
    トラックが無いという割込みレベルを受け付ける処理と
    、この情報を記憶するインタフェースフラグと、そのイ
    ンタフェースフラグを参照しバックトラックのための実
    行環境の退避処理をスキップする処理を設けたことを特
    徴とする、プロローグインタプリタ・コンパイラのイン
    タフェース方法。
JP24063889A 1989-09-19 1989-09-19 プロローグインタプリタ・コンパイラのインタフェース方法 Pending JPH03103926A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24063889A JPH03103926A (ja) 1989-09-19 1989-09-19 プロローグインタプリタ・コンパイラのインタフェース方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24063889A JPH03103926A (ja) 1989-09-19 1989-09-19 プロローグインタプリタ・コンパイラのインタフェース方法

Publications (1)

Publication Number Publication Date
JPH03103926A true JPH03103926A (ja) 1991-04-30

Family

ID=17062476

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24063889A Pending JPH03103926A (ja) 1989-09-19 1989-09-19 プロローグインタプリタ・コンパイラのインタフェース方法

Country Status (1)

Country Link
JP (1) JPH03103926A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5753373A (en) * 1995-12-21 1998-05-19 Minnesota Mining And Manufacturing Company Coating composition having anti-reflective and anti-fogging properties
CN107437005A (zh) * 2017-07-18 2017-12-05 广东工业大学 一种基于混沌不透明谓词的代码混淆方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5753373A (en) * 1995-12-21 1998-05-19 Minnesota Mining And Manufacturing Company Coating composition having anti-reflective and anti-fogging properties
CN107437005A (zh) * 2017-07-18 2017-12-05 广东工业大学 一种基于混沌不透明谓词的代码混淆方法及装置

Similar Documents

Publication Publication Date Title
JP2692609B2 (ja) マルチタスクのプログラムデバッグ方法とその装置
JP2904929B2 (ja) 端末エミュレータまたは使用者プログラムからの選択的なグラフィック使用者インターフェイス(gui)制御および指令ライン(tty)制御を可能にする多重スレッドを動作させるコンピュータプログラムのためのコントローラ
JPH03103926A (ja) プロローグインタプリタ・コンパイラのインタフェース方法
JPH0328933A (ja) タスク制御方法
JPS61180344A (ja) 高級言語のステツプ実行システム
JPH03179535A (ja) デバッグ支援装置
JPH0327451A (ja) リアルタイムオペレーティングシステム
JPH02159603A (ja) ループ制御装置
JPH0283633A (ja) ユーティリティプログラムの制御装置
JPS6116344A (ja) 対話形式デバツグ処理方式
JPH0488438A (ja) 高級言語による原始プログラムに対するデバッガの一命令実行方式
JPH10149294A (ja) オペレーティングシステム
JPH04333146A (ja) デバッグにおけるプログラムの実行制御方式
JPH04216131A (ja) 対話型プログラム作成システム
JP2751423B2 (ja) プログラムデバッグ処理方式
JPH03175539A (ja) デバッグ用マイクロプロセッサ
JPS62187945A (ja) 計算機システム
JPH03218532A (ja) 任意起動プログラム管理方式
JPS63228341A (ja) プログラム構文チエツク方式
Burns et al. Asynchronous transfer of control in Ada 9X
JPH02257334A (ja) プログラム変換方式
JPH037973B2 (ja)
JPH0484355A (ja) 端末依存型コマンド実行方式
JPH01142853A (ja) Tssコマンド処理方式
JPH02195451A (ja) コマンド処理プログラム保守情報収集方式