JPH022425A - 多方向分岐演算の高速化方法 - Google Patents

多方向分岐演算の高速化方法

Info

Publication number
JPH022425A
JPH022425A JP14537988A JP14537988A JPH022425A JP H022425 A JPH022425 A JP H022425A JP 14537988 A JP14537988 A JP 14537988A JP 14537988 A JP14537988 A JP 14537988A JP H022425 A JPH022425 A JP H022425A
Authority
JP
Japan
Prior art keywords
program
execution
clause
conditional
operations
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
JP14537988A
Other languages
English (en)
Inventor
Yoichi Kiuchi
陽一 木内
Nobukuni Higuchi
樋口 宣国
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.)
Yaskawa Electric Corp
Original Assignee
Yaskawa Electric Manufacturing Co 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 Yaskawa Electric Manufacturing Co Ltd filed Critical Yaskawa Electric Manufacturing Co Ltd
Priority to JP14537988A priority Critical patent/JPH022425A/ja
Publication of JPH022425A publication Critical patent/JPH022425A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、計算機プログラムにおける多方向分岐演算の
高速化方法に関する。
[従来の技術] 従来は、作成したプログラムをそのままの形で機械語に
翻訳し実行するため、短い演算時間が要求されるプログ
ラムでは、演算したい内容だけではなく、演算速度を考
えながらプログラムをしなければならない。
−aに、多方向分岐は、N分岐の中から一つ分岐を選択
するものであるから、一つの条件節が成立すれば、他の
条件節の成立の可否の判断は不要であるが、成立頻度の
順位はプログラム作成時にはわかりにくい。
また、多方向分岐はわかりやすく記述するために、次の
ように、条件節の関係が見易く並ぶことが望まれる。
1F  1>X       THENY=100 :
GOTO*IF  1≦X  ANDX<2  T)I
ENY−200:GOTO*lF   2 ≦X   
AND  X<3  TI(EN  Y−300:  
GOTO*IF  3≦X  AND X<4  TH
EN Y=400  : GOTO**次のステップ 本例はBAS I Cの場合の多方向分岐プログラムで
ある。
[発明が解決しようとする課題] 本発明の目的は、演算速度の向上を図った多方向分岐演
算の高速化方法を提供することにある。
[課題を解決するための手段] 本発明の多方向分岐演算の高速化方法の第1は、各条件
節が互いに排他論理の関係にあるかどうかを判断し、も
しあれば各実行節の次に同一の所へジャンプする制御文
を追加してプログラムを実行し、その実行における各条
件節の演算回数を計数し、その計数値の高い順に条件節
を並び替えるものである。
また、本発明の多方向分岐演算の高速化方法の第2は、
各条件節が真部分集合の関係にあり、かつ各実行節の次
に同一のジャンプ制御文があるとき、外側の集合から内
側の集合を除いた集合の条件節に変換することにより、
各条件節が互いに排他論理の関係にあるようにしたのち
、各実行節の次に同一の所ヘジャンプする制御文を追加
してプログラムを実行し、その実行における各条件節の
演算回数を計数し、その計数値の高い順に条件節を並び
替えるものである。
本発明の多方向分岐演算の高速化方法の第3は、プログ
ラム作成時に演算順序変更が可能かどうかをプログラム
言語で指定し、もし可能であれば各実行節の次に同一の
所へジャンプする制御文を追加してプログラムを実行し
、その実行における各条件節の演算回数を計数し、その
計数値の高い順に条件節を並び替えるものである。
[作用] 多方向分岐演算は、PASCALではCASE文、FO
RTRAN、RASICは複数のIF文で記述する。
以下、BAS I Cの場合で説明する。多方向分岐に
おいて実行順序を変更した場合は、演算結果に違いを生
ずることがある。このため、本発明では、次の3つの方
法により演算順序変更を可能とする。
15各条件節に互いに排他論理が成立するか否かより演
算順序変更可能を判断する方法。
条件範囲が明確な場合、各条件を比較することで各条件
節が排他論理であることを判断できる。
例えば X=整数であるとして 1FX=整数I   THEN    (実行1)lF
X=整数2  T)IEN    (実行2)IFX=
整数NTHEN(実行N) この場合、整数1≠整数2≠整数Nであれば、演算順序
の変更は演算内容に影響を与えない。
排他論理であることは、式の一方の変数が同一で、他方
が大小比較可能であれば、判断は可能である。
一般的には、多方向分岐は、任意の条件が成立すれば他
は実行不要であるので、このように記述は可能である。
2、各実行節の次に同一のジャンプ制御文があり、各条
件節の関係より演算順序変更可能を判断する方法。
各実行節の次に同一のジャンプ制御文があり、かつ各実
行節が演算順序の逆に部分集合の関係にある場合に、各
条件節が互いに排他論理の関係になるように変換後、前
項を適用する。
1F(条件1)  THEN  (実行1 ) : G
OTO※JUMP先IF(条件2)  THEN  (
実行2):GOTO※JUMP先IF(条件3)  T
)IEN  (実行3)・GOTO※JUMP先※Jt
1MP先 ここで、もし、条件lC条件2C条件3であれば、 1F(条件1)     THEN (実行1):GO
TO※JUMP先IF(条件2)−(条件1)T)IE
N (実行2):GOTO※JUMP先IF(条件3)
−(条件2)THEN (実行3):GOTO※JUM
P先※JUMP先 と変換は可能であり、(条件l)と(条件2)−(条件
1)と(条件3)−(条件2)の間には排他論理が成立
する。
3、プログラム作成時に演算順序変更可能を指定する方
式。
以上の1.2の方式は計算機が演算順序変更可能を判断
するものであるが、プログラム作成者が言語仕様(文法
)を追加し、演算順序変更可能を定義し、プログラムが
判断するようにしても良い。
次に、各実行節の次にジャンプ制御文がない場合、多方
向分岐実行後のステップへジャンプ制御文を追加する。
次に、プログラム実行時に条件節の成立頻度を計数、記
憶し、成立頻度の高い順に演算順序を決定する。
−II的には上記の方法で、同じような内容の実行では
、確率的には、演算速度が向上するが、演算順序を変え
ると演算速度が明らかに下がることが、プログラム作成
時にわかっている場合、演算順序の変更を禁止すること
を定義することにより、演算速度の低下を防ぐことがで
きる。
[実施例] 次に、本発明の実施例について図面を参照して説明する
第1図は本発明の多方向分岐演算の高速化方法の一実施
例のフローチャートである。
プログラムを作成しくステップ1)、各条件節の演算順
序の変更可否を判断しくステップ2)、不可であればそ
のままプログラムを実行する(ステップ3)6可能であ
れば、各実行節の次にジャンプ制御文を追加した後(ス
テップ4)、プログラムを実行しくステップ5)、各条
件節の演算回数を記憶する(ステップ6)。条件節の演
算順序を使用頻度の高い順に変更した後(ステップ7)
、次のプログラムを実行する。
なお、本実施例のように、プログラムを走らせるたびに
条件節の演算順序を変更する以外に、プログラムを例え
ば100回実行して、その実行結果から条件節の演算順
序を変更することもできる。
[発明の効果] 以上説明したように本発明は、多方向分岐演算の演算順
序の変更が可能かどうかを判断し、可能であれば各実行
節の次に同一のジャンプ制御文を追加して、プログラム
を実行し、その実行における各条件節の演算回数を計数
し、その計数値の高い順に条件節を並べ変えることによ
り、多方向分岐の同じ条件がよく繰り返される実行内容
では、多方向分岐の通過時間が大幅に短縮され、このた
め、プログラム演算実行速度向上のため、条件節−実行
節の並びを考えて記述する必要がなく、また実行頻度が
最も多い選択節が不明であっても高速演算が可能となる
効果がある。特に、曲線をN点分岐による近似(補間近
似)で記述する場合は、本方法の採用の効果が大きく、
またDOループ等の繰り返し演算の中で同一選択が数回
あられれる時は非常に効果がある。
本発明の改良としてN点分岐において1度選択された範
囲のその近辺がよく選択される場合は、単に選択された
条件節の順序を繰り上げるだけでなく、その前後の条件
節の演算順序も繰り上げると、さらに効果的である。
【図面の簡単な説明】
第1図は本発明の多方向分岐演算の高速化方法の一実施
例のフローチャートである。 1〜7・・・ステップ。

