JPS61210432A - 計算処理方式 - Google Patents

計算処理方式

Info

Publication number
JPS61210432A
JPS61210432A JP60050425A JP5042585A JPS61210432A JP S61210432 A JPS61210432 A JP S61210432A JP 60050425 A JP60050425 A JP 60050425A JP 5042585 A JP5042585 A JP 5042585A JP S61210432 A JPS61210432 A JP S61210432A
Authority
JP
Japan
Prior art keywords
cue
processing
execution
registered
executed
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
JP60050425A
Other languages
English (en)
Inventor
Takeshi Nakadokoro
中所 武司
Hirohide Haga
芳賀 博英
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
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP60050425A priority Critical patent/JPS61210432A/ja
Priority to GB08603266A priority patent/GB2173614B/en
Priority to FR8601907A priority patent/FR2578990B1/fr
Publication of JPS61210432A publication Critical patent/JPS61210432A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/313Logic programming, e.g. PROLOG programming language
    • G06F8/3135Unification or backtracking

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は計算処理方式に関し、プログラムの劇作pg(
side effect )を伴なう部分の計算処理を
できるだけ遅らせることにより、その処理の取消しを容
易にするのに好適な計算処理方式に関する。
〔発明の背景〕
従来の論理型言語プロローグ(Prolog)の計算処
理方式等では、下記文献のように、計算途中で。
ある目標に対するすべての節の実行が失敗した時は、処
理を後戻りして、未だ実行してυ1ない節を実行すると
いうバックトラッキング(backtracking)
機能がある。しかし、入出力処理やデータベース操作の
実行後にバックトラッキングが生じた時、それらの実行
で生じた副作用(グローバルメモリへの書き込みなどに
よりプログラム機能を変える作用)を除去する点につい
ては配慮がされていなかった。
文献:rプロローグ プログラミング」マイクロソフト
ウェア 1983 6.4節(V、F、C1ock+1
nand C,S、Mslligh  rProgra
mming in PrologJ1981  g6.
4) 〔発明の目的〕 本発明の目的は、バックトラッキングが生じた時に元の
状態に回復できないような副作用を伴なう組込述語の使
用により、 Prologのような論理型言語(マシン
)等に特に特徴的なバックトラッキングによる推論機能
が低下することを最小限に抑えるために、副作用を伴う
組込述語の実際の実行時期をバックトラッキングの可能
性が無くなるまで遅らせる機能を提供することにある。
〔発明の概要〕
従来のPrologのような論理型言語(マシン)では
、副作用の伴う述語の実行後のバックトラッキング時に
は副作用を元に戻すことはしていない。
本発明では、副作用を伴う述語の実行指示の代りにキュ
ーを保存する機能とバックトラッキング時にキューから
除く機能とキュー内の述語を実行する機能を設けること
により、上記の不都合を防止できるようにしたことにあ
る。・ 〔発明の実施例〕 以下、本発明の一実施例を図面により説明する。
第1図は、Prologプログラムの簡単な例である。
構文規則はD E C10Prologに準じている。
このプログラムにおいて、 5endは1本発明で問題
とするところの、副作用を伴う述語とする(一般に副作
用を伴う述語は状態変数などのようにグローバルメモリ
内に長時間留まる必要性などから予めわかるものである
。) 第2図は、 Prologプログラムの従来方式の実行
処理システムの一実施例の概略図である。入出力端末1
はオペレータからの入力操作やシステムからの出力表示
を行う装置であり、その制御は入出力処理部2が行う、
実際のプログラムの実行は、計算処理部3が行うが、必
要に応じて、ユーザの記述したプログラムを管理するプ
ログラム部4やシステム側で用意したプログラムを管理
する組込述語部5と情報の受渡しを行う。
第3図は、Prologプログラムのうち、各節の頭部
、即ち「ニー」の左側の述語名(この例ではP)が同じ
節の集合を一般形で表したものである。
第4図は、第3図の各節の「ニー」の右側の素命題(a
tomic formula)の並びの1つ(例えばq
 ha)を第2図の処理装置で実行する場合の処理の流
