JPH09288580A - ソースプログラムの最適化装置および最適化方法 - Google Patents

ソースプログラムの最適化装置および最適化方法

Info

Publication number
JPH09288580A
JPH09288580A JP8098045A JP9804596A JPH09288580A JP H09288580 A JPH09288580 A JP H09288580A JP 8098045 A JP8098045 A JP 8098045A JP 9804596 A JP9804596 A JP 9804596A JP H09288580 A JPH09288580 A JP H09288580A
Authority
JP
Japan
Prior art keywords
source program
conditional branch
condition
optimizing
executions
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
JP8098045A
Other languages
English (en)
Inventor
Seiichi Tanaka
精一 田中
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP8098045A priority Critical patent/JPH09288580A/ja
Publication of JPH09288580A publication Critical patent/JPH09288580A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】複雑な多段階命令を含むソースプログラムを最
適化して高速に実行可能なロードモジュールを作成す
る。 【解決手段】条件分岐分解手段が、ソースプログラムの
条件分岐命令を解析するとともに、ソースプログラムの
条件分岐命令内の各条件毎の処理とその実行件数との対
応情報を含む条件分岐テーブルを作成し、統計データ蓄
積手段が、ソースプログラムをコンパイルして作成され
た試験用ロードモジュールを試験用データを用いて実行
することにより各処理の実行件数を計測して実行件数を
条件分岐テーブルに記憶し、条件分岐最適化手段が、条
件分岐テーブル内の各処理の実行件数に基づいて、ソー
スプログラムにおける条件分岐命令内の各条件毎の処理
を並べ替えることにより、ソースプログラムを最適化す
る。

Description

