JPH0384633A - プログラムエラー検出装置 - Google Patents

プログラムエラー検出装置

Info

Publication number
JPH0384633A
JPH0384633A JP1222131A JP22213189A JPH0384633A JP H0384633 A JPH0384633 A JP H0384633A JP 1222131 A JP1222131 A JP 1222131A JP 22213189 A JP22213189 A JP 22213189A JP H0384633 A JPH0384633 A JP H0384633A
Authority
JP
Japan
Prior art keywords
predicate
arguments
program
processing unit
input
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
JP1222131A
Other languages
English (en)
Inventor
Tomohiko Yamada
朝彦 山田
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP1222131A priority Critical patent/JPH0384633A/ja
Publication of JPH0384633A publication Critical patent/JPH0384633A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) 本発明は、例えばPrologによる論理型プログラム
言語によって作成されたプログラムのエラーを検出する
プログラムエラー検出装置に関する。
(従来の技術) 論理型プログラム言語には、大型計算機やミニコンピユ
ータを対象としたPrologとマイクロコンピュータ
を対象としたll1icro Prologとがある。
ここで、論理型プログラム言語とは、対象の性質や対象
と対象との関係を表現する述語をいう。
ソシテ、前者のprologは、論理型プログラム言語
の一つでprogramとlogicとを合成した語で
あり、そのprologの主な特徴としては、(a)記
号処理に向いている。
(b) BASICやPa5calのような機城向きの
手続き型言語と異なり、事実や事実間の関係を人間向き
の言語(論理)で記述する記述型の言語といえる。
である。
ところで、prologによって作成されたプログラム
は、述語定義によって構成されるものであるが、同一述
語の定義はまとめて記述するのが一般的である。
しかし、このような論理型プログラム言語では、プログ
ラム記述の際に述語の引数個数を間違えた場合、同一名
述語でも引数個数が叉なれば別の述語として扱われるた
め、プログラムの実行が意図した動作と異なることにな
り、プログラムの正当性の検証に多大なる労力を費す結
果となる。
またシステムで提供されている述語と同一名称および同
一引数個数でユーザが述語を定義可能な処理系において
も不具合が発生しやすいものであった。
(発明が解決しようとする課題) このように、上述した従来の論理型プログラム言語によ
るプログラムの作成方法では、同一名述語でも引数個数
が異なれば別の述語として扱われるため、プログラムの
正当性の検証に多大なる労力を便していた。
またユーザが述語を定義可能な処理系においても不具合
が発生しやすかった。
本発明は、このような事情に対処して成されたもので、
プログラム開発の効率化を向上させることができるプロ
グラムエラー検出装置を提供することを目的とする。
[発明の構成] (課題を解決するための手段) 本発明のプログラムエラー検出装置は、上記の目的を達
成するために、論理型プログラム言語で記述された述語
の入力処理を行う述語入力処理部と、定義された述語名
および引数個数のペアからなる述語の述語定義ファイル
と、述語入力処理部によって入力処理された述語をこの
述語の直前に入力処理された述語と比較し、述語の引数
個数のみが不一致である場合に直前の述語の引数個数を
現在の述語の引数個数に変更し、述語の述語名のみが不
一致である場合に述語定義ファイルを検索する述語検索
処理部と、この述語検索処理部による述語定義ファイル
の検索の結果、未定義と判定された述語を新規述語とし
て述語ファイルへの登録処理を行う述語登録処理部と、
述語検索処理部による比較の結果、引数個数が不一致と
判定された場合に警告を通知するエラー処理部とを具備
するものである。
(作 用) 本発明のプログラムエラー検出装置では、述語入力処理
部が論理型プログラム言語で記述された述語の入力処理
を行うと、述語検索処理部がその入力処理された述語を
この述語の直前に入力処理された述語と比較し、述語の
引数個数のみが不一致である場合に直前の述語の引数個
数を現在の述語の引数個数に変更し、述語の述語名のみ
が不一致である場合に述語定義ファイルを検索する。
このとき、述語検索処理部による比較の結果、引数個数
が不一致と判定された場合にエラー処理部が警告を通知
する。
また述語検索処理部による述語定義ファイルの検索の結
果、未定義と判定された場合には述語登録処理部がその
その未定義述語を新規述語として述語ファイルへの登録
処理を行う。
従って、プログラム作成における述語の引数不一致によ
るプログラムの誤動作を論理型プログラム言語処理の前
段階にて容易かつ確実に検出することができる。
(実施例) 以下、本発明の実施例の詳細を図面に基づいて説明する
第1図は、本発明のプログラムエラー検出装置の一実施
例を示すものである。
同図に示すように、プログラムエラー検出装置は、述語
入力データ1、述語入力処理部2、述語定義ファイル3
、述語検索処理部4、述語登録処理部5、エラー処理部
6を倫えて構成されている。
述語入力データ1は、論理型プログラム言語で記述され
たプログラム(述語)である。
述語入力処理部2は、論理型プログラム言語で記述され
た述語の入力処理を行う。
述語定義ファイル3は、定義されている述語名と引数個
数のベアからなる述語のテーブルまたはデータファイル
である。
述語検索処理部4は、述語入力処理部2によって入力処
理された述語をこの述語の直前(カレント)に入力処理
された述語と比較し、述語の引数個数のみが不一致であ
る場合、カレントの述語の引数個数を現在の述語の引数
個数に変更し、述語の述語名のみが不一致である場合、
述語定義ファイル3を検索する。
述語登録処理部5は、述語検索処理部4による述語定義
ファイル3の検索の結果、未定義と判定された述語を新
規述語として述語定義ファイル3へ登録処理を行う。
エラー処理部6は、述語検索処理部4による比較の結果
、入力処理された述語の引数個数が不一致と判定された
ときにエラー処理を行う。
このような構成のプログラムエラー検出装置は、次のよ
うな動作を行う。
まず、述語入力処理部2が述語入力データ1に記述され
ている論理型プログラム言語の述語名と引数個数とから
なる述語の入力処理を行うと、この入力処理された述語
を述語検索処理部4が直前(カレント)の述語名および
引数個数と比較する。
そして、各述語の述語名および引数個数が同一であれば
述語入力処理部2によって次の述語の入力処理が行われ
る。
一方、述語検索処理部4による比較の結果、述語名が同
一で引数個数が兄なっている場合、処理がエラー処理部
6に移る。
そして、エラー処理部6が図示を省略した表示部に警告
メツセージを表示させる。
ここで、警告メツセージに対する応答には、エラーと認
める場合と同−述語異引数として処理する場合との2種
類がある。
エラーと認められた場合は、入力された述語を訂正して
再入力するため、処理が述語入力処理部2へ移る。
一方、同−名称異引数として処理する場合は、カレント
状態の引数個数を現在のものに変更し、処理が述語登録
処理部5へ移る。
さらに、述語検索処理部4による述語の比較結果、カレ
ントの述語名と一致しなかった場合、述語検索処理部4
が述語定義ファイル3を検索する。
検索の結果、既登録であれば引続き引数個数の比較を行
い、比較の結果不一致なら処理がエラー処理部6へ移る
。そして、エラー処理部6が上記同様の処理を行うと、
処理が述語入力処理部2へ移る。
これに対し、述語検索処理部4による述語定義ファイル
3の検索の結果、既登録でなければ述語登録処理部5が
述語定義ファイル3に未定義述語と判定された述語を新
規述語として登録処理を行う。この後、処理が述語入力
処理部2に移る。
このように、本実施例では、述語を入力した特恵で、カ
レントの述語名と引数個数との比較を行い、不一致の場
合には警告を発するようにしたので、論理型プログラム
言語によって作成されたプログラムのインタプリタまた
はコンパイラによる処理の前段階で比較的多い述語の引
数個数によるエラーを容易に検出することができ、これ
によりプログラム作成の効率が向上する。
なお、本実施例では、本発明を論理型プログラム言語に
よって作成されたプログラムのエラー検出を行う場合に
ついて説明したが、この例に限らず論理型プログラム言
語によるプログラム作成支援テキストエディタに係るプ
ログラムのエラーを検出する場合に適用してもよい。
また、本実施例では、入力処理された述語の述語名がカ
レントの述語名と一致しなかった場合、述語定義ファイ
ル3に定義を新規に登録するようにした場合について説
明したが、この例に限らずシステムで提供する述語を事
前に登録してもよく、この場合にはシステム定義述語を
ユーザが再定義する際の誤りを防ぐことができる。
[発明の効果] 以上説明したように、本発明のプログラムエラー検出装
置によれば、プログラム作成における述語の引数不一致
によるプログラムの誤動作を論理型プログラム言語処理
の前段階にて容易かつ確実に検出するようにしたので、
論理型プログラム言語におけるプログラム作成において
ユーザが述語定義した場合のエラー検出を速やかに行い
プログラム開発の効率化を向上させることができる。
【図面の簡単な説明】
第1図は本発明のプログラムエラー検出装置の一実施例
を示すブロック図である。 1・・・述語入力データ、2・・・述語入力処理部、3
・・・述語定義ファイル、4・・・述語検索処理部、5
・・・述語登録処理部、6・・・エラー処理部。

Claims (1)

    【特許請求の範囲】
  1. (1)論理型プログラム言語で記述された述語の入力処
    理を行う述語入力処理部と、 定義された述語名および引数個数のペアからなる述語の
    述語定義ファイルと、 前記述語入力処理部によって入力処理された述語をこの
    述語の直前に入力処理された述語と比較し、述語の引数
    個数のみが不一致である場合に直前の述語の引数個数を
    現在の述語の引数個数に変更し、述語の述語名のみが不
    一致である場合に前記述語定義ファイルを検索する述語
    検索処理部と、この述語検索処理部による述語定義ファ
    イルの検索の結果、未定義と判定された述語を新規述語
    として前記述語ファイルへの登録処理を行う述語登録処
    理部と、 前記述語検索処理部による比較の結果、引数個数が不一
    致と判定された場合に警告を通知するエラー処理部と を具備していることを特徴とするプログラムエラー検出
    装置。
JP1222131A 1989-08-28 1989-08-28 プログラムエラー検出装置 Pending JPH0384633A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1222131A JPH0384633A (ja) 1989-08-28 1989-08-28 プログラムエラー検出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1222131A JPH0384633A (ja) 1989-08-28 1989-08-28 プログラムエラー検出装置

Publications (1)

Publication Number Publication Date
JPH0384633A true JPH0384633A (ja) 1991-04-10

