JP3240647B2 - コンピュータ言語の構造化処理方式 - Google Patents

コンピュータ言語の構造化処理方式

Info

Publication number
JP3240647B2
JP3240647B2 JP31122391A JP31122391A JP3240647B2 JP 3240647 B2 JP3240647 B2 JP 3240647B2 JP 31122391 A JP31122391 A JP 31122391A JP 31122391 A JP31122391 A JP 31122391A JP 3240647 B2 JP3240647 B2 JP 3240647B2
Authority
JP
Japan
Prior art keywords
statement
processing
index
language
sentence
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
JP31122391A
Other languages
English (en)
Other versions
JPH05150999A (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.)
Meidensha Corp
Original Assignee
Meidensha 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 Meidensha Corp filed Critical Meidensha Corp
Priority to JP31122391A priority Critical patent/JP3240647B2/ja
Publication of JPH05150999A publication Critical patent/JPH05150999A/ja
Application granted granted Critical
Publication of JP3240647B2 publication Critical patent/JP3240647B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、工業用コンピュータの
リアルタイム・プログラミング言語の構造化処理方式に
関し、特に、ブロック構造文を支援する構造化処理方式
に関する。
【0002】
【従来の技術】工業用コンピュータのプログラムは、製
作者が設計し易いようにリアルタイムBASIC等の高
級言語で書かれることが多い。しかし、コンピュータが
実際に理解し、実行できるのは機械語なので、高級言語
によるプログラムは、インタープリータで逐語訳しなが
ら実行処理するか、コンパイラで一旦まとめ訳したのち
実行処理するかのいずれかを行うことになる。但し、近
年は、インタープリータとコンパイラ両方式の長所を持
ち作業効率を考慮して1行ずつ処理する1ラインコンパ
イル方式を採用するケースが一般的である。一方、プロ
グラムは、BASICの場合、“IF〜THEN〜EN
D IF”,“DO〜LOOP”,“SELECT〜E
ND SELECT”の如く“〜”に相当する条件設定
と実行内容の部分をブロック構造化し、所定のエリアに
格納しておいて実行処理の際に検索する文体と、“GO
TO ○○○”の如く実行内容を書き込んだ非ブロック
構造文の行番号“○○○”を指定して、その行番号へジ
ャンプさせる文体とがあり、通常はそれらが混交して使
用されている。
【0003】
【課題を解決するための手段】高級言語で記述されたプ
ログラムにおける条件設定から実行内容までをブロック
構造化してブロック構造エリアに格納し、インタプリタ
方式あるいはコンパイル方式にてプログラム言語の処理
を実行するものにおいて、前記プログラム言語処理実行
用として次行を指定するテーブルと実際のプログラムを
指定するテーブルとでなるテーブル構造エリアと、ブロ
ック構造エリアとを有し、前記プログラム言語処理実行
時にブロック構造化の文であるか否かを判断し、否時に
はインタプリトまたは1ラインコンパイル単位にて処理
実行する単位実行手段と、前記処理実行文がブロック構
造文時には当該文が先頭か同一ネストレベルか或いは末
尾かを判断し、先頭文時には当該ブロック構造文の種類
が繰り返し,条件判定,或いは分岐条件かの種類に応じ
てプログラム言語処理する第1の処理手段と、前記ブロ
ック構造化文が同一ネストレベルの場合には当該文の前
記種類に応じてプログラム言語処理を実行する第2の処
理手段と、前記ブロック構造化文が末尾時には当該文の
前記種類に応じてプログラム言語処理を実行する第3の
処理手段とを備え、前記単位実行手段および第1,2,
3の処理手段による各処理実行後に次行を示すインデッ
クスポインタによりセットするようにしたことを特徴と
するコンピュータ言語の構造化処理方式。
【0004】
【課題を解決するための手段】条件設定から実行内容ま
でをブロック構造化して高級言語で記述されたプログラ
ムをインタプリタ方式あるいはコンパイル方式にてプロ
グラム言語にて処理を実行するものにおいて、前記プロ
グラム言語処理実行用として次回に実行する高級言語の
各行を指定する次回行インデックステーブルと、その高
級言語を機械語に翻訳する過程での中間言語インデック
ステーブルと、実行処理に使用される機械語インデック
ステーブルと、今回行インデックスポインタ及び次回行
インデックスポインタと、繰り返し文,条件判定文,及
び分岐文に種別されたブロック構造文用の構造テーブル
を設け、且つ、前記プログラム言語処理実行時にブロッ
ク構造化の文であるか否かを判断し、否時にはインタプ
リトまたは1ラインコンパイル単位にて処理実行する単
位実行手段と、ブロック構造文と判断された当該文の先
頭時には同一ネストレベルか或いは末尾かを判断し、先
頭時には当該ブロック構造文の種類が繰り返し,条件判
定,或いは分岐条件かの種類に応じてプログラム言語処
理する第1の処理手段と、前記ブロック構造化文が同一
ネストレベルの場合には当該文が繰り返し文時にはブロ
ック最終行の次の行インデックスを次回行インデックポ
インタに入れ、条件判定文時で判定結果“真”の場合に
は制御を次行に移行し、“偽”の場合には同一ネストレ
ベルのブロック構造文又はその最終行のインデックスを
次回行インデックスポインタにセットすると共に、当該
文が分岐文時には前記処理結果を満足するか否かを判断
し、満足の場合には制御を次行に移行し、不満足時は同
一ネストレベルのブロック構造文又は最終行のインデッ
クスを次回行インデックスポインタにセットする第2の
処理手段と、前記ブロック構造化文が末尾時には当該文
の前記種類に応じてプログラム言語処理を実行する第3
の処理手段とを備え、前記単位実行手段および第1,
2,3の処理手段による各処理実行後に次行を示すイン
デックスポインタによりセットするようにしたことを特
徴とするコンピュータ言語の構造化処理方式である。
【0005】
【作用】本発明は、工業用コンピュータでプログラムの
実行制御のためテーブル構造のエリアとそのポインタを
用意するもので、そのエリアは次行を指定するテーブル
と実際のプログラム(中間言語又は機械語)を指定する
テーブルとで成る。同様に、テーブル構造のエリア及び
ポインタはブロック構造文のためにも用意され、ブロッ
ク構造文に制御が移行すると、ブロック構造の先頭,内
部,末尾等の位置に応じて、それらのエリア及びポイン
タを操作し、次の行に制御を移行する場合は次行を指定
するテーブルを操作する。次行の位置を特に調査する必
要はない。ブロック構造の同一ネストレベル又は末尾に
相当するブロック構造文を発見した場合は、次行を指し
ているテーブルと各行の中間言語を指しているテーブル
とを操作して高速に検索する。
【0006】
【実施例】以下、図面を参照して、本発明の実施例を詳
細に説明する。図1は、本発明の一実施例の説明図であ
る。同図において、1は今回行インデックスポインタ、
2は次回行インデックスポインタである。本発明では、
プログラム制御のために、次回行インデックステーブル
3、中間言語インデックステーブル4、機械語インデッ
クステーブル5を備え、そのテーブル位置を指定するた
めに、前記ポインタ1及び2を操作する。プログラムの
入力時には、入力順に各テーブル3,4,5に値をセッ
トする。また、それらのテーブル4,5が指定する中間
言語エリア6及び機械語エリア7に該当するプログラム
コードをセットする。但し、中間言語エリア6の各エリ
アの先頭には、各文の分類コードをセットする。プログ
ラムの実行時には、最初にインデックスポインタ1及び
2に初期値を入力する。今回行インデックスポインタ1
の初期値は“0”でよく、次回行インデックスポインタ
2は次回行インデックステーブル3の“0番目”を指す
ようにしておく。次に、該当する文がブロック構造化の
対象分であるか否かを判定する。ブロック構造文でなけ
れば該当文を実行し、後記するポインタ更新処理を行
う。ブロック構造文に対しては、図2に示すネストポイ
ンタ(STP)21及び構造テーブル22が用意され、
ネストポインタ21が該構造テーブル22の位置を指示
する。制御がブロック構造文の先頭に掛かると、前記ネ
ストポインタ21を“+1”進めて、構造テーブル22
のTYP欄にブロック構造文の種別を入力する。
【0007】ここで、ブロック構造文の種別は、下記の
通りである。
【0008】(1)繰り返し文;先頭は“DO”文,
“DO WHILE”文又は“DO UNTIL”文で
開始し、途中の同一ネストレベル文は“EXIT D
O”文が相当し、末尾は“LOOP”文,“LOOP
WHILE”文又は“LOOP UNTIL”文で終了
する。
【0009】(2)条件判定文;先頭は“IF〜THE
N”文で開始し、同一ネストレベル文は“ELSE”文
又は“ELSE IF”文で、末尾は“END IF”
文で終了する。
【0010】(3)分岐文;先頭は“SELECT C
ASE”文で開始し、同一ネストレベル文は“CAS
E”文が相当し、末尾は“END SELECT”文で
終了する。
【0011】図3は、実施例の実行処理のフローチャー
トである。同図において、ブロック構造文の先頭に掛か
ると、文の種類に応じて第1の処理を行う。文が繰り返
し文の場合には、そのまま現在位置にセーブし、その位
置を前記構造テーブル22のIND欄に登録する。条件
判定文の場合は、その判定結果を構造テーブル22のF
LG欄に“1”を入力する。分岐文の場合は、その分岐
条件となる演算結果のデータの型を構造テーブル22の
TYP欄に入力し、実際のデータのDAT欄に入力する
か、又はPTR欄のポインタを操作する。ブロック構造
文の先頭の処理は、文が無条件の繰り返し文の場合には
何も行わず制御を次行に移行する。条件判定がある場合
は判定を行い、その結果によっては次回行インデックス
ポインタ2を操作して同一ネストレベルブロックの最終
行の次の行に制御を移行することもある。この場合、ネ
ストポインタ21は“−1”戻しておく。文が条件判定
文で判定結果が“真”の場合には、何も行わず制御を次
行に移行する。判定結果が“偽”の場合には、同一ネス
トレベルのブロック構造文又はその最終行のインデック
スを次回行インデックスポインタ2へ入れる。文が分岐
文の場合には、何も行わず制御を次行に移行する。図3
において、同一ネストレベルブロック構造文の処理は、
文の種類に応じて第2の処理を行う。繰り返し文の場合
は、繰り返しからの脱出文のみで、ネストポインタ21
を“−1”戻し、ブロックの最終行の次の行のインデッ
クスを次回行インデックスポインタ2に入れる。条件判
定文の同一ネストレベルブロック構造文の場合、条件判
定を含む文であれば条件判定を行い、その結果を構造テ
ーブル22のFLG欄に入力する。判定結果が“真”の
場合には何も行わず制御を次の行に移行する。判定結果
が“偽”の場合には同一ネストレベルのブロック構造文
又はその最終行のインデックスを次回行インデックスポ
インタ2へセットする。条件判定を含まない文であれ
ば、“真”の場合と同様に何も行わず制御を次の行に移
行する。文が分岐文の場合は、構造デーブル22上の演
算結果を満足するかどうか判断し、満足する場合には何
も行わず制御を次行に移行する。結果が不満足の場合に
は同一ネストレベルのブロック構造文又はその最終行の
インデックスを次回行インデックスポインタ2にセット
する。無条件の分岐文の場合は、何も行わず、制御を次
行に移行する。図3において、ブロックの最終行即ち末
尾であるときの処理は、文の種類に応じて第3の処理を
行う。無条件の繰り返し文の場合は、構造テーブル22
のインデックスポインタの指定先を次回行インデックス
ポインタ2にセットする。条件判定がある場合は判定を
行い、その判定結果に応じて、構造テーブル22のイン
デックスポインタの指定先を次回行インデックスポイン
タ2にセットするか、もしくは何も行わず制御を次行へ
移行する。この場合、ネストポインタ21は、“−1”
戻しておく。文が条件判定文の場合には、ネストポイン
タ21を“−1”戻し、何も行わずに制御を次行へ移項
する。文が分岐文の場合にも、ネストポインタ21を
“−1”戻し、何も行わずに制御を次行に移行する。
尚、今回行インデックスポインタ1及び次回行インデッ
クスポインタ2は、下記の如く更新する。即ち、 (1)次回行インデックスポインタ2の旧内容を今回行
インデックスポインタ1の新内容としてセットする。
【0012】(2)次回行インデックステーブル3の次
回行を次回行インデックスポインタ2の新内容としてセ
ットする。
【0013】として、今回行インデックスポインタ1の
新内容がブログラムの最終行であるか否かを確認し、最
終行でなければフローを反復し、最終行であればプログ
ラムを終了する。
【0014】本実施例は下記の効果が明らかである。
【0015】(1)ブロック構造文をインタープリート
又は1ラインコンパイルするプログラミング言語で、高
速処理が可能になる。
【0016】(2)インタープリータ方式や1ラインコ
ンパイル方式の利点である修正や追加後の即時実行が可
能であり、行単位にプログラムを停止/再開しながらデ
バッグも可能である。
【0017】(3)従来においてはブロック構造文と判
断されたとき、制御を移す先(分岐先)を検索する必要
があり、この検索に時間がかかっていたが、本発明では
文による処理を行い、次行を示すインデックスポインタ
から処理を継続するようにしたものであるから、次の行
への制御及び該当するブロック構造文への制御が容易か
つ高速に可能となる
【0018】
【発明の効果】以上、説明したとおり、本発明によれ
ば、インタープリータ方式又は1ラインコンパイル方式
のプログラミング言語でも高速処理を可能にし、それら
の利点を生かしながら、次行及び該当構造文への制御を
容易かつ高速にするコンピュータ言語の構造化処理方式
を提供することができる。
【図面の簡単な説明】
【図1】本発明の一実施例の説明図。
【図2】実施例のポインタ及び構造テーブルの説明図。
【図3】実施例の実行処理のフローチャート。
【図4】従来例の実行処理のフローチャート。
【図5】従来例の実行処理のフローチャート。
【符号の説明】
1…今回行インデックスポインタ、2…次回行インデッ
クスポインタ、3…次回行インデックステーブル、4…
中間言語インデックステーブル、5…機械語インデック
ステーブル、6…中間言語エリア、7…機械語エリア、
21…ネストポインタ、22…構造テーブル。
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 9/44

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 条件設定から実行内容までをブロック構
    造化し高級言語で記述されたプログラムをインタプリタ
    方式あるいはコンパイル方式にてプログラム言語処理を
    実行するものにおいて、 前記プログラム言語処理実行用として次回に実行する高
    級言語の各行を指定する次回行インデックステーブル
    と、その高級言語を機械語に翻訳する過程での中間言語
    インデックステーブルと、実行処理に使用される機械語
    インデックステーブルと、今回行インデックスポインタ
    及び次回行インデックスポインタと、繰り返し文,条件
    判定文,及び分岐文に種別されたブロック構造文用の構
    造テーブルを設け、 且つ、前記プログラム言語処理実行時にブロック構造化
    の文であるか否かを判断し、否時にはインタプリトまた
    は1ラインコンパイル単位にて処理実行する単位実行手
    段と、 ブロック構造文と判断された当該文の先頭時には同一ネ
    ストレベルか或いは末尾かを判断し、先頭時には当該ブ
    ロック構造文の種類が繰り返し,条件判定,或いは分岐
    条件かの種類に応じてプログラム言語処理する第1の処
    理手段と、 前記ブロック構造化文が同一ネストレベルの場合には当
    該文が繰り返し文時にはブロック最終行の次の行インデ
    ックスを次回行インデックポインタに入れ、条件判定文
    時で判定結果“真”の場合には制御を次行に移行し、
    “偽”の場合には同一ネストレベルのブロック構造文又
    はその最終行のインデックスを次回行インデックスポイ
    ンタにセットすると共に、当該文が分岐文時には前記処
    理結果を満足するか否かを判断し、満足の場合には制御
    を次行に移行し、不満足時は同一ネストレベルのブロッ
    ク構造文又は最終行のインデックスを次回行インデック
    スポインタにセットする 第2の処理手段と、 前記ブロック構造化文が末尾時には当該文の前記種類に
    応じてプログラム言語処理を実行する第3の処理手段と
    を備え、 前記単位実行手段および第1,2,3の処理手段による
    各処理実行後に次行を示すインデックスポインタにより
    セットするようにしたことを特徴とするコンピュータ言
    語の構造化処理方式。