Claims (1)

  1. 【特許請求の範囲】 1、情報処理システムにおける多方向分岐演算において
    、各条件節が互いに排他論理の関係にあるかどうかを判
    断し、もしあれば各実行節の次に同一の所へジャンプす
    る制御文を追加してプログラムを実行し、その実行にお
    ける各条件節の演算回数を計数し、その計数値の高い順
    に条件節を並び替える多方向分岐演算の高速化方法。 2、情報処理システムにおける多方向分岐演算において
    、各条件節が真部分集合の関係にあり、かつ各実行節の
    次に同一のジャンプ制御文があるとき、外側の集合から
    内側の集合を除いた集合の条件節に変換することにより
    、各条件節が互いに排他論理の関係にあるようにしたの
    ち、各実行節の次に同一の所へジャンプする制御文を追
    加してプログラムを実行し、その実行における各条件節
    の演算回数を計数し、その計数値の高い順に条件節を並
    び替える多方向分岐演算の高速化方法。 3、情報処理システムにおける多方向分岐演算において
    、プログラム作成時に演算順序変更が可能かどうかをプ
    ログラム言語で指定し、もし可能であれば各実行節の次
    に同一の所へジャンプする制御文を追加してプログラム
    を実行し、その実行における各条件節の演算回数を計数
    し、その計数値の高い順に条件節を並び替える多方向分
    岐演算の高速化方法。
