JPH0117175B2 - - Google Patents

Info

Publication number
JPH0117175B2
JPH0117175B2 JP57049458A JP4945882A JPH0117175B2 JP H0117175 B2 JPH0117175 B2 JP H0117175B2 JP 57049458 A JP57049458 A JP 57049458A JP 4945882 A JP4945882 A JP 4945882A JP H0117175 B2 JPH0117175 B2 JP H0117175B2
Authority
JP
Japan
Prior art keywords
logical
logical operation
creation unit
variable
operation expression
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
Application number
JP57049458A
Other languages
English (en)
Other versions
JPS58166443A (ja
Inventor
Fumio Sugimoto
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 JP57049458A priority Critical patent/JPS58166443A/ja
Publication of JPS58166443A publication Critical patent/JPS58166443A/ja
Publication of JPH0117175B2 publication Critical patent/JPH0117175B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 発明の技術分野 本発明は、データ処理システムにおける論理演
算制御方式に関し、特に論理演算式の演算処理に
おいて、演算式の特性を評価して、演算途中の結
果により常時最終結果を予測し、可能な場合に、
シヨートカツトして最終結果を得るように、最適
演算制御を行なう論理演算制御方式に関する。
技術の背景 一般に、データ処理システムにおいては、どの
ように複雑な論理演算式であつても、2項の
ANDおよびOR演算の複合演算形に還元し、それ
ら各ANDおよびOR演算を逐次的に実行して処理
する方法がとられている。
このような論理演算においては、演算処理対象
の2個の論理変数のうちの一方の値によつては、
他方の論理変数の値の評価をまたずに、結果が確
定する場合がある。
従来、論理演算子の&(AND)と!(OR)に
対する左辺、右辺の評価方法としては、 (i) e≡e1&e2の場合 e1が真の時−更にe2の評価必要 e1が偽の時−偽成立と解釈 e1が真でe2が真の時−真成立と解釈 e1が真でe2が偽の時−偽成立と解釈 (ii) e≡e1!e2の場合 e1が真の時−真成立と解釈 e1が偽の時−更にe2の評価必要 e1が偽でe2が真の時−真成立と解釈 e1が偽でe2が偽の時―偽成立と解釈 として、論理演算式の中に論理演算子が複数個出
現した場合にも、それらをei&ejあるいはei!ej
形式に直して、上記の基本パターンのいずれかを
適用する評価を繰返し、演算処理を行なつてい
た。
このような手法は、PL/IやCOBOL等のコン
パイラにおいて、常に論理演算子の1個に対して
適用されているが、論理演算子がn個縦続して出
現すると、n回の評価をしなければならなかつ
た。
発明の目的および構成 本発明は、複数個の論理演算子が出現する論理
演算式の演算処理において、評価回数を減少さ
せ、更に評価順序を変更する括弧が存在する場合
にも、評価回数を減少させることが可能な演算制
御方式を提供することを目的とする。
本発明は、そのための構成として任意の論理演
算式を2項のANDおよびORの基本論理演算の組
合せに還元し、該基本論理演算を逐次的ステツプ
により実行し、演算処理を行なう論理演算処理シ
ステムにおいて、 第1テーブル作成部2と、第1テーブル作成部
2により作成されて論理演算式の構成を示す情報
を保持する第1テーブルW1と、第2テーブル作
成部7と、第2テーブル作成部7により作成され
て論理演算式全体の演算処理の実行を管理する情
報を保持する第2テーブルW2と、演算処理部8
とをそなえ、 第1テーブル作成部2は、論理演算式を解析
し、上記論理演算式の構成を示す情報として、論
理演算式中の論理変数の総数、該論理変数の各々
に作用する論理演算子、入れ子構造のレベル、お
よび各論理変数ごとの第2テーブルW2中の関連
情報へのポインタ、を構成要素とする第1テーブ
ルW1を作成し、 第2テーブル作成部7は、第1テーブルW1
解析し、一つの論理変数の評価の結果次に実行す
べき基本論理演算のステツプを、該論理変数に作
用する論理演算子の種類および入れ子構造のレベ
ルにしたがつて評価回数が最少となるステツプを
判定して決定するとともに、上記論理演算式全体
の実行を管理する情報として、各論理変数の内
容、および上記論理変数が真か偽かの論理評価の
結果次に実行すべき基本論理演算のステツプを指
定するポインタ、を構成要素とする第2テーブル
W2を作成し、 演算処理部8は、第2テーブルW2の情報に基
づいて論理演算式の各論理変数の評価を逐次的に
実行することを特徴としている。
発明の実施例 以下に、本発明を実施例にしたがつて詳述す
る。
第1図は、本発明実施例において使用される論
理演算制御の基本パターンを示す。同図aは、論
理演算子&のみによつて結合された論理演算式 e1&e2&e3&……&eo についての制御基本パターンを示し、実線は真の
逐次的評価ルート、点線は偽のシヨートカツト、
ルートの制御の流れを表わす。図において、はじ
めにe1を評価し、真であれば更にe2の評価を行な
う真の逐次的評価ルートをとり、偽であれば、残
りのe2乃至eoの評価をまたずに偽の結果が確定す
るので、偽のシヨートカツト・ルートをとる。
e1,e2,……と論理変数が真である限り同様な評
価が繰り返され、最初に偽が出現した論理変数位
置から、偽のシヨートカツト・ルートへ移る。
第2図bは、論理演算子!のみによつて結合さ
れた論理演算式 e1!e2!e3……!eo についての制御基本パターンを示す。図におい
て、実線は真のシヨートカツト・ルート、点線は
逐次的評価ルートの制御の流れを表わす。はじめ
にe1を評価し、それが真であれば、後のe2乃至eo
の評価をまつまでもなく、演算式の真が確定す
る。e1が偽の場合には、e2の評価を行ない、それ
が真であればシヨートカツト・ルートへ、偽であ
れば逐次的評価ルートでe3の評価へ移る。
上記2つの制御基本パターン以外に、演算順序
を変更する括弧を有する論理演算式について、括
弧の入れ子構造のネストを考慮する。たとえば、
論理演算式 (e1!e2)&e3&e4 について、第3図に制御パターンを示す。
第2図において、(e1!e2)の入れ子内を先に
評価し、その結果により第1図aの制御基本パタ
ーンを適用して処理を進める。
以上の制御パターンを適用することにより、あ
らゆる論理演算式について、評価回数を短縮した
演算処理を実現することができる。
第3図は、本実施例において使用される、論理
演算子(&,!)と括弧入れ子レベルとを同時に
管理するテーブルW1と、真のルートおよび偽の
ルートを経ての制御の流れを管理するテーブル
W2とを示している。テーブルW1は論理変数の数
だけの項目欄※をもち、またテーブルW2は、各
論理変数毎に設けられる。これらのテーブルは、
予め論理式を解折する処理を行なつて作成してお
かれる。
テーブルW1において、「登録数」は、演算式中
の論理変数の全個数を表わす。「該当W2へのポイ
ンタ」は対応する論理変数のテーブルW2へのポ
インタを、「入れ子レベル」は括弧(ネスト)の
多重レベルを、「演算子」は論理変数に続く演算
子を示す。ただし、最後の論理変数の「演算子」
欄は、&および!以外の文字を用いて最終である
ことを表示する。
テーブルW2において、「該当eiの情報」は論理
変数eiの評価対象内容となる情報、「true時のポ
インタ」は真の時の行先テーブルW2へのポイン
タ、「false時のポインタ」は偽の時の行先テーブ
ルW2へのポインタを示す。
第4図は、第3図に示す管理テーブルを使用し
て、論理演算の制御の流れを管理した1実施例を
示す。図は、PL/I言語により記述された第2
図示の論理演算 If(A!B)&C&D THEN節〜 ELSE節〜 の場合を示している。図において、A1乃至A4は、
テーブルW2のそれぞれの先頭アドレスを示し、
B1はTHEN節の入口アドレス、B2はELSE節の
入口アドレスを示す。なお、テーブル1におい
て、登録数=4、入れ子レベル=ネスト1と記録
される。
まず、演算優先度の高いネスト1をもつAの評
価から開始する。ポインタA1にしたがつてAの
情報を読み、評価結果が真(true)であれば、括
弧内のBの評価をまつことなく、ポインタA3
指示にしたがつてCの評価に移る。他方、Aの評
価が偽(false)であれば、ポインタA3の指示に
したがつてBの評価へ移る。以後は第1図aの制
御基本パターンにしたがつて、評価が進行され
る。論理演算式の最終結果が定まると、その値に
したがつて、B1あるいはB2のいずれかへ進行す
る。図示のように、各評価ステツプ毎に、シヨー
トカツト・ルートが設定されているので、常に評
価結果にしたがつて最適の演算制御が可能とな
る。
第5図は、本発明実施例システムの概要図であ
る。図において、1はデータ処理装置、2はテー
ブルW1作成部、3は演算要素検出部、4はテー
ブルW1作成処理部、5はカウンタ、6はW1サイ
ズレジスタ、7はテーブルW2作成部、8は演算
処理部、9は演算式データフアイル、10はテー
ブルW1およびテーブルW2格納フアイル、11は
出力帳票を示す。
テーブルW1作成部は、演算式データフアイル
9から処理対象となる演算式を取り出し、論理演
算検出部3により論理変数、括弧、論理演算子を
それぞれ検出し、テーブルW1作成処理部4に送
る。カウンタ5は論理変数の個数、括弧の数をカ
ウントし、テーブルW1作成処理部4、W1サイズ
レジスタ6へ送る。作成テーブルW1処理部4は、
これらのデータに基づいて、第3図に示すテーブ
ルW1を作成し、フアイル10に格納する。なお、
テーブルW1中の該当W2へのポインタは、予め設
定されているものとする。
テーブルW2作成部7は、フアイル10からテ
ーブルW1を取り出し、各論理変数毎に、その論
理演算子と括弧すなわち入れ子構造とから、論理
変数が真の場合と偽の場合とについて、次に進む
べきステツプを調べ、その位置にポインタを張
る。次に進むべきステツプの決定は、第1図およ
び第2図に示した制御パターンのアルゴリズムに
したがう。第4図はその詳細な制御フローであ
り、一つの論理演算子に関するポインタ設定の手
順を示している。この手順を、テーブルW1の登
録数だけ繰返すことにより、テーブルW2が完成
される。完成されたテーブルW2は、フアイル1
0に格納される。
演算処理部8は、実行に際して、フアイル10
からテーブルW1,W2を取り出し、第4図に示さ
れるように、まずテーブルW1に示された先頭の
論理変数について、テーブルW2を参照し、その
論理変数を評価する。その論理値が真か偽かにし
たがつて、テーブルW2に設定されている対応す
るポインタを選択し、その指示する位置のテーブ
ルW2を次に参照する。以下同様に、論理変数の
評価とポインタの選択、次のW2参照、を繰り返
し、自動的に最適、最短のパスを通つて、最終結
果に到達することができる。
発明の効果 本発明によれば、評価する必要のない冗長な演
算項について、演算処理を省略することができ、
論理演算式の評価速度すなわち演算速度を向上さ
せることができる。本発明は、特に高級言語のコ
ンパイル処理、あるいはインタプリタの実行にお
いて、論理演算機構として使用することにより、
処理時間の短縮を図ることができる。
【図面の簡単な説明】
第1図および第2図は本発明における論理演算
の制御パターンを示す説明図、第3図は実施例に
おいて使用される論理演算ステツプの実行管理用
テーブルの説明図、第4図は第3図に示したテー
ブルの機能を具体例で示す説明図、第5図は実施
例システムの構成図、第6図はテーブルW2のポ
インタを設定するための手順を示すフロー図であ
る。 図中、1はデータ処理装置、2はテーブルW1
作成部、7はテーブルW2作成部、8は演算処理
部、9は演算式データフアイル、10はテーブル
W1およびW2格納フアイルを示す。

Claims (1)

  1. 【特許請求の範囲】 1 任意の論理演算式を2項のANDおよびORの
    基本論理演算の組合せに還元し、該基本論理演算
    を逐次的ステツプにより実行し、演算処理を行な
    う論理演算処理システムにおいて、 第1テーブル作成部2と、第1テーブル作成部
    2により作成されて論理演算式の構成を示す情報
    を保持する第1テーブルW1と、第2テーブル作
    成部7と、第2テーブル作成部7により作成され
    て論理演算式全体の演算処理の実行を管理する情
    報を保持する第2テーブルW2と、演算処理部8
    とをそなえ、 第1テーブル作成部2は、論理演算式を解析
    し、上記論理演算式の構成を示す情報として、論
    理演算式中の論理変数の総数、該論理変数の各々
    に作用する論理演算子、入れ子構造のレベル、お
    よび各論理変数ごとの第2テーブルW2中の関連
    情報へのポインタ、を構成要素とする第1テーブ
    ルW1を作成し、 第2テーブル作成部7は、第1テーブルW1
    解析し、一つの論理変数の評価の結果次に実行す
    べき基本論理演算のステツプを、該論理変数に作
    用する論理演算子の種類および入れ子構造のレベ
    ルにしたがつて評価回数が最少となるステツプを
    判定して決定するとともに、上記論理演算式全体
    の実行を管理する情報として、各論理変数の内
    容、および上記論理変数が真か偽かの論理評価の
    結果次に実行すべき基本論理演算のステツプを指
    定するポインタ、を構成要素とする第2テーブル
    W2を作成し、 演算処理部8は、第2テーブルW2の情報に基
    づいて論理演算式の各論理変数の評価を逐次的に
    実行することを特徴とする論理演算制御方式。
JP57049458A 1982-03-27 1982-03-27 論理演算制御方式 Granted JPS58166443A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP57049458A JPS58166443A (ja) 1982-03-27 1982-03-27 論理演算制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP57049458A JPS58166443A (ja) 1982-03-27 1982-03-27 論理演算制御方式

Publications (2)

Publication Number Publication Date
JPS58166443A JPS58166443A (ja) 1983-10-01
JPH0117175B2 true JPH0117175B2 (ja) 1989-03-29

Family

ID=12831691

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57049458A Granted JPS58166443A (ja) 1982-03-27 1982-03-27 論理演算制御方式

Country Status (1)

Country Link
JP (1) JPS58166443A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2868122B2 (ja) * 1987-11-05 1999-03-10 富士通株式会社 論理式評価順序決定方式
JP4626032B2 (ja) * 2000-08-28 2011-02-02 株式会社デンソー プログラム変換装置,プログラム変換方法及び記録媒体

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5010936A (ja) * 1973-05-25 1975-02-04
JPS5510659A (en) * 1978-07-08 1980-01-25 Toshiba Corp Data processor

Also Published As

Publication number Publication date
JPS58166443A (ja) 1983-10-01

Similar Documents

Publication Publication Date Title
Schulz et al. Faster, higher, stronger: E 2.3
US6954747B1 (en) Methods for comparing versions of a program
US5832273A (en) System for deleting redundant instructions from high level language source code containing in-line assembly instructions
JPH04225431A (ja) 命令キャッシュ効率を増大するコンピュータ命令をコンパイルする方法
US8788449B2 (en) Interface for creating and editing boolean logic
JPH0117175B2 (ja)
Hanus et al. Memoized pull-tabbing for functional logic programming
JPH07141192A (ja) 翻訳処理方法
JP3461185B2 (ja) ロードモジュールへのソースコード行番号登録方法および装置
JPH03280120A (ja) 操作履歴を利用したガイダンスシステム
US5854919A (en) Processor and its operation processing method for processing operation having bit width exceeding data width of bit storage unit
JPS64725B2 (ja)
JP3073889B2 (ja) データ転送方法
JPH0744397A (ja) プログラム処理高速化方式
JPS5846439A (ja) 計算機のプログラム編集方法
CN117271364A (zh) 一种基于程序切片的代码缺陷检测方法
JP4092750B2 (ja) 冗長コード検査装置
JP3018579B2 (ja) 名前検索処理装置
JP3240647B2 (ja) コンピュータ言語の構造化処理方式
CN118819536A (zh) 用于预处理代码数据用于随后评估的方法
JPH0553822A (ja) 共通部分式文の削除方法及びその装置
CN117407876A (zh) 恶意软件中的不透明谓词检测方法、系统及存储介质
JPH0816448A (ja) データ群のデータ削除方法
JP2021018535A (ja) 更新管理装置
Whipple Set theoretic extensions to algorithmic languages