【発明の詳細な説明】
【発明の属する技術分野】本発明は、ソースプログラム
を最適化し、高速に実行可能なロードモジュールを生成
するソースプログラムの最適化装置および最適化方法に
関する。
【0001】
【従来の技術】条件分岐命令を含むプログラムを高速に
実行するため、そのプログラムの実行時に、条件分岐命
令を構成する複数の条件節をその成立頻度の高い順に並
べ替える方法が、特開平2−2425号公報に記載され
ている。この方法では、BASIC言語において、複数
のIF文からなる多方向分岐命令の高速化について、記
載されている。
【0002】
【発明が解決しようとする課題】しかし、この従来の技
術においては、IF文からなる多方向分岐命令について
は検討されているが、複数のIF文がいわゆる入れ子の
構造をなす多段階分岐命令については考慮されていな
い。したがって、複雑な多段階分岐命令に対しては、高
速化できないという問題点があった。
【0003】また、BASIC言語を前提としているこ
とからプログラムの実行時に条件節の並べ替えを行って
おり、高速化されたプログラムの内容をソースレベルで
ユーザに提供することができないという問題点もあっ
た。
【0004】本発明の目的は、複雑な多段階命令を含む
ソースプログラムを最適化して高速に実行可能なロード
モジュールを作成することにある。
【0005】本発明の他の目的は、最適化されたソース
プログラムの記述内容をユーザに提供できるようにする
ことにある。
【0006】
【課題を解決するための手段】本発明の第1のソースプ
ログラムの最適化装置は、ソースプログラムの条件分岐
命令内の各条件毎の処理を実行頻度の順に並べ替えるこ
とにより、ソースプログラムを最適化する条件分岐最適
化手段から構成されている。
【0007】本発明の第2のソースプログラムの最適化
装置は、ソースプログラムの条件分岐命令を解析し、該
ソースプログラムの条件分岐命令内の各条件毎の処理と
その実行件数との対応情報を含む条件分岐テーブルを作
成する条件分岐分解手段と、前記ソースプログラムをコ
ンパイルして作成された試験用ロードモジュールを試験
用データを用いて実行することにより各処理の実行件数
を計測し、該実行件数を前記条件分岐テーブルに記憶す
る統計データ蓄積手段と、前記条件分岐テーブル内の各
処理の実行件数に基づいて、前記ソースプログラムにお
ける条件分岐命令内の各条件毎の処理を並べ替えること
により、ソースプログラムを最適化する条件分岐最適化
手段とから構成されている。
【0008】本発明の第3のソースプログラムの最適化
装置は、ソースプログラムの条件分岐命令を解析し、該
ソースプログラムの条件分岐命令内の各条件毎の処理と
その処理を行う条件とその実行件数との対応情報を含む
条件分岐テーブルを作成する条件分岐分解手段と、前記
ソースプログラムをコンパイルして作成された試験用ロ
ードモジュールを試験用データを用いて実行することに
より各処理の実行件数を計測し、該実行件数を前記条件
分岐テーブルに記憶する統計データ蓄積手段と、前記条
件分岐テーブル内の各処理を行う条件に基づいて前記ソ
ースプログラムにおける条件分岐命令を多肢選択型の条
件分岐命令に変換するとともに、前記条件分岐テーブル
内の各処理の実行件数に基づいて前記ソースプログラム
における条件分岐命令内の各条件毎の処理を並べ替える
ことにより、ソースプログラムを最適化する条件分岐最
適化手段とから構成されている。
【0009】本発明の第4のソースプログラムの最適化
装置は、第2のソースプログラムの最適化装置におい
て、前記条件分岐分解手段は、初期ソースプログラムの
二者択一型の条件分岐文の直下に選択肢の一方が存在し
ない場合に、その位置にダミー処理を挿入するとともに
チェックポイントを設定して分解済ソースプログラムを
作成した後、該ダミー処理を前記条件分岐テーブルに登
録し、前記統計データ蓄積手段は、前記分解済ソースプ
ログラムをコンパイルして作成された試験用ロードモジ
ュールを試験用データを用いて実行する際に、該試験用
データが前記チェックポイントを通過する件数により各
処理の実行件数を計測し、該実行件数を前記条件分岐テ
ーブルに記憶することを特徴とする。
【0010】本発明の第5のソースプログラムの最適化
装置は、第4のソースプログラムの最適化装置におい
て、前記条件分岐分解手段は、さらに、初期ソースプロ
グラムの二者択一型の条件分岐文の直下に選択肢の一方
が存在する場合に、自身の処理を再帰的に呼び出すこと
を特徴とする。
【0011】本発明の第6のソースプログラムの最適化
装置は、第5のソースプログラムの最適化装置におい
て、前記条件分岐分解手段は、さらに、選択肢の直下に
二者択一型の条件分岐文が存在しない場合に、その位置
にチェックポイントを設定して分解済ソースプログラム
を作成した後、その位置にある処理を前記条件分岐テー
ブルに登録することを特徴とする。
【0012】本発明の第7のソースプログラムの最適化
装置は、第6のソースプログラムの最適化装置におい
て、前記条件分岐最適化手段は、初期ソースプログラム
の二者択一型の条件分岐文を多肢選択型の条件分岐文に
変換した後、前記条件分岐テーブルにおける実行件数の
多い順に対応する条件の記述を行い、さらに、その条件
が満たされる場合に行うべき処理を記述することによ
り、最適化ソースプログラムを作成することを特徴とす
る。
【0013】本発明の第1のソースプログラムの最適化
方法は、ソースプログラムの条件分岐命令内の各条件毎
の処理を実行頻度の順に並べ替えることにより、ソース
プログラムを最適化するステップを含んでいる。
【0014】本発明の第2のソースプログラムの最適化
方法は、ソースプログラムの条件分岐命令を解析し、該
ソースプログラムの条件分岐命令内の各条件毎の処理と
その実行件数との対応情報を記憶する第1のステップ
と、前記ソースプログラムをコンパイルして作成された
試験用ロードモジュールを試験用データを用いて実行す
ることにより各処理の実行件数を計測して記憶する第2
のステップと、前記第2のステップで記憶した実行件数
に基づいて、前記ソースプログラムにおける条件分岐命
令内の各条件毎の処理を並べ替えることにより、ソース
プログラムを最適化する第3のステップとを含んでい
る。
【0015】本発明の第3のソースプログラムの最適化
方法は、ソースプログラムの条件分岐命令を解析し、該
ソースプログラムの条件分岐命令内の各条件毎の処理と
その処理を行う条件とその実行件数との対応情報を記憶
する第1のステップと、前記ソースプログラムをコンパ
イルして作成された試験用ロードモジュールを試験用デ
ータを用いて実行することにより各処理の実行件数を計
測して記憶する第2のステップと、前記第1のステップ
で記憶した条件に基づいて前記ソースプログラムにおけ
る条件分岐命令を多肢選択型の条件分岐命令に変換する
とともに、前記第2のステップで記憶した実行件数に基
づいて前記ソースプログラムにおける条件分岐命令内の
各条件毎の処理を並べ替えることにより、ソースプログ
ラムを最適化する第3のステップとを含んでいる。
【0016】本発明の第4のソースプログラムの最適化
方法は、第3のソースプログラムの最適化方法におい
て、前記第1のステップで、初期ソースプログラムの二
者択一型の条件分岐文の直下に選択肢の一方が存在しな
い場合に、その位置にダミー処理を挿入するとともにチ
ェックポイントを設定して分解済ソースプログラムを作
成した後、該ダミー処理を記憶し、前記第2のステップ
で、前記分解済ソースプログラムをコンパイルして作成
された試験用ロードモジュールを試験用データを用いて
実行する際に、該試験用データが前記チェックポイント
を通過する件数により各処理の実行件数を計測して記憶
することを特徴とする。
【0017】本発明の第5のソースプログラムの最適化
方法は、第4のソースプログラムの最適化方法におい
て、前記第1のステップで、さらに、初期ソースプログ
ラムの二者択一型の条件分岐文の直下に選択肢の一方が
存在する場合に、自身の処理を再帰的に呼び出すことを
特徴とする。
【0018】本発明の第6のソースプログラムの最適化
方法は、第5のソースプログラムの最適化方法におい
て、前記第1のステップで、さらに、選択肢の直下に二
者択一型の条件分岐文が存在しない場合に、その位置に
チェックポイントを設定して分解済ソースプログラムを
作成した後、その位置にある処理を記憶することを特徴
とする。
【0019】本発明の第7のソースプログラムの最適化
方法は、第6のソースプログラムの最適化方法におい
て、前記第3のステップで、初期ソースプログラムの二
者択一型の条件分岐文を多肢選択型の条件分岐文に変換
した後、前記条件分岐テーブルにおける実行件数の多い
順に対応する条件の記述を行い、さらに、その条件が満
たされる場合に行うべき処理を記述することにより、最
適化ソースプログラムを作成することを特徴とする。
【0020】本発明の第1のコンピュータにおいて読み
取り可能な媒体は、ソースプログラムの条件分岐命令内
の各条件毎の処理を実行頻度の順に並べ替えることによ
り、ソースプログラムを最適化するステップを含むプロ
グラムを格納する。
【0021】本発明の第2のコンピュータにおいて読み
取り可能な媒体は、ソースプログラムの条件分岐命令を
解析し、該ソースプログラムの条件分岐命令内の各条件
毎の処理とその実行件数との対応情報を記憶する第1の
ステップと、前記ソースプログラムをコンパイルして作
成された試験用ロードモジュールを試験用データを用い
て実行することにより各処理の実行件数を計測して記憶
する第2のステップと、前記第2のステップで記憶した
実行件数に基づいて、前記ソースプログラムにおける条
件分岐命令内の各条件毎の処理を並べ替えることによ
り、ソースプログラムを最適化する第3のステップとを
含むプログラムを格納する。
【0022】本発明の第3のコンピュータにおいて読み
取り可能な媒体は、ソースプログラムの条件分岐命令を
解析し、該ソースプログラムの条件分岐命令内の各条件
毎の処理とその処理を行う条件とその実行件数との対応
情報を記憶する第1のステップと、前記ソースプログラ
ムをコンパイルして作成された試験用ロードモジュール
を試験用データを用いて実行することにより各処理の実
行件数を計測して記憶する第2のステップと、前記第1
のステップで記憶した条件に基づいて前記ソースプログ
ラムにおける条件分岐命令を多肢選択型の条件分岐命令
に変換するとともに、前記第2のステップで記憶した実
行件数に基づいて前記ソースプログラムにおける条件分
岐命令内の各条件毎の処理を並べ替えることにより、ソ
ースプログラムを最適化する第3のステップとを含むプ
ログラムを格納する。
【0023】本発明の第4のコンピュータにおいて読み
取り可能な媒体は、第3のコンピュータにおいて読み取
り可能な媒体に格納されたプログラムにおいて、前記第
1のステップで、初期ソースプログラムの二者択一型の
条件分岐文の直下に選択肢の一方が存在しない場合に、
その位置にダミー処理を挿入するとともにチェックポイ
ントを設定して分解済ソースプログラムを作成した後、
該ダミー処理を記憶し、前記第2のステップで、前記分
解済ソースプログラムをコンパイルして作成された試験
用ロードモジュールを試験用データを用いて実行する際
に、該試験用データが前記チェックポイントを通過する
件数により各処理の実行件数を計測して記憶することを
特徴とする。
【0024】本発明の第5のコンピュータにおいて読み
取り可能な媒体は、第4のコンピュータにおいて読み取
り可能な媒体に格納されたプログラムにおいて、前記第
1のステップで、さらに、初期ソースプログラムの二者
択一型の条件分岐文の直下に選択肢の一方が存在する場
合に、自身の処理を再帰的に呼び出すことを特徴とす
る。
【0025】本発明の第6のコンピュータにおいて読み
取り可能な媒体は、第5のコンピュータにおいて読み取
り可能な媒体に格納されたプログラムにおいて、前記第
1のステップで、さらに、選択肢の直下に二者択一型の
条件分岐文が存在しない場合に、その位置にチェックポ
イントを設定して分解済ソースプログラムを作成した
後、その位置にある処理を記憶することを特徴とする。
【0026】本発明の第7のコンピュータにおいて読み
取り可能な媒体は、第6のコンピュータにおいて読み取
り可能な媒体に格納されたプログラムにおいて、前記第
3のステップで、初期ソースプログラムの二者択一型の
条件分岐文を多肢選択型の条件分岐文に変換した後、前
記条件分岐テーブルにおける実行件数の多い順に対応す
る条件の記述を行い、さらに、その条件が満たされる場
合に行うべき処理を記述することにより、最適化ソース
プログラムを作成することを特徴とする。
【0027】
【発明の実施の形態】次に、本発明の一実施例について
図面を参照して詳細に説明する。
【0028】図1を参照すると、本発明の一実施例であ
るソースプログラムの最適化装置、あるいは最適化方法
を適用したシステムは、初期ソースプログラム101の
条件分岐命令を解析して分解済ソースプログラム103
を作成するとともに、条件分岐命令内の各条件毎の処理
とその実行件数との対応情報を含む条件分岐テーブル1
08を作成する条件分岐分解手段102と、分解済ソー
スプログラム103をコンパイルして作成された試験用
ロードモジュール105を商用標準データ106を用い
て実行することにより各処理の実行件数を計測し、実行
件数を条件分岐テーブル108に記憶する統計データ蓄
積手段107と、条件分岐テーブル108内の各処理の
実行件数に基づいて、分解済ソースプログラム103に
おける条件分岐命令内の各条件毎の処理を並べ替えるこ
とにより、最適化ソースプログラム110を作成する条
件分岐最適化手段109とを備えている。
【0029】次に、本発明の一実施例であるソースプロ
グラムの最適化装置、あるいは最適化方法を適用したシ
ステムの動作について、図1〜図7により説明する。
【0030】図1を参照すると、条件分岐分解手段10
2は、初期ソースプログラム101を分解し、分解済ソ
ースプログラム103を作成するとともに、条件分岐テ
ーブル108に条件分岐データを登録する。条件分岐分
解手段102の動作について、図2〜図3を参照して説
明する。
【0031】図2に、初期ソースプログラム101、分
解済ソースプログラム103、条件分岐テーブル108
の一例を示す。
【0032】この例では、初期ソースプログラム101
は、条件A、B、Cを有しており、条件Aが真かつ条件
Bが真の時に処理Pを、条件Aが真かつ条件Bが偽かつ
条件Cが偽の時に処理Qを実行するように組まれてい
る。
【0033】図3は、条件分岐分解手段102が初期ソ
ースプログラム101を分解して分解済ソースプログラ
ム103を作成する際の動作をフローチャートにより示
したものである。
【0034】条件分岐分解手段102は、最適化の対象
である初期ソースプログラム101を読み込み、IF文
を検索することにより条件分岐命令であるか否かを判断
する(ステップ301)。
【0035】条件分岐命令である場合は、その下にTH
EN文が存在するか否かを判断する(ステップ30
2)。THEN文が存在する場合は、ステップ301〜
ステップ311の処理を再帰的に呼び出す(ステップ3
03)。一方、THEN文が存在しない場合は、ソース
プログラム上のその位置にTHEN文及びダミー処理を
挿入し(ステップ304)、チェックポイントを設定す
る(ステップ305)とともに、条件及び処理の情報を
条件分岐テーブル108に登録する(ステップ30
6)。
【0036】次に、現在解析を行っている条件分岐命令
(必ずしも最上位の条件分岐命令とは限らず、再帰的に
呼び出されている場合は、下位の条件分岐命令である可
能性もある。)の下にELSE文が存在するか否かを判
断する(ステップ307)。ELSE文が存在する場合
は、ステップ301〜ステップ311の処理を再帰的に
呼び出す(ステップ308)。一方、ELSE文が存在
しない場合は、ソースプログラム上のその位置にELS
E文及びダミー処理を挿入し(ステップ309)、チェ
ックポイントを設定する(ステップ310)とともに、
条件及び処理の情報を条件分岐テーブル108に登録す
る(ステップ311)。
【0037】また、ステップ301で条件分岐命令でな
いと判断された場合には、読み込んだ処理の位置にチェ
ックポイントを設定する(ステップ312)とともに、
条件及び処理の情報を条件分岐テーブル108に登録す
る(ステップ313)。
【0038】このようにして、分解済ソースプログラム
103が作成される。
【0039】図2を参照すると、分解済ソースプログラ
ム103においては、条件Aが真かつ条件Bが偽かつ条
件Cが真の位置にダミー処理Xが挿入され、条件Aが偽
の位置にダミー処理Yが挿入されている。さらに、処理
Pに対してチェックポイント1が、ダミー処理Xに対し
てチェックポイント2が、処理Qに対してチェックポイ
ント3が、ダミー処理Yに対してチェックポイント4が
設定されている。
【0040】ここで、ダミー処理とは、処理内容を伴わ
ない処理であり、実際には何も実行されず、条件をBR
EAKするだけのものである。
【0041】また、図2を参照すると、条件分岐テーブ
ル108は、初期ソースプログラム101に含まれる条
件A、B、Cの真偽と、その時に行う処理との対応情報
を格納する。条件分岐テーブル中の数字「1」は、対応
する条件が真の時に対応する処理を実行することを示
し、数字「0」は、対応する条件が偽の時に対応する処
理を実行することを示す。また、「NULL」は、対応
する条件を判断せずに対応する処理を実行することを示
している。したがって、例えば、条件Aが真かつ条件B
が真の時に処理Pを実行することが分かる。
【0042】なお、本実施例の条件分岐テーブルでは、
条件がA、B、Cの3つであるが、条件の数は必要に応
じて設定できる。
【0043】また、図1を参照すると、コンパイル手段
104は、分解済ソースプログラム103をコンパイル
して、試験用ロードモジュール105を作成する。そし
て、統計データ蓄積手段107は、商用標準データ10
6を使用して試験用ロードモジュール105を実行する
ことにより、条件分岐テーブル108を更新する。統計
データ蓄積手段107の動作について、図4〜図5を参
照して説明する。
【0044】図4に、試験用ロードモジュール105、
商用標準データ106、条件分岐テーブル108の一例
を示す。なお、試験用ロードモジュール105について
は、便宜上、ソースプログラムのイメージで示してい
る。
【0045】この例では、試験用ロードモジュール10
5は、条件Aが真かつ条件Bが真の時に処理Pを実行
し、条件Aが真かつ条件Bが偽かつ条件Cが偽の時に処
理Qを実行し、条件Aが真かつ条件Bが偽かつ条件Cが
真の時にダミー処理Xを実行し、条件Aが偽の時にダミ
ー処理Yを実行するように組まれている。
【0046】また、商用標準データ106は、各条件に
対して図に示すような分岐を行うデータから構成されて
いる。例えば、1件目のデータは、条件Aが真かつ条件
Bが偽かつ条件Cが真となるようなデータである。ま
た、2件目のデータは、条件Aが偽となるようなデータ
である。
【0047】図5は、統計データ蓄積手段107が試験
用ロードモジュール105と商用標準データ106に基
づいて条件分岐テーブル108を更新する際の動作をフ
ローチャートにより示したものである。
【0048】まず、統計データ蓄積手段107は、条件
分岐テーブル108における件数の初期化を行う(ステ
ップ501)。
【0049】そして、商用標準データ106を1件読み
込み(ステップ502)、条件分岐テーブル108にお
いて、この時通過したチェックポイントに対応する件数
に1を加算する(ステップ503)。
【0050】さらに、統計データ蓄積手段107は、未
処理のデータが他にあるか否かを判断し(ステップ50
4)、ある場合には、ステップ502〜ステップ503
の処理を繰り返す。
【0051】このようにして、条件分岐テーブル108
の更新が行われる。
【0052】図4を参照すると、条件分岐テーブル10
8は、処理がチェックポイント1を通過した件数が2
件、チェックポイント2を通過した件数が8件、チェッ
クポイント3を通過した件数が10件、チェックポイン
ト4を通過した件数が5件であることを示している。す
なわち、処理Pによって処理される件数が2件、ダミー
処理Xによって処理される件数が8件、処理Qによって
処理される件数が10件、ダミー処理Yによって処理さ
れる件数が5件であることを示している。
【0053】さらに、図1を参照すると、条件分岐最適
化手段109は、分解済ソースプログラム103を読み
込み、条件分岐テーブル108に基づいて最適化ソース
プログラム110を作成する。条件分岐最適化手段10
9の動作について、図6〜図7を参照して説明する。
【0054】図6に、分解済ソースプログラム103、
条件分岐テーブル108、最適化ソースプログラム11
0の一例を示す。
【0055】この例では、分解済ソースプログラム10
3においては、条件Aが真かつ条件Bが偽かつ条件Cが
真の位置にダミー処理Xが挿入され、条件Aが偽の位置
にダミー処理Yが挿入されている。さらに、処理Pに対
してチェックポイント1が、ダミー処理Xに対してチェ
ックポイント2が、処理Qに対してチェックポイント3
が、ダミー処理Yに対してチェックポイント4が設定さ
れている。
【0056】また、条件分岐テーブル108は、処理が
チェックポイント1を通過した件数が2件、チェックポ
イント2を通過した件数が8件、チェックポイント3を
通過した件数が10件、チェックポイント4を通過した
件数が5件であることを示している。すなわち、処理P
によって処理される件数が2件、ダミー処理Xによって
処理される件数が8件、処理Qによって処理される件数
が10件、ダミー処理Yによって処理される件数が5件
であることを示している。
【0057】図7は、条件分岐最適化手段109が分解
済ソースプログラム103と条件分岐テーブルに基づい
て最適化ソースプログラム110を作成する際の動作を
フローチャートにより示したものである。
【0058】条件分岐最適化手段109は、条件分岐テ
ーブル108を件数の大きい順に並べ替える(ステップ
701)。
【0059】図6に示すような条件分岐テーブル108
に対しては、チェックポイント3を通過する処理Qの件
数が1番多いので、処理Qが1番目になるようにし、次
いで、ダミー処理X、ダミー処理Y、処理Pの順になる
ように並べ替える。
【0060】また、条件分岐最適化手段109は、IF
〜THEN〜ELSEによって記述されたソースプログ
ラムの形式をCASE〜OFに変換する(ステップ70
2)。
【0061】次に、条件分岐テーブル108から、1つ
の処理に相当するレコードを読み込む(ステップ70
3)。さらに、その処理を実行すべき条件を記述した後
(ステップ704)、その処理を記述する(ステップ7
05)。
【0062】さらに、条件分岐最適化手段109は、未
処理の条件節が他にあるか否かを判断し(ステップ70
6)、ある場合には、ステップ701〜ステップ705
の処理を繰り返す。
【0063】このようにして、最適化ソースプログラム
110が作成される。
【0064】図6を参照すると、最適化ソースプログラ
ム110は、条件Aが真かつ条件Bが偽かつ条件Cが偽
の時に処理Qを実行し、条件Aが真かつ条件Bが偽かつ
条件Cが真の時にダミー処理Xを実行し、条件Aが偽の
時にダミー処理Yを実行し、条件Aが真かつ条件Bが真
の時に処理Pを実行するように組まれている。
【0065】図1を参照すると、最後に、コンパイル手
段104は、最適化ソースプログラム110をコンパイ
ルして、運用ロードモジュール111を作成する。
【0066】以上により、本発明の一実施例であるソー
スプログラムの最適化装置、あるいは最適化方法を適用
したシステムの処理が終了する。
【0067】なお、本実施例においては、条件分岐命令
として、IF文、THEN文、ELSE文を含むものを
考えたが、必ずしもこれらの文である必要はなく、本発
明は、IF文、THEN文、ELSE文の機能に相当す
る他の文についても適用することができる。また、ソー
スプログラム中のIF文等の二者択一型の条件分岐文だ
けでなく、CASE文等の多肢選択型の条件分岐文に対
しても、同様にして、本発明を適用することが可能であ
る。
【0068】本発明の一実施例であるソースプログラム
の最適化装置、あるいは最適化方法を適用したシステム
は、複雑な条件分岐を多岐条件分岐に変換するととも
に、条件節をその成立頻度の順に並べ変えることによ
り、プログラムを高速に実行できるようにすることがで
きるという効果を有している。
【0069】また、複雑な条件分岐を多岐条件分岐に変
換し、条件節をその成立頻度の順に並べ変えた後にコン
パイルを行うことにより、高速に実行可能に変更された
ソースプログラムを提供することができるという効果を
有している。
【0070】
【発明の効果】以上説明したように、本発明のソースプ
ログラムの最適化装置および最適化方法は、プログラム
を高速に実行できるようにすることができるという効果
を有している。
【0071】また、高速に実行可能に変更されたソース
プログラムを提供することができるという効果を有して
いる。
【図面の簡単な説明】
【図1】図1は本発明の一実施例の構成を示すブロック
図である。
【図2】図2は本発明の一実施例における条件分岐分解
手段102の動作の概要を示す図である。
【図3】図3は本発明の一実施例における条件分岐分解
手段102の処理を示す流れ図である。
【図4】図4は本発明の一実施例における統計データ蓄
積手段107の動作の概要を示す図である。
【図5】図5は本発明の一実施例における統計データ蓄
積手段107の処理を示す流れ図である。
【図6】図6は本発明の一実施例における条件分岐最適
化手段109の動作の概要を示す図である。
【図7】図7は本発明の一実施例における条件分岐最適
化手段109の処理を示す流れ図である。
【符号の説明】
101 初期ソースプログラム 102 条件分岐分解手段 103 分解済ソースプログラム 104 コンパイル手段 105 試験用ロードモジュール 106 商用標準データ 107 統計データ蓄積手段 108 条件分岐テーブル 109 条件分岐最適化手段 110 最適化ソースプログラム 111 運用ロードモジュール

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 ソースプログラムの条件分岐命令内の各
    条件毎の処理を実行頻度の順に並べ替えることにより、
    ソースプログラムを最適化する条件分岐最適化手段を備
    えることを特徴とするソースプログラムの最適化装置。
  2. 【請求項2】 ソースプログラムの条件分岐命令を解析
    し、該ソースプログラムの条件分岐命令内の各条件毎の
    処理とその実行件数との対応情報を含む条件分岐テーブ
    ルを作成する条件分岐分解手段と、 前記ソースプログラムをコンパイルして作成された試験
    用ロードモジュールを試験用データを用いて実行するこ
    とにより各処理の実行件数を計測し、該実行件数を前記
    条件分岐テーブルに記憶する統計データ蓄積手段と、 前記条件分岐テーブル内の各処理の実行件数に基づい
    て、前記ソースプログラムにおける条件分岐命令内の各
    条件毎の処理を並べ替えることにより、ソースプログラ
    ムを最適化する条件分岐最適化手段とを備えることを特
    徴とするソースプログラムの最適化装置。
  3. 【請求項3】 ソースプログラムの条件分岐命令を解析
    し、該ソースプログラムの条件分岐命令内の各条件毎の
    処理とその処理を行う条件とその実行件数との対応情報
    を含む条件分岐テーブルを作成する条件分岐分解手段
    と、 前記ソースプログラムをコンパイルして作成された試験
    用ロードモジュールを試験用データを用いて実行するこ
    とにより各処理の実行件数を計測し、該実行件数を前記
    条件分岐テーブルに記憶する統計データ蓄積手段と、 前記条件分岐テーブル内の各処理を行う条件に基づいて
    前記ソースプログラムにおける条件分岐命令を多肢選択
    型の条件分岐命令に変換するとともに、前記条件分岐テ
    ーブル内の各処理の実行件数に基づいて前記ソースプロ
    グラムにおける条件分岐命令内の各条件毎の処理を並べ
    替えることにより、ソースプログラムを最適化する条件
    分岐最適化手段とを備えることを特徴とするソースプロ
    グラムの最適化装置。
  4. 【請求項4】 前記条件分岐分解手段は、初期ソースプ
    ログラムの二者択一型の条件分岐文の直下に選択肢の一
    方が存在しない場合に、その位置にダミー処理を挿入す
    るとともにチェックポイントを設定して分解済ソースプ
    ログラムを作成した後、該ダミー処理を前記条件分岐テ
    ーブルに登録し、 前記統計データ蓄積手段は、前記分解済ソースプログラ
    ムをコンパイルして作成された試験用ロードモジュール
    を試験用データを用いて実行する際に、該試験用データ
    が前記チェックポイントを通過する件数により各処理の
    実行件数を計測し、該実行件数を前記条件分岐テーブル
    に記憶することを特徴とする請求項2記載のソースプロ
    グラムの最適化装置。
  5. 【請求項5】 前記条件分岐分解手段は、さらに、初期
    ソースプログラムの二者択一型の条件分岐文の直下に選
    択肢の一方が存在する場合に、自身の処理を再帰的に呼
    び出すことを特徴とする請求項4記載のソースプログラ
    ムの最適化装置。
  6. 【請求項6】 前記条件分岐分解手段は、さらに、選択
    肢の直下に二者択一型の条件分岐文が存在しない場合
    に、その位置にチェックポイントを設定して分解済ソー
    スプログラムを作成した後、その位置にある処理を前記
    条件分岐テーブルに登録することを特徴とする請求項5
    記載のソースプログラムの最適化装置。
  7. 【請求項7】 前記条件分岐最適化手段は、初期ソース
    プログラムの二者択一型の条件分岐文を多肢選択型の条
    件分岐文に変換した後、前記条件分岐テーブルにおける
    実行件数の多い順に対応する条件の記述を行い、さら
    に、その条件が満たされる場合に行うべき処理を記述す
    ることにより、最適化ソースプログラムを作成すること
    を特徴とする請求項6記載のソースプログラムの最適化
    装置。
  8. 【請求項8】 ソースプログラムの条件分岐命令内の各
    条件毎の処理を実行頻度の順に並べ替えることにより、
    ソースプログラムを最適化するステップを含むことを特
    徴とするソースプログラムの最適化方法。
  9. 【請求項9】 ソースプログラムの条件分岐命令を解析
    し、該ソースプログラムの条件分岐命令内の各条件毎の
    処理とその実行件数との対応情報を記憶する第1のステ
    ップと、 前記ソースプログラムをコンパイルして作成された試験
    用ロードモジュールを試験用データを用いて実行するこ
    とにより各処理の実行件数を計測して記憶する第2のス
    テップと、 前記第2のステップで記憶した実行件数に基づいて、前
    記ソースプログラムにおける条件分岐命令内の各条件毎
    の処理を並べ替えることにより、ソースプログラムを最
    適化する第3のステップとを含むことを特徴とするソー
    スプログラムの最適化方法。
  10. 【請求項10】 ソースプログラムの条件分岐命令を解
    析し、該ソースプログラムの条件分岐命令内の各条件毎
    の処理とその処理を行う条件とその実行件数との対応情
    報を記憶する第1のステップと、 前記ソースプログラムをコンパイルして作成された試験
    用ロードモジュールを試験用データを用いて実行するこ
    とにより各処理の実行件数を計測して記憶する第2のス
    テップと、 前記第1のステップで記憶した条件に基づいて前記ソー
    スプログラムにおける条件分岐命令を多肢選択型の条件
    分岐命令に変換するとともに、前記第2のステップで記
    憶した実行件数に基づいて前記ソースプログラムにおけ
    る条件分岐命令内の各条件毎の処理を並べ替えることに
    より、ソースプログラムを最適化する第3のステップと
    を含むことを特徴とするソースプログラムの最適化方
    法。
  11. 【請求項11】 前記第1のステップで、初期ソースプ
    ログラムの二者択一型の条件分岐文の直下に選択肢の一
    方が存在しない場合に、その位置にダミー処理を挿入す
    るとともにチェックポイントを設定して分解済ソースプ
    ログラムを作成した後、該ダミー処理を記憶し、 前記第2のステップで、前記分解済ソースプログラムを
    コンパイルして作成された試験用ロードモジュールを試
    験用データを用いて実行する際に、該試験用データが前
    記チェックポイントを通過する件数により各処理の実行
    件数を計測して記憶することを特徴とする請求項10記
    載のソースプログラムの最適化方法。
  12. 【請求項12】 前記第1のステップで、さらに、初期
    ソースプログラムの二者択一型の条件分岐文の直下に選
    択肢の一方が存在する場合に、自身の処理を再帰的に呼
    び出すことを特徴とする請求項11記載のソースプログ
    ラムの最適化方法。
  13. 【請求項13】 前記第1のステップで、さらに、選択
    肢の直下に二者択一型の条件分岐文が存在しない場合
    に、その位置にチェックポイントを設定して分解済ソー
    スプログラムを作成した後、その位置にある処理を記憶
    することを特徴とする請求項12記載のソースプログラ
    ムの最適化方法。
  14. 【請求項14】 前記第3のステップで、初期ソースプ
    ログラムの二者択一型の条件分岐文を多肢選択型の条件
    分岐文に変換した後、前記条件分岐テーブルにおける実
    行件数の多い順に対応する条件の記述を行い、さらに、
    その条件が満たされる場合に行うべき処理を記述するこ
    とにより、最適化ソースプログラムを作成することを特
    徴とする請求項13記載のソースプログラムの最適化方
    法。
JP8098045A 1996-04-19 1996-04-19 ソースプログラムの最適化装置および最適化方法 Pending JPH09288580A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8098045A JPH09288580A (ja) 1996-04-19 1996-04-19 ソースプログラムの最適化装置および最適化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8098045A JPH09288580A (ja) 1996-04-19 1996-04-19 ソースプログラムの最適化装置および最適化方法

Publications (1)

Publication Number Publication Date
JPH09288580A true JPH09288580A (ja) 1997-11-04

Family

ID=14209189

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8098045A Pending JPH09288580A (ja) 1996-04-19 1996-04-19 ソースプログラムの最適化装置および最適化方法

Country Status (1)

Country Link
JP (1) JPH09288580A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000003322A1 (fr) * 1998-07-10 2000-01-20 Sony Corporation Procede et appareil de compilation
JP2010262649A (ja) * 2009-04-29 2010-11-18 Internatl Business Mach Corp <Ibm> 冷却セッティングを調整する方法、データ処理システム、およびコンピュータ・プログラム、ならびにプロセッサ・ユニットの冷却を管理する方法
JP2016133911A (ja) * 2015-01-16 2016-07-25 ファナック株式会社 加工プログラムに応じて数値制御装置のコントロールソフトウェアを最適化する機能を備えた制御システム
US9563547B2 (en) 2014-02-14 2017-02-07 International Business Machines Corporation Testing optimized binary modules
JP2021011017A (ja) * 2016-09-27 2021-02-04 株式会社デンソーウェーブ ロボット用の表示システム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000003322A1 (fr) * 1998-07-10 2000-01-20 Sony Corporation Procede et appareil de compilation
JP2010262649A (ja) * 2009-04-29 2010-11-18 Internatl Business Mach Corp <Ibm> 冷却セッティングを調整する方法、データ処理システム、およびコンピュータ・プログラム、ならびにプロセッサ・ユニットの冷却を管理する方法
US9563547B2 (en) 2014-02-14 2017-02-07 International Business Machines Corporation Testing optimized binary modules
US9569347B2 (en) 2014-02-14 2017-02-14 International Business Machines Corporation Testing optimized binary modules
JP2016133911A (ja) * 2015-01-16 2016-07-25 ファナック株式会社 加工プログラムに応じて数値制御装置のコントロールソフトウェアを最適化する機能を備えた制御システム
US10088834B2 (en) 2015-01-16 2018-10-02 Fanuc Corporation Control system having function for optimizing control software of numerical controller in accordance with machining program
JP2021011017A (ja) * 2016-09-27 2021-02-04 株式会社デンソーウェーブ ロボット用の表示システム

Similar Documents

Publication Publication Date Title
US8006229B2 (en) Program maintenance support device and program for the same
EP0406602A2 (en) Method and apparatus for debugging parallel programs by serialization
US20040049768A1 (en) Method and program for compiling processing, and computer-readable medium recoding the program thereof
US20050204344A1 (en) Program analysis device, analysis method and program of same
US20060004528A1 (en) Apparatus and method for extracting similar source code
US5255385A (en) Method of testing program, and compiler and program testing tool for the method
US6286133B1 (en) Method and apparatus for strategic compilation of source programs into two or more target languages
GB2536084A (en) A system and method for accessibility assessment of a web application
CN110196720B (zh) 一种Simulink生成动态链接库的优化方法
JPH09288580A (ja) ソースプログラムの最適化装置および最適化方法
JP3418544B2 (ja) プログラムのテストデータ自動生成装置
CN109597638B (zh) 基于实时计算引擎解决数据处理、设备联动的方法及装置
CN112035342B (zh) 一种识别代码缺陷的方法及装置
JPH0667871A (ja) プログラム自動更新方式
JPH01177165A (ja) 配列の定義/引用関係検査方式
KR100276086B1 (ko) 로토스 명세로부터 씨 플러스 플러스 코드 생성방법
KR100279731B1 (ko) 칠 언어에 대한 제어 흐름 표시방법
JP2897594B2 (ja) 命令実行回数の表示方法
JP2009015437A (ja) ベンチマークテスト装置
JPH0954704A (ja) 言語プロセッサのテストプログラム自動作成システム
JPH03260865A (ja) ベクトル化処理方式
JPH11219289A (ja) オブジェクト指向プログラム品質評価装置
JPS6378232A (ja) テストケ−ス抽出装置
JPH0264738A (ja) 文字列出力装置
JP2000207212A (ja) メソッド呼出し最適化方法,クラス推定方法,メソッド呼出し最適化装置及び記憶媒体

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20010227