JP14537988A 1988-06-13 1988-06-13 多方向分岐演算の高速化方法 Pending JPH022425A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14537988A JPH022425A (ja) 1988-06-13 1988-06-13 多方向分岐演算の高速化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14537988A JPH022425A (ja) 1988-06-13 1988-06-13 多方向分岐演算の高速化方法

Publications (1)

Publication Number Publication Date
JPH022425A true JPH022425A (ja) 1990-01-08

Family

ID=15383878

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14537988A Pending JPH022425A (ja) 1988-06-13 1988-06-13 多方向分岐演算の高速化方法

Country Status (1)

Country Link
JP (1) JPH022425A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04330527A (ja) * 1990-02-14 1992-11-18 Internatl Business Mach Corp <Ibm> プログラムの最適化方法及びコンパイラ・システム
JPH07271607A (ja) * 1994-03-31 1995-10-20 Nec Corp 選択頻度順プログラム自動修正方式

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04330527A (ja) * 1990-02-14 1992-11-18 Internatl Business Mach Corp <Ibm> プログラムの最適化方法及びコンパイラ・システム
JPH07271607A (ja) * 1994-03-31 1995-10-20 Nec Corp 選択頻度順プログラム自動修正方式

Similar Documents

Publication Publication Date Title
US5339420A (en) Partitioning case statements for optimal execution performance
CN112346730B (zh) 一种中间表示的生成方法、计算机设备及存储介质
CN106681820A (zh) 基于消息组合的可扩展大数据计算方法
Bermudez et al. Practical arbitrary lookahead LR parsing
US8788449B2 (en) Interface for creating and editing boolean logic
CN110321458A (zh) 一种基于控制流图的数据流分析方法及装置
KR102147355B1 (ko) 프로그램 변환 방법 및 장치
US10380111B2 (en) System and method for searching data
JPS62208167A (ja) ベクトル処理装置
JPH022425A (ja) 多方向分岐演算の高速化方法
US8631013B2 (en) Non-intrusive data logging
US8805664B1 (en) System and method for simulating branching behavior
CN111966383A (zh) 一种操作系统内核兼容性量化分析方法、系统和介质
CN110008382B (zh) 一种确定TopN数据的方法、系统及设备
Krieger PLATO: A tool for computation of exact signal probabilities
CN108469987A (zh) 一种基于中断控制流图的中断验证系统
KR100422267B1 (ko) 그래픽처리장치
Chernoy et al. On the performance of Dijkstra’s third self-stabilizing algorithm for mutual exclusion and related algorithms
JPH09288580A (ja) ソースプログラムの最適化装置および最適化方法
CN115543325B (zh) 一种图形化编程的界面布局优化方法、系统、终端及介质
KR102505050B1 (ko) 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법
JP2585793B2 (ja) コンパイラシステム
JP3240647B2 (ja) コンピュータ言語の構造化処理方式
Rehmat et al. Heterogeneous 2-Phase Method for Strongly Connected Components Detection and Classification of Graphs
CN104252346B (zh) 一种并发分析的方法及装置