JP31122391A 1991-11-27 1991-11-27 コンピュータ言語の構造化処理方式 Expired - Fee Related JP3240647B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31122391A JP3240647B2 (ja) 1991-11-27 1991-11-27 コンピュータ言語の構造化処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31122391A JP3240647B2 (ja) 1991-11-27 1991-11-27 コンピュータ言語の構造化処理方式

Publications (2)

Publication Number Publication Date
JPH05150999A JPH05150999A (ja) 1993-06-18
JP3240647B2 true JP3240647B2 (ja) 2001-12-17

Family

ID=18014581

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31122391A Expired - Fee Related JP3240647B2 (ja) 1991-11-27 1991-11-27 コンピュータ言語の構造化処理方式

Country Status (1)

Country Link
JP (1) JP3240647B2 (ja)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
「OMRON TECHNICS」Vol.31,No.3(1991−9)P.85−90
「情報処理学会第30回(昭和63年前期)全国大会講演論文集」P.455−456

Also Published As

Publication number Publication date
JPH05150999A (ja) 1993-06-18

Similar Documents

Publication Publication Date Title
EP0142735B1 (en) Table driven translator
US7571427B2 (en) Methods for comparing versions of a program
JPH07141201A (ja) 2パスコンパイラのための改良された方法
US5136698A (en) Method for selective back-tracking in a hierarchical system containing a flag which indicates the validity of a choice-point
JP3240647B2 (ja) コンピュータ言語の構造化処理方式
Mossin Partial evaluation of general parsers
Barnard et al. Hierarchic syntax error repair for LR grammars
JPS6149209A (ja) 数値制御装置におけるプログラム実行方式
JPS5846439A (ja) 計算機のプログラム編集方法
JP2607975B2 (ja) デバック方式
JPH04252336A (ja) プログラム最適化処理装置
JPH05108372A (ja) コンパイラ最適化処理内容の出力方式
JPH01111236A (ja) 計算機
JPS63132335A (ja) 計算機言語処理系の実行方式
Oates Dyadic execute
JPH0644101A (ja) プログラムデバッグ処理方法
JPH02171832A (ja) データチェック方式
JPH02231638A (ja) オブジエクト指向データベース管理システムにおけるメツセージ処理方法
JPH03150667A (ja) 文字列検索方式
JPH0950429A (ja) コンパイラにおけるポインタベクトル化システム
JPS6367693B2 (ja)
JPH0690669B2 (ja) 文字列操作系命令コンパイル処理方式
Lichtman Analytical differentiation by computer using a Symmetrical List Processor
JPH0778100A (ja) データ変換処理装置
JPS61123904A (ja) 論理演算装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071019

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081019

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees