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
Links
- 238000000034 method Methods 0.000 title claims description 18
- 230000010365 information processing Effects 0.000 claims 3
- 238000004364 calculation method Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
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の場合の多方向分岐プログラムで
ある。
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文で記述する。
RTRAN、RASICは複数のIF文で記述する。
以下、BAS I Cの場合で説明する。多方向分岐に
おいて実行順序を変更した場合は、演算結果に違いを生
ずることがある。このため、本発明では、次の3つの方
法により演算順序変更を可能とする。
おいて実行順序を変更した場合は、演算結果に違いを生
ずることがある。このため、本発明では、次の3つの方
法により演算順序変更を可能とする。
15各条件節に互いに排他論理が成立するか否かより演
算順序変更可能を判断する方法。
算順序変更可能を判断する方法。
条件範囲が明確な場合、各条件を比較することで各条件
節が排他論理であることを判断できる。
節が排他論理であることを判断できる。
例えば
X=整数であるとして
1FX=整数I THEN (実行1)lF
X=整数2 T)IEN (実行2)IFX=
整数NTHEN(実行N) この場合、整数1≠整数2≠整数Nであれば、演算順序
の変更は演算内容に影響を与えない。
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)の間には排他論理が成立
する。
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)
、次のプログラムを実行する。
序の変更可否を判断しくステップ2)、不可であればそ
のままプログラムを実行する(ステップ3)6可能であ
れば、各実行節の次にジャンプ制御文を追加した後(ス
テップ4)、プログラムを実行しくステップ5)、各条
件節の演算回数を記憶する(ステップ6)。条件節の演
算順序を使用頻度の高い順に変更した後(ステップ7)
、次のプログラムを実行する。
なお、本実施例のように、プログラムを走らせるたびに
条件節の演算順序を変更する以外に、プログラムを例え
ば100回実行して、その実行結果から条件節の演算順
序を変更することもできる。
条件節の演算順序を変更する以外に、プログラムを例え
ば100回実行して、その実行結果から条件節の演算順
序を変更することもできる。
[発明の効果]
以上説明したように本発明は、多方向分岐演算の演算順
序の変更が可能かどうかを判断し、可能であれば各実行
節の次に同一のジャンプ制御文を追加して、プログラム
を実行し、その実行における各条件節の演算回数を計数
し、その計数値の高い順に条件節を並べ変えることによ
り、多方向分岐の同じ条件がよく繰り返される実行内容
では、多方向分岐の通過時間が大幅に短縮され、このた
め、プログラム演算実行速度向上のため、条件節−実行
節の並びを考えて記述する必要がなく、また実行頻度が
最も多い選択節が不明であっても高速演算が可能となる
効果がある。特に、曲線をN点分岐による近似(補間近
似)で記述する場合は、本方法の採用の効果が大きく、
またDOループ等の繰り返し演算の中で同一選択が数回
あられれる時は非常に効果がある。
序の変更が可能かどうかを判断し、可能であれば各実行
節の次に同一のジャンプ制御文を追加して、プログラム
を実行し、その実行における各条件節の演算回数を計数
し、その計数値の高い順に条件節を並べ変えることによ
り、多方向分岐の同じ条件がよく繰り返される実行内容
では、多方向分岐の通過時間が大幅に短縮され、このた
め、プログラム演算実行速度向上のため、条件節−実行
節の並びを考えて記述する必要がなく、また実行頻度が
最も多い選択節が不明であっても高速演算が可能となる
効果がある。特に、曲線をN点分岐による近似(補間近
似)で記述する場合は、本方法の採用の効果が大きく、
またDOループ等の繰り返し演算の中で同一選択が数回
あられれる時は非常に効果がある。
本発明の改良としてN点分岐において1度選択された範
囲のその近辺がよく選択される場合は、単に選択された
条件節の順序を繰り上げるだけでなく、その前後の条件
節の演算順序も繰り上げると、さらに効果的である。
囲のその近辺がよく選択される場合は、単に選択された
条件節の順序を繰り上げるだけでなく、その前後の条件
節の演算順序も繰り上げると、さらに効果的である。
第1図は本発明の多方向分岐演算の高速化方法の一実施
例のフローチャートである。 1〜7・・・ステップ。
例のフローチャートである。 1〜7・・・ステップ。
Claims (1)
- 【特許請求の範囲】 1、情報処理システムにおける多方向分岐演算において
、各条件節が互いに排他論理の関係にあるかどうかを判
断し、もしあれば各実行節の次に同一の所へジャンプす
る制御文を追加してプログラムを実行し、その実行にお
ける各条件節の演算回数を計数し、その計数値の高い順
に条件節を並び替える多方向分岐演算の高速化方法。 2、情報処理システムにおける多方向分岐演算において
、各条件節が真部分集合の関係にあり、かつ各実行節の
次に同一のジャンプ制御文があるとき、外側の集合から
内側の集合を除いた集合の条件節に変換することにより
、各条件節が互いに排他論理の関係にあるようにしたの
ち、各実行節の次に同一の所へジャンプする制御文を追
加してプログラムを実行し、その実行における各条件節
の演算回数を計数し、その計数値の高い順に条件節を並
び替える多方向分岐演算の高速化方法。 3、情報処理システムにおける多方向分岐演算において
、プログラム作成時に演算順序変更が可能かどうかをプ
ログラム言語で指定し、もし可能であれば各実行節の次
に同一の所へジャンプする制御文を追加してプログラム
を実行し、その実行における各条件節の演算回数を計数
し、その計数値の高い順に条件節を並び替える多方向分
岐演算の高速化方法。
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)
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 | 選択頻度順プログラム自動修正方式 |
-
1988
- 1988-06-13 JP JP14537988A patent/JPH022425A/ja active Pending
Cited By (2)
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) | 一种并发分析的方法及装置 |