Family

ID=16777656

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1222131A Pending JPH0384633A (ja) 1989-08-28 1989-08-28 プログラムエラー検出装置

Country Status (1)

Country Link
JP (1) JPH0384633A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011108342A1 (ja) 2010-03-01 2011-09-09 新日鐵化学株式会社 金属微粒子複合体及びその製造方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011108342A1 (ja) 2010-03-01 2011-09-09 新日鐵化学株式会社 金属微粒子複合体及びその製造方法

Similar Documents

Publication Publication Date Title
JPH0748182B2 (ja) プログラム・エラー検出方法
Teitelman Automated programmering: the programmer's assistant
JP6567212B2 (ja) 等価性検証装置および等価性検証プログラム
EP2168045A1 (en) Exception-based error handling in an array-based language
JPH0384633A (ja) プログラムエラー検出装置
CN110609822B (zh) 数据流处理方法、设备和计算机程序产品
De Blaere et al. A compiler extension to protect embedded systems against data flow errors
Robinson-Mallett et al. Generating optimal distinguishing sequences with a model checker
CN116069669B (zh) 全自动分布式一致性的分析方法、系统、设备及存储介质
JPH03161844A (ja) スペリング訂正方式
US20110107308A1 (en) Real-time user configurable debugging framework
Jiang et al. An approach to automatic testing exception handling
JP2982647B2 (ja) 画像生成プログラム処理装置
Yi et al. Jeu de mots paronomasia a StackOverflow-driven bug discovery approach
JPH1031584A (ja) ソフトウエアの検証自動化装置
JPH02219136A (ja) プログラム改造時のバグ検査方法
JPH02231634A (ja) ソフトウェア互換性維持方法
CN112732481A (zh) 一种处理器的异常修复方法及装置
JPS6365539A (ja) 演算処理装置の試験方式
Ali et al. Enhancing Generic Pipeline Model in Preventing Code Clone during Software Development
JPH0314132A (ja) エラー処理制御方式
JPH0468446A (ja) デバッグ支援装置
JPH01169641A (ja) ソフトエラー検出方式
JP2002073373A (ja) 修正確認検査項目を元に周辺・類似機能を確認する検査プログラムを抽出するプログラム検査装置
JPS6125254A (ja) プログラムのデバツグ方式