JP3270777B2 - 論理図プログラム用エディタ - Google Patents

論理図プログラム用エディタ

Info

Publication number
JP3270777B2
JP3270777B2 JP34702092A JP34702092A JP3270777B2 JP 3270777 B2 JP3270777 B2 JP 3270777B2 JP 34702092 A JP34702092 A JP 34702092A JP 34702092 A JP34702092 A JP 34702092A JP 3270777 B2 JP3270777 B2 JP 3270777B2
Authority
JP
Japan
Prior art keywords
state
program
syntax
line
logic diagram
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.)
Expired - Fee Related
Application number
JP34702092A
Other languages
English (en)
Other versions
JPH06195215A (ja
Inventor
敏隆 永井
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 JP34702092A priority Critical patent/JP3270777B2/ja
Publication of JPH06195215A publication Critical patent/JPH06195215A/ja
Application granted granted Critical
Publication of JP3270777B2 publication Critical patent/JP3270777B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、命令を図記号で表現す
る論理図プログラムを編集する論理図プログラム用エデ
ィタに関する。
【0002】近年、プログラム構造を明瞭化して、プロ
グラム開発の生産性、プログラムの可読性を向上させる
ため、命令を図記号で表現する論理図プログラムが使用
されている。この論理図プログラムを編集する論理図プ
ログラム用エディタでは、論理図プログラム編集の段階
で、プログラムの構文上の誤りをチェックできることが
必要とされている。
【0003】
【従来の技術】命令を図記号で表現する論理図プログラ
ムの編集は、論理図プログラム用エディタを用いて行
う。従来の論理図プログラム用エディタでは、論理図プ
ログラムに記述された命令の論理的対応関係はチェック
することができる。
【0004】論理図プログラムは、論理図プログラム用
エディタで編集された後、翻訳プログラムで翻訳され
る。論理図プログラムの文法的構文の誤りは、翻訳プロ
グラムを実行した段階で、検出することができる。
【0005】
【発明が解決しようとする課題】従来の論理図プログラ
ム用エディタでは、論理図プログラムに記述された命令
の論理的対応関係はチェックすることができたが、論理
図プログラム全体の構文チェックを行うことはできなか
った。また、従来、論理図プログラムの文法的構文の誤
りは、翻訳プログラムを実行して初めて検出することが
できた。
【0006】しかし、翻訳プログラムは非常に大きなも
のであるため、論理図プログラム用エディタと同時に動
作させることは、メモリの大きさに制約の無いシステム
でのみ可能であった。
【0007】また、翻訳時に翻訳する条件を指定する条
件翻訳を含むプログラムでは、実際に翻訳しないと翻訳
する条件が定まらないため、構文チェックをすることが
できなかった。
【0008】上記のように、従来は、メモリの大きさに
制約のあるシステムでは、論理図プログラムの編集段階
で、構文チェックを行うことができず、また、条件翻訳
を含む論理図プログラムは構文チェックができないとい
う問題があった。
【0009】本発明は、上記の点に鑑みてなされたもの
で、大きなメモリを必要とせず、論理図プログラムの編
集段階で、条件翻訳の有無にかかわらず、構文チェック
を行うことができる論理図プログラム用エディタを提供
することを目的とする。
【0010】
【課題を解決するための手段】図1は本発明の原理構成
図を示す。請求項1の発明は、例えば、図1に示すよう
に、入力手段1により入力された論理図プログラムを編
集手段3により編集して、論理図プログラム記憶手段4
に記憶し、論理図プログラムの編集部分を表示手段2に
より表示する論理図プログラム用エディタである。本発
明の論理図プログラムエディタは、論理図プログラムの
構文規則に基づき、複数ある状態の各状態における記述
可能な命令に対応して遷移する状態を示す状態遷移表6
と、前記論理図プログラムの各行の命令により遷移する
状態を前記状態遷移表6に従って求め、遷移可能な状態
の有無により、前記論理図プログラム構文チェックを行
うとともに、構文チェックを行う論理図プログラムが条
件翻訳を含む場合に、条件節の開始時の状態と、条件節
の終了時の状態とを比較し、制約の大きい状態を条件翻
訳終了時の状態として採用する構文チェック手段5とを
有することを特徴とする。
【0011】
【0012】
【0013】
【作用】請求項1の発明では、構文チェック手段5が、
状態遷移表6に従って論理図プログラムの構文チェック
を行う。このため、大きなメモリを必要とせず、論理図
プログラムの編集段階で、構文チェックを行うことがで
きる。また、構文チェック手段5は、論理図プログラム
の条件翻訳に対しては、各条件節の終了時点での状態を
比較して、制約の大きい状態を条件翻訳終了時の状態と
して採用する。このため、条件翻訳の有無にかかわら
ず、構文チェックを行うことができる。
【0014】
【0015】
【0016】
【実施例】図2は本発明の第1実施例の構成図を示す。
第1実施例の論理図プログラム用エディタは、図2に示
すよに、入力手段1であるキーボード等の入力装置1
1、表示手段2である表示装置12、補助記憶装置13
が、入出力制御部14を介してバスライン22に接続さ
れている。
【0017】また、主制御装置15、論理図プログラム
記憶手段4である編集メモリ16、作業メモリ17、メ
モリ18、バスライン22によって接続されている。メ
モリ18には、編集手段3である編集処理部19、構文
チェック手段5である構文チェック処理部20、及び状
態遷移表6が記憶されている。
【0018】次に、図2に示す論理図プログラム用エデ
ィタの概略動作について説明する。図2に示す論理図プ
ログラム用エディタは、メモリ18内の編集処理部19
と構文チェック処理部20からなるプログラムに従っ
て、主制御装置15の制御の下で動作する。
【0019】論理図プログラムは、例えば、作業者によ
り入力装置11から入力されて、編集処理部19によ
り、編集メモリ16に記憶される。編集処理部19は、
入力装置11から作業者により与えられた指示に従っ
て、編集メモリ16内の論理図プログラムを編集する。
なお、作業メモリ17は、論理図プログラムの編集時に
使用される。
【0020】なお、論理図プログラムの編集時に、編集
処理部19は、編集対象部分、及び編集に関連する情報
を表示装置12に表示する。また、補助記憶装置13
は、論理図プログラムの記憶、論理図プログラム用エデ
ィタに関するプログラムの記憶等のために使用する。
【0021】後述する状態遷移表6は、論理図プログラ
ムの構文規則を表現しているものである。論理図プログ
ラムの編集が終了した後に、構文チェック処理部20
が、状態遷移表6に従って、論理図プログラムの構文チ
ェックを行う。この構文チェックの結果、論理図プログ
ラムに構文エラーがある場合は、構文エラーの部分とエ
ラーの種類等の表示を表示装置12により行う。
【0022】なお、編集処理と構文チェック処理の切換
は、例えば、入力装置11から与えられるコマンドによ
り行う。作業者が編集作業を終了した後、構文チェック
を指示するコマンドを入力すると、構文チェック処理部
20が動作して、論理図プログラムの構文チェックが行
われる。
【0023】次に、論理図プログラムの構文規則を表現
する状態遷移表の作成方法について説明する。図3は論
理図プログラムの構文規則の一例の定義図を示す。ま
た、図4は構文チェック対象外の記述を除いた構文規則
の定義図を示し、図5は反復記述の定義を変形した、最
終的な構文規則の定義図を示す。図3〜図5におい
て、:=の左辺は、右辺の一連の記述の名前を定義して
いる。また、:=の右辺は、一連の記述の構成を示して
いる。
【0024】{ }の印は、0回以上の繰り返しを意味
する。また、[ ]の印は省略可能であることを意味す
る。また、|の印はいずれかの選択を意味する。なお、
下線を付けた名前は、論理図プログラムの命令の種別に
対応する名前であり、後述する状態遷移表の行種別の欄
に記載する。
【0025】図3に示すように、プログラムの定義から
始まって、最後の、内部データ定義の定義で構文規則の
定義が終了している。図3で、右辺が順次と記載されて
いる名前は、構文チェック対象外の記述である。この行
の命令種別の順次は、状態変化に影響を与えない。
【0026】図4は、構文チェック対象外である名前を
除いた構文規則の定義図を示している。図4において、
反復記述は、入れ子になるが、反復開始と反復終了は論
理図プログラムでは、必ず対応するので、反復終了の記
述位置の制約を緩めても問題はない。図5は、この反復
記述の入れ子を無くして変形した、最終的な構文規則の
定義図である。
【0027】図6、図7は、上記の構文規則の状態遷移
図への変換の説明図を示す。図6(A)に示す、開始ノ
ードと終了ノードを設けたプログラムの定義から始め
て、順次、図5の定義図に従って、名前を展開してゆ
く。
【0028】図6(B)では、プログラムを展開して、
関数定義を記載している。図6(C)では、図6(B)
の開始ノードと終了ノードが同等であるので、この二つ
のノードを統合して一つのノードとしている。
【0029】図6(D)では、関数定義を展開して、関
数開始、関数終了、データ定義、手続き定義を記載し、
新たなノードを設けている。図6(E)では、データ定
義をデータ部、仮引数開始、仮引数終了に展開し、新た
なノードを設けている。
【0030】図7(A)では、手続き定義を、手続き部
と反復記述に展開している。図7(B)では、反復記述
を、繰り返し、前反復判定、反復終了、データ部、手続
き部に展開して、新たなノードを設けている。図7
(B)の段階で、名前の展開が終了している。図7
(C)では、各状態に対応する各ノードに状態の番号0
〜8を付けて、状態遷移図が完成する。
【0031】なお、原則として、状態番号は、繰り返し
記述ができるものは、元の状態番号に戻り、順序に従っ
て記述するものは、新しい番号が割り当てられる。
【0032】図7(C)では、0〜8の状態と、下線の
付いた命令の種別に対応する名前と、遷移を示す矢印が
記載されている。この状態遷移図では、各状態におい
て、記述可能な行の命令の種別と、その行の命令の種別
に対して遷移する状態を示している。なお、図7
(B),(C)で、点線は、複数の行の命令種別に対応
する遷移を示している。
【0033】図8は、図7(C)の状態遷移図を表形式
に変換した、第1実施例の状態遷移表を示す図である。
図8で、状態の欄には、各状態の番号を記載している。
行種別の欄には、論理プログラムで、構文チェック対称
となる命令の種別に対応する名前を記載している。図8
に示すように、構文チェック対称となる命令の種別は、
関数開始、データ部、手続き部、仮引数開始、仮引数終
了、繰返し、前判定反復、反復終了、関数終了の9種が
ある。
【0034】図8で、状態と行種別の交点には、次に遷
移する状態の番号が記載されている。例えば、状態0と
関数開始の交点は1であり、論理図プログラムで状態0
のとき、関数開始の行がくると、状態が1に遷移するこ
とを意味している。図8の状態遷移表は、図5の論理図
プログラムの構文規則を全て表現しており、この状態遷
移表によって、論理図プログラムの構文チェックを行う
ことができる。
【0035】図8の状態遷移表には、下記(1) 〜(19)に
列挙する構文規則が表現されている。 (1) 関数開始から関数終了の一連は、一つのプログラム
中に記述されなくてもよいし、1回以上の任意の回数記
述されてもよい。 (2) 関数開始と関数終了は、対応していなければならな
い。 (3) 関数開始から関数終了の一連は、入れ子にしてはな
らない。 (4) 関数開始の直後には、データ部を記述することがで
きる。 (5) 関数開始の直後のデータ部は、関数内で高々1回の
み記述できる。 (6) 仮引数開始から仮引数終了は、関数開始直後のデー
タ部に記述できる。データ部の記述が無い場合は、仮引
数宣言部は記述できない。 (7) 仮引数開始と仮引数終了は、対応していなければな
らない。 (8) 仮引数開始と仮引数終了は、関数内で高々1回のみ
記述できる。 (9) 関数開始の直後又は関数開始直後のデータ部の後に
は、手続き部を記述しなければならない。 (10)関数開始の直後又は関数開始直後のデータ部の後
に、手続き部を記述した後は、これと同じレベルに再度
手続き部を記述することはできない。 (11)繰返し、及び前判定反復(以下、合わせて反復と記
す)は、手続き部の後に記述できる。 (12)反復と反復終了は対応していなければならない。 (13)反復から反復終了の一連は、入れ子にすることがで
きる。 (14)反復の直後に、データ部を記述することができる。 (15)反復の直後にデータ部が記述された後、反復と対応
する反復終了までの範囲内の入れ子の反復以外には再度
データ部を記述することはできない。 (16)反復の直後又は反復直後のデータ部の後に、手続き
部を記述することができる。 (17)反復の直後又は反復直後のデータ部の後に、手続き
部が記述された後、反復と対応する反復終了までの範囲
内の入れ子の反復以外では再度手続き部を記述すること
はできない。 (18)反復の後にデータ部、手続き部が共に記述されてい
ない場合、手続き部であるとみなす。 (19)反復から反復終了までの範囲内に入れ子の反復を記
述するときは、手続き部、又は手続き部とみなされる位
置に記述しなければならない。
【0036】次に、第1実施例の構文チェック処理部2
0の処理について説明する。図9は第1実施例の構文チ
ェック処理部20の処理のフローチャートを示す。ま
た、図10は、図9の条件翻訳処理のフローチャートを
示す。
【0037】図11は構文チェック対象の論理図プログ
ラムの一例を示す。また、図12は、図11のプログラ
ムのチェック経過を示す図である。図11は、条件翻訳
を含まない26行からなるプログラムの例である。図1
1の各行に、論理図プログラムの命令が記述されてい
る。図12には、図11の各行の命令の種別に対応する
行の種別、チェック対象行(○印で示す)、チェック後
の状態を示している。図11のプログラム例に沿って、
図9の構文チェック処理の説明をする。
【0038】ステップ30では、遷移状態を初期値の0
とする。ステップ31では、編集メモリ16から論理図
プログラムの1行を取り出す。ステップ32では、取り
出した行がチェック対象行かどうかを判断する。
【0039】ステップ32で、取り出した行がチェック
対象行でないときは、ステップ39に進み、条件翻訳対
象行かどうかを判断する。ステップ39で、条件翻訳対
象行でないときは、ステップ35に進み、最終行かどう
かを判断する。ステップ35で、最終行でないときは、
ステップ31へ戻り、次の行のチェックを続ける。
【0040】図11の01行から07行は、図12に示
すように、行の命令の種別が順次であり、チェック対象
外の行である。このため、01行〜07行では、上記の
ように、ステップ31、ステップ32、ステップ39、
ステップ35を経由して、ステップ31へ戻る。従っ
て、01行〜07行の間、状態は変化せず、0のままで
ある。
【0041】ステップ32で、取り出した行がチェック
対象行のときは、ステップ33に進む。ステップ33で
は、図8の状態遷移表を参照して、現在の状態で、取り
出した行の命令の種別に対する遷移可能な状態があるか
どうかを判断する。ステップ33で、遷移可能な状態が
あるときは、ステップ34で、状態をこの遷移可能な状
態に変更する。ステップ34の次には、ステップ35に
進み、最終行でないときは、ステップ31に戻り、構文
チェックを続ける。
【0042】図11の08行では、行種別が関数開始で
チェック対象行であるので、ステップ32のYESから
ステップ33に進む。ステップ33で、図8の状態遷移
表を参照して、現在の状態0と関数開始の交点から次の
遷移状態1を得る。このため、ステップ34で、現在の
状態を1に変更する。
【0043】また、図11の09行では、行種別がデー
タ部でありチェック対象行であるので、ステップ32の
YESからステップ33に進む。ステップ33で、図8
の状態遷移表を参照して、現在の状態1とデータ部の交
点から次の遷移状態2を得る。このため、ステップ34
で、現在の状態を2に変更する。図11の10行以降の
遷移状態の変化は、図12に示すようになる。
【0044】ステップ35で、最終行のときは、ステッ
プ36に進む。ステップ36では、現在の状態が最終状
態になっているかどうかを判断する。正しく最終状態に
なっているときは、ステップ38に進み、エラー無しの
結果を得る。ステップ38では、エラーが無いことを表
示装置12に表示して、チェック処理を終了する。
【0045】ステップ36で、現在の状態が正しく最終
状態になっていないときは、ステップ37に進み、エラ
ー有りの結果を得る。ステップ37では、構文エラー有
りの結果を得て、表示装置12に、エラーの箇所、エラ
ーの種類等を表示し、処理を終了する。
【0046】図11の最終行の26行では、ステップ3
4にて、状態が0になっているため、ステップ36で
は、正しく最終状態になっていると判断されて、エラー
無しの結果を得て処理を終了する。
【0047】ステップ33で、図8の状態遷移表を参照
して、現在の状態において、取り出した行の種別に対す
る可能な遷移状態が無いときは、構文エラーと判断し、
ステップ37に進み、エラー有りの結果を得て、処理を
終了する。
【0048】図13はエラーのあるプログラムの第1例
を示す。図13の例では、図11のプログラム例から2
6行の終了記号を削除したものである。このプログラム
をチェックする場合、25行までは、図11のプログラ
ムの場合と全く同じ過程でチェックが行われる。
【0049】25行の処理終了後、ステップ35で、最
終行と判断されてステップ36に進む。ステップ36で
は、状態が8で、正しい最終状態ではないため、ステッ
プ37に進み、エラー有りの結果を得て処理を終了す
る。
【0050】図14は、エラーのあるプログラムの第2
例を示す。図14の例では、図11のプログラム例に、
10行のデータ部を追加したものである。このプログラ
ムをチェックする場合、09行までは、図11のプログ
ラムの場合と全く同じ過程でチェックが行われ、09行
のチェック終了時に、状態は2となっている。
【0051】10行のチェック時に、ステップ33で
は、図8の状態遷移表を参照するが、状態2のときの、
行種別のデータ部に対する遷移可能な状態が無く、文法
的に正しくない。このため、ステップ37に進み、エラ
ー有りの結果を得て処理を終了する。
【0052】次に、条件翻訳を含む場合の構文チェック
処理について説明する。図15は、条件翻訳を含む論理
図プログラムの一例である。また、図16は、図15の
プログラムのチェック過程を示す図である。図15のプ
ログラムに沿って図10に示す条件翻訳処理を説明す
る。
【0053】図15のプログラムで、17行、18行、
27行、29行が条件翻訳対象行である。17行が条件
翻訳の開始行であり、29行が条件翻訳の終了行であ
る。図15のプログラムでは、真の条件と偽の条件の2
つの条件があり、18行〜26行が真の条件節で、27
行〜28行が偽の条件節である。
【0054】01行から16行までは、図11のプログ
ラムと同一であり、図9に示す処理により、16行のチ
ェックが終了した時点では、状態は6となっている。
【0055】17行のチェックにおいて、ステップ32
で構文チェック対象行ではないので、ステップ39に進
み、条件翻訳対象行であるので、ステップ40の条件翻
訳処理を実行する。ステップ40の条件翻訳処理は、図
10に示される。
【0056】17行は条件翻訳開始行であるので、ステ
ップ41のYESからステップ48に進む。ステップ4
8では、条件初期状態を現在の状態の6とする。なお、
この条件初期状態は、各条件節の開始時の状態を意味す
る。図15のプログラムでは、真の条件節の開始行であ
る18行、偽の条件節の開始行である27行での状態が
6であることを意味する。
【0057】次のステップ49では、保存状態をクリア
する。この保存状態は、各条件節の終了時点での状態を
保存するためのものである。
【0058】次の18行は、条件翻訳の開始行ではない
ので、ステップ41のNOからステップ42に進む。ま
た、18行は条件節の終了行ではないので、ステップ4
2のNOからステップ46に進む。18行は真の条件節
の開始行であるので、ステップ46のYESからステッ
プ47に進む。ステップ47では、現在の状態を条件初
期状態の6とする。
【0059】次の19行〜26行の処理は、図11のプ
ログラムの17行〜24行の処理と同等であり、26行
のチェック後の状態は8となっている。
【0060】次の27行は、前の条件節(真の条件節)
を終了させるため、ステップ42のYESからステップ
43に進む。この時点で保存状態はクリアされているの
で、ステップ43のYESからステップ45に進む。ス
テップ45では、保存状態を現在の状態と同じ8にす
る。即ち、真の条件節の終了時点での状態を保存状態と
して保存する。
【0061】27行は更に、偽の条件節の開始行である
ので、ステップ46のYESからステップ47に進む。
ステップ47では、現在の状態を条件初期状態6とす
る。これにより、現在の状態が、偽の条件節の開始時の
状態の6に変更される。
【0062】次の28行は、チェック対象外の行で、か
つ、条件翻訳対象外なので、状態を変化させない。この
ため、状態は6のままである。次の29行は、条件節の
終了行なので、ステップ42のYESからステップ43
に進み、保存状態が8に設定されているので、ステップ
44に進む。
【0063】ステップ44では、図8の状態遷移表を参
照して、現在の状態、即ち、偽の条件節の終了時の状態
と、保存状態、即ち、真の条件節の終了時の状態とを比
較して、制約の大きい状態を現在の状態にする。
【0064】図8の状態遷移表において、現在の状態6
と保存状態8とでは、状態8の方が記述できる行の命令
の種類が少ない。これにより、状態8は状態6より制約
が大きいと判断できる。従って、ステップ44では、保
存状態の8を現在の状態とする。
【0065】次の30行、31行は、図11のプログラ
ムの25行、26行と同等であり、31行のとき、図9
のステップ36で、正しく最終状態であると判断され
て、ステップ38でエラー無しの結果を得て、処理を終
了する。
【0066】図17は、条件翻訳を含むエラーのあるプ
ログラムの一例を示す。また、図18は、図17のプロ
グラムのチェック過程を示す図である。
【0067】図17のプログラムで、17行、18行、
19行、22行が条件翻訳対象行である。17行が条件
翻訳の開始行であり、22行が条件翻訳の終了行であ
る。図17のプログラムでは、真の条件と偽の条件の2
つの条件があり、18行が真の条件節(ここでは、内容
が無い空である)で、19行〜21行が偽の条件節であ
る。
【0068】17行〜22行の条件翻訳の部分で、翻訳
時の条件の指定により、真の条件節が選択された場合
は、図11のプログラムと同等になるため、構文エラー
は無い。一方、翻訳時の条件の指定により、偽の条件節
が選択された場合は、20行の手続き部の後に23行の
データ部が記述されるため、構文エラーとなる。上記の
構文エラーのチェック過程を以下に説明する。
【0069】図17のプログラムの01行から16行ま
では、図11のプログラムと同一であり、図9に示す処
理により、16行のチェックが終了した時点では、状態
は6となっている。
【0070】17行のチェックにおいて、ステップ32
で構文チェック対象行ではないので、ステップ39に進
み、条件翻訳対象行であるので、ステップ40の条件翻
訳処理を実行する。
【0071】17行は条件翻訳開始行であるので、ステ
ップ41のYESからステップ48に進み、条件初期状
態を現在の状態の6とする。図17のプログラムでは、
真の条件節の開始行である18行、偽の条件節の開始行
である19行での状態が6であることを意味する。次の
ステップ49では、保存状態をクリアする。
【0072】次の18行は、条件翻訳の開始行ではない
ので、ステップ41のNOからステップ42に進む。ま
た、18行は条件節の終了行ではないので、ステップ4
2のNOからステップ46に進む。18行は真の条件節
の開始行であるので、ステップ46のYESからステッ
プ47に進み、現在の状態を条件初期状態の6とする。
【0073】次の19行は、前の条件節(真の条件節)
を終了させるため、ステップ42のYESからステップ
43に進む。この時点で保存状態はクリアされているの
で、ステップ43のYESからステップ45に進む。ス
テップ45では、保存状態を現在の状態と同じ6にす
る。即ち、真の条件節の終了時点での状態を保存状態と
して保存する。
【0074】19行は更に、偽の条件節の開始行である
ので、ステップ46のYESからステップ47に進み、
現在の状態を条件初期状態6とする。これにより、現在
の状態が、偽の条件節の開始時の状態の6になる。
【0075】次の20行は、チェック対象行で、現在の
状態が6なので、図8の状態遷移表に従って、ステップ
34にて、状態は8に変更される。次の21行は、チェ
ック対象外の行で、かつ、条件翻訳対象外なので、状態
を変化させない。このため、状態は8のままである。
【0076】次の22行は、条件節の終了行なので、ス
テップ42のYESからステップ43に進み、保存状態
が6に設定されているので、ステップ44に進む。ステ
ップ44では、図8の状態遷移表を参照して、現在の状
態、即ち、偽の条件節の終了時の状態と、保存状態、即
ち、真の条件節の終了時の状態とを比較して、制約の大
きい状態を現在の状態にする。
【0077】図8の状態遷移表において、現在の状態8
と保存状態6とでは、状態8の方が記述できる行の命令
の種類が少ない。これにより、状態8は状態6より制約
が大きいと判断できる。従って、ステップ44では、現
在の状態の8を選択し、状態は8のままとする。
【0078】次の23行は、チェック対象行で、図9の
ステップ33にて、図8の状態遷移表を参照するが、状
態8のときには、行の命令の種別のデータ部に対する遷
移可能な状態は存在しない。このため、ステップ33の
NOからステップ37へ進み、構文エラー有りの結果を
得て、処理を終了する。
【0079】上記のように、第1実施例では、構文チェ
ック処理部20が、構文規則を表現する状態遷移表に従
って、論理図プログラムの構文チェックを行うため、論
理図プログラムの編集段階で、確実に構文チェックを行
うことができる。
【0080】また、構文チェック処理部20は、論理図
プログラムの条件翻訳に対しては、各条件節の終了時点
での状態を比較して、制約の大きい状態を条件翻訳終了
時の状態として採用するため、条件翻訳の有無にかかわ
らず、構文チェックを行うことができる。
【0081】また、構文チェック処理部20は処理が簡
単であるため、大きなメモリを必要とせず、メモリの大
きさに制約のあるシステムでも本実施例のエディタは適
用できる。
【0082】図19は、本発明の第2実施例のエディタ
の構文チェック手順を示すフローチャートを示す。第2
実施例の構成図は、図2の第1実施例の構成図と同じで
ある。第2実施例において、編集手段3である編集処理
部19は、図19のステップ51の編集処理に相当す
る。また、構文チェック手段である構文チェック処理部
20は、図19のステップ52〜ステップ55に相当す
る。
【0083】図20は、構文エラーの有る場合の表示装
置12での表示例を示す。また、図21は、図20の構
文エラーを修正後の表示装置12での表示例を示す。こ
こで、図20、図21に沿って第2実施例の構文チェッ
ク手順について説明する。
【0084】図19で、ステップ51では、論理図プロ
グラムの各行の入力処理、編集処理を行う。作業者によ
り、行の先頭から行が入力されて、予め定めた所定単位
の行の入力が確定した時点で、編集処理51は、処理を
自動的に終了して、ステップ52〜ステップ55の構文
チェック処理に進む。
【0085】入力が確定する所定単位の行としては、例
えば、行の先頭から関数終了の行までとする。図20の
例では、01行から14行まで入力し終わった時点で、
編集処理51は終了して、構文チェック処理に進む。
【0086】所定単位の行の入力が確定した後、次の、
ステップ52に進む。構文チェック処理では、構文エラ
ーが有ったときは、ステップ55にて、表示装置12上
で構文エラーのある行を強調して表示する。このため、
ステップ52では、前回の構文チェックで検出した構文
エラーに対して行った強調表示を、一端クリアする。
【0087】次のステップ53では、ステップ51で行
の入力が確定した論理図プログラムに対して、構文チェ
ックを行う。ステップ53での構文チェック処理は、第
1実施例で説明した図9,図10の処理と同等の処理で
ある。ただし、図9のステップ37,ステップ38に相
当するステップでは、エラー有り、エラー無しのデータ
を得るだけで、表示装置12上でエラーの表示は行わな
い。
【0088】次のステップ54では、ステップ53で得
たエラーの有無のデータを調べて、エラーが無かったと
きは、なにもせずに処理を終了する。一方、エラーが有
ったときは、ステップ55に進む。ステップ55では、
表示装置12上で、構文エラーの有る行を強調表示し、
また、構文エラーの種類等を表示する。ステップ55の
後、処理を終了する。
【0089】図20の例では、08行と09行の間にあ
るべきデータ部が無いため、ステップ53で09行が構
文エラーと判断されて、ステップ54のYESからステ
ップ55へ進み、09行が強調表示される。
【0090】図19の処理が終了した後、再び、ステッ
プ51の編集処理から処理を開始する。このため、作業
者は、所定単位の行の入力ごとに、エラーがあったとき
は、強調表示された行を確認して、直ぐに修正の作業を
行うことができる。
【0091】図21は、図20で、09行がエラーで強
調表示された後、09行にデータ部を記述した場合の表
示を示している。この場合、09行のデータ部の記述が
確定すると、ステップ51の編集処理が終了して、再び
ステップ52〜ステップ55の構文チェック処理が行わ
れる。
【0092】今回の構文チェック処理では、09行にデ
ータ部を記述して構文エラーが無くなっている。このた
め、ステップ53のチェック処理の結果、エラー無しの
データを得て、ステップ55の強調表示をしないで、処
理を終了する。このとき、ステップ52でエラーを示す
強調表示をクリアしているので、表示装置12上では、
エラーを示す強調表示が無くなっており、作業者は、構
文エラーが無くなったことを確認することができる。
【0093】上記のように、第2実施例では、所定単位
の行の入力が確定するごとに、自動的に構文チェックが
行われ、表示装置上にエラー位置が強調表示される。こ
のため、論理図プログラムの入力段階で発生した構文エ
ラーを、エラー発生のすぐ後に確認することができ、構
文エラーの訂正作業の効率を高めることができる。な
お、入力する行の所定単位を1行として、1行入力する
ごとに構文チェックを行う構成としても良いことは勿論
である。
【0094】
【発明の効果】本発明では、構文チェック手段5が、状
態遷移表6に従って論理図プログラムの構文チェックを
行う。このため、大きなメモリを必要とせず、論理図プ
ログラムの編集段階で、構文チェックを行うことがで
き、また、構文チェック手段5は、論理図プログラムの
条件翻訳に対しては、各条件節の終了時点での状態を比
較して、制約の大きい状態を条件翻訳終了時の状態とし
て採用することにより、条件翻訳の有無にかかわらず、
構文チェックを行うことができる等の特長を有する。
【0095】
【0096】
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】本発明の第1実施例の構成図である。
【図3】構文規則の一例の定義図である。
【図4】チェック対象外を除いた構文規則の一例の定義
図である。
【図5】最終的な構文規則の定義図である。
【図6】構文規則の状態遷移図への変換の説明図であ
る。
【図7】構文規則の状態遷移図への変換の説明図であ
る。
【図8】本発明の第1実施例の状態遷移表を示す図であ
る。
【図9】第1実施例の構文チェック処理部のフローチャ
ートである。
【図10】条件翻訳処理のフローチャートである。
【図11】構文チェック対象の論理図プログラムの一例
を示す図である。
【図12】図11のプログラムのチェック過程を示す図
である。
【図13】エラーのあるプログラムの第1例を示す図で
ある。
【図14】エラーのあるプログラムの第2例を示す図で
ある。
【図15】条件翻訳を含むプログラムの一例を示す図で
ある。
【図16】図15のプログラムのチェック過程を示す図
である。
【図17】条件翻訳を含むエラーのあるプログラムの一
例を示す図である。
【図18】図17のプログラムのチェック過程を示す図
である。
【図19】本発明の第2実施例の構文チェック手順を示
すフローチャートである。
【図20】構文エラーのある場合の表示例を示す図であ
る。
【図21】構文エラーを修正後の表示例を示す図であ
る。
【符号の説明】
1 入力手段 2 表示手段 3 編集手段 4 論理図プログラム記憶手段 5 構文チェック手段 6 状態遷移表 11 入力装置 12 表示装置 13 補助記憶装置 14 入出力制御部 15 主制御装置 16 編集メモリ 17 作業メモリ 18 メモリ 19 編集処理部 20 構文チェック処理部
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平3−271828(JP,A) 情報処理学会第33回(昭和61年後期) 全国大会講演論文集,p.781−782 インターフェース,CQ出版社,1989 −3,第15巻第3号(no.142),p. 171−173 (58)調査した分野(Int.Cl.7,DB名) G06F 9/06 - 9/44

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 論理図プログラムの構文規則に基づき、
    複数ある状態の各状態における記述可能な命令に対応し
    て遷移する状態を示す状態遷移表と、 前記論理図プログラムの各行の命令により遷移する状態
    を前記状態遷移表に従って求め、遷移可能な状態の有無
    により、前記論理図プログラム構文チェックを行うとと
    もに、構文チェックを行う論理図プログラムが条件翻訳
    を含む場合に、条件節の開始時の状態と、条件節の終了
    時の状態とを比較し、制約の大きい状態を条件翻訳終了
    時の状態として採用する構文チェック手段とを有するこ
    とを特徴とする論理プログラム用エディタ。
JP34702092A 1992-12-25 1992-12-25 論理図プログラム用エディタ Expired - Fee Related JP3270777B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP34702092A JP3270777B2 (ja) 1992-12-25 1992-12-25 論理図プログラム用エディタ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP34702092A JP3270777B2 (ja) 1992-12-25 1992-12-25 論理図プログラム用エディタ

Publications (2)

Publication Number Publication Date
JPH06195215A JPH06195215A (ja) 1994-07-15
JP3270777B2 true JP3270777B2 (ja) 2002-04-02

Family

ID=18387381

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34702092A Expired - Fee Related JP3270777B2 (ja) 1992-12-25 1992-12-25 論理図プログラム用エディタ

Country Status (1)

Country Link
JP (1) JP3270777B2 (ja)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
インターフェース,CQ出版社,1989−3,第15巻第3号(no.142),p.171−173
情報処理学会第33回(昭和61年後期)全国大会講演論文集,p.781−782

Also Published As

Publication number Publication date
JPH06195215A (ja) 1994-07-15

Similar Documents

Publication Publication Date Title
JP2862886B2 (ja) Asic用計算機支援設計システム
US6888542B1 (en) Error recovery in a computer aided design environment
JPH02109127A (ja) 仕様処理方法
JP2008140410A (ja) コンピュータプログラムを発生する方法及びシステム
JPS6365965B2 (ja)
JP2000155859A (ja) 数値解析用メッシュ生成方法およびメッシュ生成装置
JP3270777B2 (ja) 論理図プログラム用エディタ
JP2002024337A (ja) リスク解析支援方法および記憶媒体
JP2875135B2 (ja) プログラマブルコントローラ用プログラム装置
JP3102222B2 (ja) 知識獲得方法及びその実施装置
JP2579996B2 (ja) 炉心状態予測装置
JP3696906B2 (ja) データ入力方法及びその装置
JP3456084B2 (ja) Cadシステムにおけるリファレンス参照方法
JP2002149725A (ja) 3次元展開データ作成装置及び3次元展開データ作成方法
US20050273329A1 (en) Speech recognition grammar creating apparatus, speech recognition grammar creating method, program for implementing the method, and storage medium storing the program
JP3215210B2 (ja) ハードウェア設計支援システム
JP3145323B2 (ja) ビア自動発生方法およびビア自動発生システム
JP2937381B2 (ja) 集積回路の設計方法及び設計装置
JPH01108670A (ja) 数式入力編集方式
JPH1153411A (ja) 回路図エディタ
JPH06243168A (ja) パターン探索装置
JPS63137451A (ja) Cadシステム
JP2908184B2 (ja) テキストファイル編集方法及び装置
JPH05341765A (ja) 文字パターン作成方式
JP2007323371A (ja) データマッピング方法、および、データマッピング装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20020108

LAPS Cancellation because of no payment of annual fees