JPH04124741A - プログラムの実行特性解析方法 - Google Patents

プログラムの実行特性解析方法

Info

Publication number
JPH04124741A
JPH04124741A JP2243794A JP24379490A JPH04124741A JP H04124741 A JPH04124741 A JP H04124741A JP 2243794 A JP2243794 A JP 2243794A JP 24379490 A JP24379490 A JP 24379490A JP H04124741 A JPH04124741 A JP H04124741A
Authority
JP
Japan
Prior art keywords
execution characteristic
execution
source program
program
operator
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
JP2243794A
Other languages
English (en)
Inventor
Minoru Harada
稔 原田
Mikinobu Hasuo
蓮尾 幹宣
Yoshikazu Sato
嘉一 佐藤
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2243794A priority Critical patent/JPH04124741A/ja
Publication of JPH04124741A publication Critical patent/JPH04124741A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、作成されたプログラムに含まれる演算式の実
行回数、実行時間等を計測し解析するためのプログラム
の実行特性解析方法に関する。
(従来の技術) プログラムを作成した場合、その評価や効率的な活用の
ため、プログラムに含まれる演算式の実行回数、実行時
間等を解析することが行なわれる。
第2図に、このような場合の従来の実行特性解析方法説
明図を示す。
図において、解析の対象となるソースプログラム1は、
コボル(COBOL)プログラムから構成されており、
図には演算式A=B+Cを実行すべき旨の記述文が示さ
れている。このような演算式の実行特性解析のためには
、このソースプログラム1に、実行特性計測処理を含め
た上で実際にプログラムを実行させる。
この場合、図のように、ブリプロセッサ3によって実行
特性計測処理4aを付加し、実行特性計測処理付きソー
スプログラム2を得る。実行特性計測処理の内容は、図
の■〜■に示すように、DOA−COUNTという計測
専用のルーチンを呼出し、ソースプログラム1に示され
た演算式の出現回数をカウントする。即ち、この方法で
は、ソースプログラム1の演算式を行単位でカウントし
、その実行回数を計測することにより、実行特性解析用
のデータとしていた。
第3図に、従来の別の実行特性解析方法説明図を示す。
図において、解析対象となるソースプログラム1は、第
2図に示したものと同様である。ここで、この例の場合
、コンパイラ9が動作し、オブジェクトプログラムを生
成する。
尚、本明細書においては、コンパイラによりアセンブリ
言語に変換される前のプログラムをすべてソースプログ
ラムと呼び、変換後のプログラムをオブジェクトプログ
ラムと呼ぶことにする。
第2図の場合、ソースプログラム1及び実行特性計測処
理付きソースプログラム2は、何れもコボル等の高水準
言語で作成されていた。
一方、第3図の例の場合、ソースプログラム1は高水準
言語であり、コンパイラ9の生成した実行特性計測処理
付きオブジェクトプログラム5は、アセンブリ言語から
記述されている。このオブジェクトプログラム5の実行
特性計測処理4bの内容は、第2図に示した実行特性計
測処理4aと同等のもので、第3図の■〜■に示すよう
に、計測専用のルーチンであるDOA−COI]NTを
呼出し、定義文DCにおいてそのパラメータを指定して
いる。尚、この場合には、ソースプログラム1の演算式
は、オブジェクトプログラム5において、ロード命令(
L)、加算命令(A)、ストア命令(ST)の3つの機
械命令から記述される。
従って、第3図に示す方法では、ソースプログラム1の
行単位の演算式実行回数と、オブジェクトプログラム5
において実行された機械命令総数を計数し、実行特性デ
ータを得ていた。
(発明が解決しようとする課題) ところが、上記のような方法では、以下に説明するよう
に、実行特性解析のために得られたデータが、必ずしも
その実際の演算実行のための時間を正しく一反映するも
のでなかった。
第4図に、そのような従来方法の問題点説明図を示す。
図のソースプログラム1aは、加算処理のみから成る演
算式■と、除算2回1乗算2回、加算1回を含む演算式
■とを含むものである。
このようなソースプログラム1aについての実行特性解
析を、第2図に示す方法により行なえば、実行特性計測
処理付きソースプログラム2aを得る。このプログラム
中の実行特性計測処理4c、4dは、何れも第2図に示
したものと同一形式のものである。即ち、何れの場合に
も、ソースプログラム1を行単位で把握し、その演算式
の出現回数を計測する構成とされている。
しかしながら、この処理内容を見て明らかなように、ソ
ースプログラム1の演算式■と演算式■とでは、その演
算処理時間が大幅に相違する。
従って、これらを−律に、各演算式とも1行処理して1
回というカウントをすると、プログラム実行時間を正し
く反映することができない。
また、第5図に従来方法の別の問題点説明図を示す。
図は、除算式から成る演算式を含むソースプログラム1
bを、第3図に示した方法を用いて処理し、実行特性計
測処理付きオブジェクトプログラム5aを得た例を示し
ている。
このオブジェクトプログラム5aには、実行特性演算処
理4eが含まれており、この内容は第3図に示したもの
と同様である。従って、第3図に示したものと比較した
場合に、何れも、形式的には、上記除算による命令を3
つの機械命令により処理していることになる。しかし、
第5図の例の場合、変数B、Cがゾーン形式のデータで
、その除算結果をパック形式の変数Aに代入するとした
場合、その機械命令には、パック形式への変換と除算等
の演算が含まれてくる。
通常の計算機では、2進数の加算とパック形式のデータ
の除算とでは、後者の方が実行スピードが2桁程度遅く
なる。従って、第3図に示したオブジェクトプログラム
5中の3つの機械命令と、第5図に示したオブジェクト
プログラム5aの3つの機械命令とでは、同じように3
命令の実行であるにも関わらず、その処理時間は著しく
相違する。従って、この場合にも、実行特性計測処理に
よって得られたデータは、プログラムの実行時間を正し
く反映するものではなく、プログラム実行特性を元に、
その性能向上を図るべく問題個所を見付ける等の作業を
、正確に行なうことができないという問題点があった。
しかも、第3図や第5図に示す方法では、実行特性計測
処理付きオブジェクトプログラムは、機械命令やアセン
ブリ言語により記述されており、高水準言語と異なり、
計算機が異なれば、それはそのまま使用することができ
ないという問題もあった。
本発明は以上の点に着目してなされたもので、計算機の
種類に依存せず、機種独立にプログラムの実行特性をそ
の実行時間を反映した形式で収集することができるプロ
グラムの実行特性解析方法を提供することを目的とする
ものである。
(課題を解決するための手段) 本発明のプログラムの実行特性解析方法は、高水準言語
で作成されたソースプログラムの演算式を、所定の演算
子で構成された中間言語に変換し、この中間言語を構成
する各演算子の演算内容の特性を表わす実行特性値を累
積して実行特性解析用パラメータを求め、前記高水準言
語で作成されたソースプログラムに前記実行特性解析用
パラメータを使用する実行特性計測処理を含めることを
特徴とするものである。
(作用) 本発明の方法は、−旦、高水準言語で作成されたソース
プログラムの演算式を、所定の演算子で構成された中間
言語に変換する。この中間言語の各演算子については、
それぞれ、予めその演算子の演算内容の特性を示す最適
の実行特性値を求めておき、これを元に、各演算子につ
いて実行特性値を累積する。こうして求められた実行特
性解析用パラメータを使用して、実行特性計測処理を行
なえば、実行時間に比例した実行特性が得られる。
(実施例) 以下、本発明を図の実施例を用いて詳細に説明する。
第1図は、本発明のプログラムの実行特性解析方法を示
すフローチャートである。
本発明の方法は、犬きく分けて4つのステップから成る
図に示すように、始めのステップS1では、高水準言語
のソースプログラムの入力を行なう。そして、次のステ
ップS2において、そのソースプログラムの構文と意味
の解析を行ない、中間言語101を得る。この中間言語
101は、ソースプログラムの演算式を所定の演算子の
組合わせにより表わしたものである。
ここで、予め各演算子については、その演算子の実行時
間に比例した実行特性値を求め、テーブルデータとして
保存しておく。このテーブルデータが、図の演算子実行
特性値対応表102である。
ここで、中間言語101の内容と演算子実行特性値対応
表102を参照しつつ、実行特性値の計算を行なう(ス
テップS3)。この場合、実行特性値は、演算子毎に累
積加算される。その結果、ソースプログラムは、演算式
毎に実行特性値解析用パラメータ103が得られる。そ
の後、ソース逆変換処理(ステップS4)を実行し、実
行特性値解析用パラメータ等を使用した実行特性計測処
理104を含め、実行特性計測処理付きソースプログラ
ム105を得る。
本発明の方法の概略は以上の通りであるが、その具体的
な処理手順を、第6図以下の図を用いて詳細に説明する
第6図に、本発明の方法実施の対象とされるソースプロ
グラム例を示した。
図のソースプログラムl○は、コボルプログラムから構
成されており、変数A、B、Cを5桁のバイナリ−フー
ドで定義すると共に、A=B+Cという内容の演算式を
実行するプログラムである。このソースプログラムは、
高水準言語であり、何れの型の計算機についても実行可
能であることはいうまでもない。
ここで、上記ソースプログラム10の演算式を、それぞ
れ所定の1単位の処理を表わす演算子により記述する。
第7図に、そのような演算子で構成された中間言語を示
す。
図の例では、第6図に示した演算式を5つの演算子に分
解している。
先ず、変数Bをバイナリ−コードで定義する演算子21
、同様に変数Cをバイナリ−コードで定義する演算子2
2、BとCを加算する演算子23、その加算結果をバイ
ナリ−コードで表わす演算子24及び加算結果を代入す
る変数Aをバイナリ−コードで定義する演算子25から
構成される。
ここで、第10図に、このような各演算子の実行時間に
比例した実行特性値を対応付けた、演算子−実行特性値
対応表を示す。
図の表において、第7図に示す演算子21゜22に該当
する処理53は、実行特性値が“1”とされている。ま
た、第7図に示した演算子23に該当する処理52は実
行特性値“1”、第7図の演算子24の処理51に相当
する実行特性値は“5”と設定されている。このような
特性値は、実際に計算機を動作させ、各種演算子を比較
して、その演算時間の相対比較に基づいて数値を選定す
ることによって求められる。
第8図には、第7図に示した中間言語について、第10
図の演算子−実行特性値対応表を用い、その実行特性値
を累積した結果を示す。
第8図に示す各演算子21〜25の右側に示したのは、
実行特性値31〜35及びその累積値41〜45である
即ち、第6図に示した演算式を、第7図に示したような
5つの演算子から成る中間言語で記述し、その実行特性
値を累積すると、実行特性解析用パラメータは(I X
4+5)即ち9となる。この計算は、木構造で構成され
た演算子21〜25について、そのノートにある演算子
のある場所で、順に多枝の演算子の実行特性値を累積す
るようにして行なわれる。
これまでで、第10図に示したステップSl。
S2.S3の処理が終了した。
その後、第1図に示すソース逆変換処理(ステップS4
)を実行すると、第9図に示すソースプログラムが得ら
れる。
第9図は、実行特性計測処理付きソースプログラムであ
る。
このソースプログラム11を、第2図に示したものと比
較すると、第9図に示したソースプログラム11には、
実行特性計測処理4f中に、■の処理が付加されている
点が異なることがわかる。
この■の処理は、実行特性解析用パラメータを“9”と
して、実行特性計測を行なうことを内容とするものであ
る。
即ち、このような実行特性計測を行なうと、演算式A=
B+Cがソースプログラムの行単位で何回実行されたか
というデータと、その演算式1回分の実行特性値が“9
“とじた場合の実行特性値の累積結果も得られる。従っ
て、この計測により得られたデータは、プログラムの実
行時間をよく反映した内容のものとなる。
また、第9図に示す特性計測処理付きソースプログラム
11は、ここではコボルプログラム等の高水準言語から
作成されたもので、汎用性があり、何れの計算機につい
てもそのまま実行が可能である。
尚、第10図に示す演算子−実行特性対応表の実行特性
値の内容は、計算機の機種毎に相違する場合がある。従
って、この対応表については、機種毎に用意することが
好ましい。
第11図以下で、本発明の方法の他の実施例を説明する
第11図のソースプログラム12は、これまでと同様に
コボルプログラムで構成され、変数Aが5桁のパック形
式で定義され、変数B及びCが5桁のゾーン形式で定義
された場合の、演算式A=B÷Cを実行するという内容
のものである。
この場合にも、先に説明したような、木(Tree)構
造の中間言語を作成する。
第12図は、その中間言語例を示す説明図である。この
例では、上記演算式を演算子61〜67までの7つの演
算子で記述している。
ここで、再び第10図に示す演算子−実行特性値対応表
を参照すると、第12図の演算子61゜62については
、変数をゾーン形式で定義し、合算千65については、
変数をパック形式で定義するもので、何れも、第10図
の処理57に該ごし、その実行特性値は“O”とされて
いる。Rち、実質的に、この処理には、実行時間がかか
らない。
一方、除算を実行するためには、これらの変tをパック
形式に変換しなければならず、第101pに示す処理5
6を実行する。その実行特性値(=°゛50”となる。
また、第12図に示す演算966の除算処理は、第1O
図に示す処理55に庁すように、その実行特性値が“2
00”となる。
こうして得られた除算結果を、パック形式の部数Aに代
入する場合には、実質的な処理時間を染髪とせず、ノー
オペレーション(NOP)と4つ、第10図の処理54
に示すように、その実行特性値は“O”となっている。
これらの結果に基づいて実行特性値を累積すると、第1
3図に示すようになる。
第13図は、実行特性値累積例を示す説明図である。
各演算子61〜67の右側には、実行特性値31〜37
及びその累積値41〜47が表わされている。
即ち、この場合にも、本構造の処理に従って実行特性値
を累積していくと、演算子67の部分に表わされたよう
に、演算式全体としての実行特性解析用パラメータが“
300“という値となる。
第14図に、上記実行特性解析用パラメータを加味した
実行特性処理付きソースプログラム13を示す。
図のソースプログラム13には、先に第9図を用いて説
明したと同様に、■式において実行特性解析用パラメー
タ300を加味した実行特性計測処理4gが含められて
いる。これにより、第9図に示すものと同様のソースプ
ログラムと比較した場合、何れも1行の演算式であるに
も関わらず、実行特性計測結果は、その実行特性解析用
パラメータの数値に比例した値となり、最終的に実行時
間をよく表わした解析結果が得られる。
本発明は以上の実施例に限定されない。
上記実施例においては、ソースプログラムをコボル言語
を用いて表わした例を示したが、一般の計算機に対して
汎用性のある高水準言語、即ち、例えばフォートランや
ベーシック等の言語を用いたものでも、全く同様の効果
を得る。
また、上記実施例では、ソースプログラムの演算式を、
コンパイラの使用する演算子で記述し、その実行特性値
を得たが、演算時間をよ(表わす同等の演算子で記述す
るようにしてもよい。また、必ずしも上述したような木
構造の中間言語に変換する必要はない。
(発明の効果) 以上説明した本発明のプログラムの実行特性解析方法に
よれば、ソースプログラムの演算式を所定の演算子で構
成−された中間言語に変換し、各演算子の演算内容の特
性を示す実行特性値を累積して、実行特性解析用パラメ
ータを得るようにしたので、実際のプログラムの実行時
間をよく表わした解析結果が得られる。このために、プ
ログラム性能向上のための問題個所の発見等を、より精
密に正確に収集し解析することができる。
更に、高水準言語で作成されたソースプログラムに、上
記実行特性解析用パラメータを使用する実行特性計測処
理を含めることにより、何れの計算機についても、それ
ぞれ機種独立な実行特性の収集と解析を可能とする。こ
の場合の、機種による実行特性値の相違は、演算子−実
行特性値対応表を機種毎に用意することによって吸収が
可能である。
【図面の簡単な説明】
第1図は本発明のプログラムの実行特性値解析方法を示
すフローチャート、第2図は従来の実行特性解析方法説
明図、第3図は従来の別の実行特性解析方法説明図、第
4図は従来方法の問題点説明図、第5図は従来方法の別
の問題点説明、図、第6図はソースプログラム例説明図
、第7図は中間言語側説明図、第8図は実行特性値累積
側説明図、第9図は実行時性計測処理イ寸きソースプロ
グラム説明図、第10図は演算子−実行特性値対応図表
、第11図はソースプログラム例説明図、第12図は中
間言語側説明図、第13図は実行特性値累積側説明図、
第14図は実行特性値計測処理付きソースプログラム説
明図である。 特許出願人 沖電気工業株式会社 本発明つプログラムの艷噂妃すし外力沫第1図 第2図 第3図 第4図 縦来方法の刈り閂n点説明団 第5図 第7図 潰賞子−実行待ヰ(!1月応表ty¥、1−阻表第10
図 第 1図

Claims (1)

    【特許請求の範囲】
  1. 高水準言語で作成されたソースプログラムの演算式を、
    所定の演算子で構成された中間言語に変換し、この中間
    言語を構成する各演算子の演算内容の特性を表わす実行
    特性値を累積して実行特性解析用パラメータを求め、前
    記高水準言語で作成されたソースプログラムに前記実行
    特性解析用パラメータを使用する実行特性計測処理を含
    めることを特徴とするプログラムの実行特性解析方法。
JP2243794A 1990-09-17 1990-09-17 プログラムの実行特性解析方法 Pending JPH04124741A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2243794A JPH04124741A (ja) 1990-09-17 1990-09-17 プログラムの実行特性解析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2243794A JPH04124741A (ja) 1990-09-17 1990-09-17 プログラムの実行特性解析方法

Publications (1)

Publication Number Publication Date
JPH04124741A true JPH04124741A (ja) 1992-04-24

Family

ID=17109049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2243794A Pending JPH04124741A (ja) 1990-09-17 1990-09-17 プログラムの実行特性解析方法

Country Status (1)

Country Link
JP (1) JPH04124741A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962538A (ja) * 1995-08-29 1997-03-07 Nec Corp 効率化支援装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962538A (ja) * 1995-08-29 1997-03-07 Nec Corp 効率化支援装置

Similar Documents

Publication Publication Date Title
Trachtenberg A general theory of software-reliability modeling
US5303147A (en) Computer aided planning method and system
CN110908789B (zh) 面向多源数据处理的可视化数据配置方法及系统
JPH04124741A (ja) プログラムの実行特性解析方法
CN112114817B (zh) 基于cobol语言的数据字典字段信息获取方法及装置
Schroeder Integrated program measurement and documentation tools
JPH0887417A (ja) コンパイラ装置
JPH0193826A (ja) 高級言語プログラムのダイナミックステップカウント方式
CN121144214B (zh) 一种基于Java调用链路评估测试覆盖率的方法及系统
Ince Software metrics
JP2785950B2 (ja) 2次元グラフ描画装置
Cote et al. A model for estimating perfective software maintenance projects
JPH04315255A (ja) データ処理システム用ワークベンチ/ツールボックスインターフェース
Lyon et al. Simple transforms for instrumenting FORTRAN decks
Strid Performance analysis of data structures in Java using micro benchmarking
Morris A control and data handling system for microanalysis using charged particle accelerators
Ammar et al. A computation-oriented program experimentation system (COPES)
JP4674742B2 (ja) コンパイル方法、デバッグ方法、およびデバッグプログラム
JP2623554B2 (ja) ベクトル計算機における動的ベクトル診断方式
JPS63276127A (ja) ダイナミック命令生成方式
JPS616722A (ja) 文の実行費用の計算方式
Meng et al. Static Program Analysis for Performance Modeling
Roberts et al. A portable assembler reverse engineering environment (PARE)
Dauphin Knowledge bases in debugging parallel and distributed systems based on event traces
e Silva et al. ConvBench: A Comprehensive Benchmark for 2D Convolution Primitive Evaluation