JPH07271572A - 動的ステップ数計算式の生成方法 - Google Patents

動的ステップ数計算式の生成方法

Info

Publication number
JPH07271572A
JPH07271572A JP6060471A JP6047194A JPH07271572A JP H07271572 A JPH07271572 A JP H07271572A JP 6060471 A JP6060471 A JP 6060471A JP 6047194 A JP6047194 A JP 6047194A JP H07271572 A JPH07271572 A JP H07271572A
Authority
JP
Japan
Prior art keywords
step number
calculation formula
dynamic step
statement
source code
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
JP6060471A
Other languages
English (en)
Inventor
Shuichi Matsumoto
秀一 松本
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.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering 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 Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP6060471A priority Critical patent/JPH07271572A/ja
Publication of JPH07271572A publication Critical patent/JPH07271572A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 複雑なコンピュータプログラムについて、見
易く意味を把握しやすい動的ステップ数の見積り計算式
を自動的に生成する。 【構成】 見積り計算式の生成対象のソースコード中
に、生成条件および意味情報を予め設定しておいた後、
前記生成条件に従ってソースコードを順次解析して動的
ステップ数の意味情報を含む計算式を生成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データベース管理プロ
グラムなど入力された条件で処理時間が変化する汎用的
なコンピュータプログラムについて、これを任意の条件
で動作させた場合に幾つのステップを通過して処理が終
了するかを示す動的ステップ数の計算式を自動的に生成
する方法に関する。
【0002】
【従来の技術】例えば、データベース管理プログラムに
おいては、検索条件の設定の仕方によって検索結果を得
るまでの時間が異なる。従って、このようなコンピュー
タプログラムを開発した後には、検索結果が得られるま
での時間が不当に長くならないかどうかを、様々な条件
の下で予測しておくことが必要になる。
【0003】そこで、ある条件下でプログラムを実際に
実行し、その時に実行した動的ステップ数を数値として
求める方法があった。しかし、この方法は、特定の実行
条件の下での動的ステップ数が計測されるだけであるの
で、プログラムの実行条件が変わった場合、動的ステッ
プ数も変化してしまい、結局、考え得るだけの条件を設
定して動的ステップ数を計測することになり、極めて煩
雑な作業になってしまうという問題があった。
【0004】そこで、データベース管理プログラムのよ
うな汎用的な基本ソフトウェアにおいては、動的ステッ
プ数を計算式として求めておいて、様々な条件下での性
能を予測するという方法が採られている。
【0005】従来、この計算式を求める作業は、人手に
よりプログラムのソースコードを解析し、動的ステップ
数を実行条件で場合分けし、各種変動値を変数にした計
算式を求めるという工程で実施されていた。
【0006】
【発明が解決しようとする課題】しかし、人手により動
的ステップ数の計算式を求める方法では、目的の計算式
を求める工数が大きい上、プログラムがエンハンスによ
り修正された場合は、計算式を最初から求め直さなけれ
ばならず、プログラムの修正等に対する柔軟性に欠ける
という問題があった。
【0007】この場合、プログラムのソースコードを解
析し、その制御構造から動的ステップ数を自動的に計算
式として求めるようにすることが考えられるが、大きな
プログラムでは判定条件のネストが多いので、詳細すぎ
て複雑で、解析の無関係の部分を含む計算式となり、実
用に耐えるものとはならない。
【0008】本発明の目的は、コンピュータプログラム
の動的ステップ数を、少ない工数で、かつプログラムの
修正等に対する柔軟性に優れ、マクロの観点で整理され
た動的ステップ数の計算式を自動的に生成することがで
きる動的ステップ数の計算式生成方法を提供することで
ある。
【0009】
【課題を解決するための手段】上記目的を達成するため
に、本発明は、コンピュータプログラムのソースコード
中の判定文や繰り返し文等の制御構造に着目し、基本的
には、見積り計算式の生成対象のソースコード中に、生
成条件および意味情報を予め設定しておいた後、前記生
成条件に従ってソースコードを順次解析して動的ステッ
プ数の意味情報を含む計算式を生成することを特徴とす
る。
【0010】さらに、詳しくは、ソースコード中に動的
ステップ数の計算式を生成する範囲を制御する生成条件
判定文を予め埋め込み、この判定文により生成条件を判
定し、その結果をもとに動的ステップ数の計算式の生成
範囲を決定し、さらにソースコード中のループ部分に
は、ループの繰り返し回数の意味を表すループ因数指定
文に予め埋め込み、ソースコード中の判定条件部分に
は、判定条件の意味を表す判定条件意味指定文を予め埋
め込み、これらの指定文を動的ステップ数の計算式に取
り込み、意味情報を含む動的ステップ数の計算式を生成
することを特徴とする。
【0011】さらに、ソースコード中のモジュールやサ
ブルーチンをコールする場所に、生成条件判定文に従っ
て生成条件を判定する時の変数値を設定する生成条件設
定文を予め埋め込んでおき、モジュール又はサブルーチ
ンが呼び出される場所の条件に応じて生成条件判定文の
判定結果を変化させ、実際に実行される条件に限定した
モジュール又はサブルーチンの動的ステップ数を含む動
的ステップ数の計算式を生成することを特徴とする。
【0012】
【作用】上記手段によれば、予めソースコードに埋めこ
まれたループ因数指定文や判定条件意味指定文を、それ
ぞれ動的ステップ数の計算式中の繰り返し数変数や場合
分け条件に置き換えることにより、繰り返しの意味や場
合分けの意味が分かり易い動的ステップ数の計算式が生
成される。
【0013】さらに、意味情報を含む動的ステップ数の
計算式を所望する観点で限定する場合、動的ステップ数
の計算式の生成に先立って、ソースコード中に計算式の
生成範囲を判定する生成条件判定文を予め埋め込んでお
く。そして、動的ステップ数の計算式の生成時には、生
成条件となる変数に値を設定する。すると、この設定し
た変数の値では条件を満たさない生成条件判定文が存在
する構文上のプログラムの部分を除外したプログラムの
部分についてのみ動的ステップ数の計算式が生成され
る。
【0014】また更に、他のプログラムモジュールやサ
ブルーチンを呼び出して処理を進めている部分では、生
成条件設定文によって実行条件となる変数により限定さ
れたプログラムモジュールの動的ステップ数の計算式が
取り込まれ、1つの動的ステップ数の計算式として出力
される。
【0015】
【実施例】以下、図示する実施例に基づいて本発明を詳
細に説明する。
【0016】図1は、本発明を適用した動的ステップ数
計算式の自動生成システムの一実施例を示すブロック構
成図である。
【0017】この実施例の動的ステップ数計算式の自動
生成システムは、中央処理装置100と、ソースコード
1を格納したソースファイル101と、キーボードから
成る生成条件設定装置102と、ディスプレイまたはプ
リンタで構成される出力装置103とから構成されてい
る。
【0018】このうち、ソースファイル101のソース
コード1の中には、後述するように、ユーザが設定した
生成条件判定文2、生成条件設定文3、ループ因数指定
文4、判定条件意味指定文5が予め埋め込まれている。
【0019】また、中央処理装置100は、動的ステッ
プ数生成範囲決定処理6、動的ステップ数組立て処理
8、動的ステップ意味解析処理10、基本ブロックの動
的ステップ数計算処理11から成る処理プログラムが組
み込まれている。
【0020】図2および図3は、この実施例の概略動作
を示すフローチャートである。
【0021】まず、動的ステップ数計算式の生成処理が
開始されると、基本ブロックの動的ステップ数計算処理
11がプログラムの基本ブロック毎の動的ステップ数を
求める(ステップ1001)。
【0022】次に、動的ステップ数組み立て処理8は、
プログラムの制御構造に着目してソースコード1を解析
し、基本ブロックの動的ステップ数計算処理11が求め
た動的ステップ数を基に、各部分の動的ステップ数を計
算する計算式に組み立てる。そして、それを動的ステッ
プ数計算式9として出力装置103に出力する(ステッ
プ1002)。
【0023】次に、ソースコード1中に存在する制御文
を全て処理したかどうかを調べ(ステップ1003)、
全て処理していたならば処理終了とする。
【0024】しかし、全て処理していなければ、制御文
はループ因数指定文4や判定条件意味指定文5である
か、生成条件判定文2であるかを調べる(ステップ10
04,1006)。
【0025】制御文がループ因数指定文4や判定条件意
味指定文5であれば、動的ステップ数意味解析処理10
が計算式中のそれぞれループ回数を示す変数及び場合分
け条件をループ因数指定文と判定条件指定文の内容に置
き換える(ステップ1005)。
【0026】また、生成条件判定文2であれば、動的ス
テップ数生成範囲決定処理6は、動的ステップ数計算式
の生成時点で生成条件設定装置102により指定された
変数の値あるいは、ソースコード1中の生成条件設定文
3により指定された変数の値を基に生成条件判定文2の
真偽を判定する(ステップ1007,1008)。
【0027】この結果、動的ステップ数生成範囲決定処
理6は、偽と判定された生成条件判定文2が存在すれ
ば、そのプログラムの部分を除外して計算式を組み立て
るように動的ステップ数組み立て処理8に指示を与える
(ステップ1009)。
【0028】この結果、出力される動的ステップ数計算
式9は、偽と判定された生成条件判定文が存在しないプ
ログラム部分だけの動的ステップ数を表す計算式とな
る。
【0029】図4にループ因数指定文4の記述例を示
す。
【0030】このループ因数指定文4は、「/*¥ L
OOP:」で始まる注釈であり、この文が存在するプロ
グラムのループの繰り返し回数の意味を示している。
【0031】図5に判定条件意味指定文5の記述例を示
す。
【0032】この判定条件意味指定文5は、「/*¥
CASE:」で始まる注釈であり、この文が存在するプ
ログラムの一つの分岐部分の実行条件の意味を表してい
る。
【0033】図6に生成条件設定装置102のよって設
定される生成条件設定内容7の例を示す。
【0034】この生成条件設定内容7は、動的ステップ
数の計算式の生成時に計算式の出力範囲を制御する変数
(この例では、実行モード)に対する代入文として、
「自動」を指定した例を示している。この生成条件設定
内容7は、動的ステップ数計算式自動生成システムの実
行時に、外部から前記変数に値を代入するために使用さ
れる。
【0035】図7に生成条件判定文2の記述例を示す。
【0036】この生成条件判定文2は、「/*?」で始
まる注釈であり、計算式の出力範囲を制御する変数(こ
の例では、実行モード及び件数カウント)に関する論理
式を含む。この論理式が偽である場合、生成条件判定文
2が存在するプログラムの部分に関する動的ステップ数
は、最終的に出力される計算式から除外される。
【0037】図8は生成条件判定文2の特殊な場合であ
る無条件除外文2aを示しており、無条件に偽と判定さ
れる生成条件判定文であることを示している。
【0038】図9に生成条件設定文3の記述例を示す。
【0039】この生成条件設定文3は、「/*!」で始
まる注釈であり、動的ステップ数の計算式の生成時に計
算式の出力範囲を制御する変数(この例では、実行モー
ド)に対する代入文として、「自動」を指定した例を示
している。この生成条件設定文3は、プログラムの部分
により異なる値を前記変数に代入するために、ソースコ
ード1の中に予め埋め込んでおくものである。
【0040】図10は、本発明を適用しない場合、すな
わちループ因数指定文4や判定条件意味指定文5を記述
しないソースコード1の記述例であり、図11は、これ
に対応する動的ステップ数の計算式の出力例である。
【0041】この例の場合、DO節は10ステップ(1
0S)、IF節は20ステップ、ELSE節は3ステッ
プとして基本ブロックの動的ステップ数計算処理によっ
てカウントされているが、図11の計算式110には、
ソースコード1に存在する判定条件やループの繰り返し
に関するコーディングの一部がそのまま動的ステップ数
の計算式の中で、繰り返し回数(COUNTN)や場合
分け(MODE,not)の意味付けに使用されてい
る。
【0042】従って、意味を理解しにくい計算式とな
る。さらに、一般にはソースコード中には判定文の多く
のネストが存在するため、出力された動的ステップ数の
計算式も場合分けがネストした非常に見にくいものとな
る。
【0043】図12は、本発明を適用した場合のソース
コード1の記述例であり、図13は、これに対応する動
的ステップ数の計算式の出力例である。
【0044】この例では、ループ因数指定文4で指定し
た内容「入力レコード数」が計算式111の中の繰り返
し回数の変数として使われている。
【0045】また、判定条意味指定文5で指定した内容
「モード=自動及びエラーケース」が計算式111中の
場合分けの説明として使われている。
【0046】図15は、生成条件判定文2や図8の無条
件除外文2aが埋め込まれているソースコード1の記述
例であり、図14はこれに対応する外部の生成条件設定
装置102によって設定される生成条件設定内容7の入
力例であり、図16はこれに対応する動的ステップ数の
計算式の出力例である。
【0047】この例では、生成条件設定内容7で変数実
行モードに「自動」を代入しているため、ソースコード
1中の生成条件判定文2が真と判定され、これが存在す
る分岐部分(IF節)の動的ステップ数(この例では2
0)が計算式112に含まれる。
【0048】また、生成条件判定文2の一種である無条
件除外文が存在するプログラムの分岐部分(THEN
節)の動的ステップ数は、出力された計算式112に含
まれていない。
【0049】この例では、ソースコード1中のプログラ
ムの判定文の分岐が生成条件判定文2の真偽の判定によ
り1つしか計算式112に含まれないため、計算式11
2の場合分けが不要となり、計算式112に場合分けは
表示されない。このため、ソースコード1に判定の分岐
が多くネストしている場合でも、出力された計算式11
2は単純になり見易いものとなる。
【0050】また、生成条件設定装置102から計算式
の所望の生成観点を与えることにより、その観点でしぼ
った動的ステップ数の計算式が出力されるため、この意
味でも見易いものとなる。
【0051】図17は、生成条件設定文3が存在するソ
ースコード1の記述例であり、図18はこれに対応する
動的ステップ数の計算式113の出力例である。
【0052】この例では、モジュールMOD1の2箇所
のコール場所で異なる生成条件設定文3が存在し、それ
ぞれ、計算式113の出力範囲を制御する変数(更新機
能)に「削除」と「追加」という異なる値を設定してい
る。このため、モジュールMOD1の中の動的ステップ
数は、コール場所の条件に応じてそれぞれ実際に実行さ
れる動的ステップ数だけが計算式113に反映される。
【0053】すなわち、図17の例では、「更新機能=
削除」の場合は、メイン処理部分の10ステップ部分と
モジュールMOD1の中の6ステップ部分のみが実行さ
れ、「更新機能=追加」の場合は、メイン処理部分の1
3ステップ部分とモジュールMOD1の中の5ステップ
部分のみが実行されるので、この実際に実行される動的
ステップ数だけが計算式113に反映される。
【0054】このように、実際には実行されないステッ
プに関する場合分けを除外して計算式を生成することに
より、非常に見易い計算式を得ることができる。
【0055】
【発明の効果】以上のように本発明によれば、ソースコ
ードに予め埋めこんだループ因数指定文や判定条件意味
指定文を、動的ステップ数計算式の中で、繰り返し回数
や場合分けの意味付けに使用するため、複雑なネスト構
造のプログラムであってもマクロの観点で整理された見
易く理解しやすい動的ステップ数の計算式を生成するこ
とができる。
【0056】しかも、ループ因数指定文や判定条件意味
指定文等の意味情報を予めソースコードに埋め込んでお
くとはいえ、ソースコードのプログラム構造を基に解析
を行うため、プログラムに修正が加えられても、埋め込
む意味情報を変更することなく、最新の状態の動的ステ
ップ数計算式を容易に得ることができ、プログラムの変
更や修正等に対して柔軟性が向上し、さらに従来人手に
頼っていた動的ステップ数計算式を求める作業の工数を
大幅に削減することができる。
【0057】また、ソースコードに予め埋めこんだ生成
条件判定文や生成条件設定文により、特定の観点で動的
ステップ数の計算式の適用条件を絞ったり、実際には実
行されない部分の無駄な場合分けを除外することができ
るため、大規模で複雑なコンピュータプログラムについ
て、動的ステップ数の計算式の自動生成が可能になり、
非常に大きな工数の削減効果が期待できる。
【図面の簡単な説明】
【図1】本発明を適用した動的ステップ数の計算式の自
動生成システムの一実施例を示すブロック構成図であ
る。
【図2】実施例の概略動作を示すフローチャートであ
る。
【図3】図2の続きを示すフローチャートである。
【図4】ループ因数指定文の例を示す説明図である。
【図5】判定条件意味指定文の意味を示す説明図であ
る。
【図6】生成条件設定内容の例を示す説明図である。
【図7】生成条件判定文の例を示す説明図である。
【図8】無条件除外文の例を示す説明図である。
【図9】生成条件設定文の例を示す説明図である。
【図10】ループ因数指定文や判定条件意味指定文がな
いソースコードの例を示す説明図である。
【図11】図10に対応する動的ステップ数計算式の出
力例を示す説明図である。
【図12】ループ因数指定文や判定条件意味指定文があ
るソースコードの例を示す説明図である。
【図13】図12に対応する動的ステップ数計算式の出
力例を示す説明図である。
【図14】生成条件設定内容の入力例を示す説明図であ
る。
【図15】生成条件判定文や無条件除外文があるソース
コードの例を示す説明図である。
【図16】図15に対応する動的ステップ数計算式の出
力例を示す説明図である。
【図17】生成条件設定文のあるソースコードの例を示
す説明図である。
【図18】図17に対応する動的ステップ数計算式の出
力例を示す説明図である。
【符号の説明】
1…コンピュータプログラムのソースコード、2…生成
条件判定文、3…生成条件設定文、4…ループ因数指定
文、5…判定条件意味指定文、6…動的ステップ数生成
範囲決定処理、8…動的ステップ数組み立て処理、9…
動的ステップ数計算式、10…動的ステップ数意味解析
処理、11…基本ブロックの動的ステップ数計算処理、
102…生成条件設定装置、103…出力装置、11
1,112,113…計算式。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータプログラムのソースコード
    を解析してプログラムの動的ステップ数の見積り計算式
    を自動的に生成する方法であって、 見積り計算式の生成対象のソースコード中に、生成条件
    および意味情報を予め設定しておいた後、前記生成条件
    に従ってソースコードを順次解析して動的ステップ数の
    意味情報を含む計算式を生成することを特徴とする動的
    ステップ数計算式の生成方法。
  2. 【請求項2】 ソースコード中に動的ステップ数の計算
    式を生成する範囲を制御する生成条件判定文を予め埋め
    込み、この判定文により生成条件を判定し、その結果を
    もとに動的ステップ数の計算式の生成範囲を決定し、さ
    らにソースコード中のループ部分には、ループの繰り返
    し回数の意味を表すループ因数指定文に予め埋め込み、
    ソースコード中の判定条件部分には、判定条件の意味を
    表す判定条件意味指定文を予め埋め込み、これらの指定
    文を動的ステップ数の計算式に取り込み、意味情報を含
    む動的ステップ数の計算式を生成することを特徴とする
    請求項1記載の動的ステップ数計算式の生成方法。
  3. 【請求項3】 ソースコード中のモジュールやサブルー
    チンをコールする場所に、前記生成条件判定文に従って
    生成条件を判定する時の変数値を設定する生成条件設定
    文を予め埋め込んでおき、前記モジュール又はサブルー
    チンが呼び出される場所の条件に応じて前記生成条件判
    定文の判定結果を変化させ、実行される条件に限定した
    モジュール又はサブルーチンの動的ステップ数を含む動
    的ステップ数の計算式を生成することを特徴とする請求
    項2記載の動的ステップ数計算式の生成方法。
JP6060471A 1994-03-30 1994-03-30 動的ステップ数計算式の生成方法 Pending JPH07271572A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6060471A JPH07271572A (ja) 1994-03-30 1994-03-30 動的ステップ数計算式の生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6060471A JPH07271572A (ja) 1994-03-30 1994-03-30 動的ステップ数計算式の生成方法

Publications (1)

Publication Number Publication Date
JPH07271572A true JPH07271572A (ja) 1995-10-20

Family

ID=13143228

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6060471A Pending JPH07271572A (ja) 1994-03-30 1994-03-30 動的ステップ数計算式の生成方法

Country Status (1)

Country Link
JP (1) JPH07271572A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002073369A (ja) * 2000-06-12 2002-03-12 Fujitsu Ltd オブジェクト指向プログラム性能改善支援装置、記録媒体及びプログラム
JP2006004211A (ja) * 2004-06-18 2006-01-05 Hitachi Ltd ハードウェアモニタを用いた性能解析方法
JPWO2018150588A1 (ja) * 2017-02-20 2019-06-27 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002073369A (ja) * 2000-06-12 2002-03-12 Fujitsu Ltd オブジェクト指向プログラム性能改善支援装置、記録媒体及びプログラム
JP2006004211A (ja) * 2004-06-18 2006-01-05 Hitachi Ltd ハードウェアモニタを用いた性能解析方法
JPWO2018150588A1 (ja) * 2017-02-20 2019-06-27 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム

Similar Documents

Publication Publication Date Title
US4949253A (en) Method and apparatus for automatically generating program
KR920003499B1 (ko) 지식처리를 응용한 계산기 제어 시스템
US6996811B2 (en) Method for creating a performance model of an application program adjusted with an execution result of the application program
US7168059B2 (en) Graphical loop profile analysis
JPH02264329A (ja) プログラム自動生成装置
CA2433996A1 (en) Software tool for heuristic search methods
US5303147A (en) Computer aided planning method and system
US6173245B1 (en) Programmable logic array device design using parameterized logic modules
JP2003233499A (ja) 複数の意味レベルによるアスペクト指向プログラミングのための方法
CN115222030A (zh) 深度学习网络算子程序的自动调优加速方法
JP2000066919A (ja) 制約有効性チェック
JPH07271572A (ja) 動的ステップ数計算式の生成方法
JP2002259464A (ja) 実験計画法の支援装置、方法及びプログラム
GB2405956A (en) A program for determining an adaptive control value
Clarke et al. The development of an intelligent, integrated building design system within the European COMBINE project
US5819287A (en) Database driven automatic program production system
JP2002268879A (ja) プログラム設計支援装置、プログラム設計支援方法及びプログラム設計支援方法をコンピュータに実行させるためのプログラム。
CN115794120B (zh) 一种基于高阶函数的动态程序依赖簇检测方法
JPS6073436A (ja) 検量線作成装置
JPH0721032A (ja) プログラム最適化処理方式
JPH05241915A (ja) 動的解析情報の予測算出方式
JPH0981604A (ja) ソフトウェア/ハードウェア協調設計システム及びその設計方法
KR20060074676A (ko) 개발도구의 객체메서드 자동생성방법및 시스템
JPH02163823A (ja) システム構成決定時の設定値チェック方式
JPH02287737A (ja) テスト項目自動設計方式