れを示したものである。以下この処理部分をSGと呼ぶ
ことにする。SGは、計算すべき素命題(atomic
 formula)およびそれと同一述語名を節の頭部
に持つ節集合(第3図)の何番目から実行を試みるかと
いう2つの入力を有する。後者は第4図のkにあたり、
処理中に変化した値を処理終了時に返す、このSGは第
4図のブロック21で再帰的に実行されている。
ここで、第1図のプログラムを第2図の実行処理装置を
用いて実行した時の処理の流れを第4図を用いて説明す
る。今、入力として ?−p(b)。
を考える。計算処理部は、 5G(p(b)、O) という形でSGの実行に入る。に=1の状態で。
第1図の1行目が実行される。まずx=bとなり、次に
1行目布辺の先頭のq (Y)の実行でY = aとな
り、1行目布辺の2初目のr(Y)の実行でZ=aとな
り、副作用を伴なう5end(a、c)が実行される。
その後、s (x、y)の実行で、s(b。
a)が失敗してバックトラッキングが生じる。ブロック
23で1つ前に戻る処理がΩ=3から悲=1になるまで
行われ、再びq (Y)が実行されるが、この時t(4
1)=1となっているため、第1図の3行目が実行され
、Y=bとなる。その後、r(Y)が再び実行され、5
and(b、 c)を実行後、S(X。
Y)の実行も成功して終了する。この例では、バックト
ラッキング発生時に、既に実行済の5end(at c
)によって生じた副作用の取消しがなされていないとい
う問題がある。
第5図は、この問題を解決するために、本発明が導入し
た組込述語queueおよびdequeueを使用して
第1図のプログラムを改良したプログラムである。
第6図は本発明の一実施例であり、第2図の従来方式に
遅延実行用キュー6を加えたものである。
この遅延実行用キューの使用法を第4図の従来方式の処
理フローへの追加処理として以下に説明する。
(1)ブロック20の実行直前で、これから実行する素
命題q。の述語名がqueueか否かを判定し、que
ueの場合はその引数を実行遅延用キュー6に登録する
(2)ブロック20の実行直前で、qkmがdeque
ueか否かの判定を行い、dequeueならば、実行
遅延用キュー6に登録された素命題を登録順に実行する
(3)ブロック23においてバックトラッキングの処理
を開始する時に、実行取消しの対象となったqueue
によって遅延実行用キュー6に登録された素命題を取り
除く。
従って、第6図の実施例を用いて、第5図のプログラム
を実行すれば、r (Y)の最初の実行では5end(
a、 c)はすぐには実行されず、その代りに遅延実行
用キュー6に登録された後、s(x、y)の実行の失敗
によるバックトラッキング処理で除去される。r(Y)
の2度目の実行で5end(b、 c)が登録され、d
equeueの実行により、遅延実行用キューから取出
されて実行される。
このような計算処理方式により、副作用を伴う述語の実
行後の取消しと同じ効果を実現できる。
以上説明した“queue”、  ”dequaus”
などはそれを取扱うO8のスーパーバイザマクロなどと
して使用することが効果的である。
〔発明の効果〕
本発明によれば、プログラムの副作用を伴う部分の計算
処理を遅らせることができるため、論理型言語マシンに
お“けるバックトラッキング処理時の副作用の取消処理
が不要になるので、論理型言語マシンに特徴的なバック
トラッキングによる推論機能の利用が容易になる他、無
駄な処理の削除により処理効率が向上するという効果が
ある。
また、従来論理言語とオブジェクト指向言語を結合した
システムに生じ勝ちな副作用とバックトラッキングとい
う2つの相反する課題を同時に解決するシステムを提供
するものであり、新たな計算機アーキテクチャをも提供
している。
【図面の簡単な説明】
第1図は従来のPrologプログラムの例、第2図は
従来のPrologマシンの一実施例のシステム構成図
、第3図はPrologプログラムにおける節の頭部の
述語名が同じ節の集合の一般形、第4図は第2図のよう
な従来方式によってPrologの節の素命題を計算す
る場合の処理の流れ、第5図は本発明の機能を利用した
Prologプログラムの例、第6図は本発明の一実施
例のシステム構成図である。 6・・・遅延実行用キュー。 第 1 口 F  (X)ニー  #  (Yン、 と(Y)、S(
X、γ入) (L) 。 !r(b>。 r (1) : −5efLd (2! 、 c)。 5(vJ、w)。 第 2 口 ′M 5 図 F’ (X) ニー)(Y)、 ?(Y) 、 5(X
)Y)、 deyihe 。 シ(荻)。 1(bル 1(X):4a4cmg(,5end(ii、c))。 5(1r、11)。 VJt  口

Claims (1)

    【特許請求の範囲】
  1. プログラム部と組込述語部と計算処理部より成る言語マ
    シンにおいて遅延実行用キューを設け、特定の素命題を
    遅延実行用キューに登録するステップと該登録された素
    命題を取出して実行するステップとその登録を取消すス
    テップを有することを特徴とする計算処理方式。
JP60050425A 1985-03-15 1985-03-15 計算処理方式 Pending JPS61210432A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP60050425A JPS61210432A (ja) 1985-03-15 1985-03-15 計算処理方式
GB08603266A GB2173614B (en) 1985-03-15 1986-02-11 Logic program processing method and system
FR8601907A FR2578990B1 (fr) 1985-03-15 1986-02-12 Methode de traitement des calculs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60050425A JPS61210432A (ja) 1985-03-15 1985-03-15 計算処理方式

Publications (1)

Publication Number Publication Date
JPS61210432A true JPS61210432A (ja) 1986-09-18

Family

ID=12858510

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60050425A Pending JPS61210432A (ja) 1985-03-15 1985-03-15 計算処理方式

Country Status (3)

Country Link
JP (1) JPS61210432A (ja)
FR (1) FR2578990B1 (ja)
GB (1) GB2173614B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3616740A1 (de) * 1986-05-17 1987-11-19 Heidenhain Gmbh Dr Johannes Vorrichtung zur gewinnung von werkstueckkonturen

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2060225B (en) * 1979-09-29 1983-05-25 Plessey Co Ltd Multi-programming data processing system process suspension
DE3380643D1 (en) * 1982-06-21 1989-11-02 Ibm Method and apparatus for restoring data in a computing system
US4734848A (en) * 1984-07-17 1988-03-29 Hitachi, Ltd. Combination reduction processing method and apparatus

Also Published As

Publication number Publication date
GB8603266D0 (en) 1986-03-19
GB2173614A (en) 1986-10-15
FR2578990A1 (fr) 1986-09-19
GB2173614B (en) 1988-12-21
FR2578990B1 (fr) 1991-10-11

Similar Documents

Publication Publication Date Title
Saleh et al. Explicit effect subtyping
JPS61210432A (ja) 計算処理方式
JPH0581069A (ja) プログラムのデバツグ方法
Lodaya et al. Proof theory for exception handling in a tasking environment
JPH0588878A (ja) Lisp命令実行方式
JPH01224843A (ja) 運用モード付エキスパートシステム構築用ツール
Carciofini et al. LogLisp Programming System Users Manual
JPS608944A (ja) 関数型マシンの終端再帰呼出し制御方式
JPH02103638A (ja) 組込み関数実行時の性能向上方式
JPH01298444A (ja) プログラム実行制御方式
JP2682206B2 (ja) 目的プログラムの最適化方式
JPH03172934A (ja) 言語間インタフェース
Harland et al. Programming in Lygon: a system demonstration
JPH03233634A (ja) 業務再処理方式
JPH04209027A (ja) ルール推論装置
JPS58109947A (ja) シミユレ−ト装置
Kopetz et al. Reliability and System Design
JPH04153741A (ja) 被デバッグプログラムのデバッグにおける逆方向実行方式
Santos Denotational semantics using horn concurrent transaction logic
JPH04241628A (ja) エキスパートシステム構築用シェルのロード方法
JP2000242524A (ja) プロセッサのソフトウエアシミュレータ
JPS5848154A (ja) プログラム1ステツプ制御方式
JPH03282735A (ja) 並列処理システム
JPH03136131A (ja) システムプログラム階層分離作成方式
JPS61241844A (ja) 情報処理装置