JPH0784773A - 集計プログラム自動生成装置 - Google Patents

集計プログラム自動生成装置

Info

Publication number
JPH0784773A
JPH0784773A JP22929793A JP22929793A JPH0784773A JP H0784773 A JPH0784773 A JP H0784773A JP 22929793 A JP22929793 A JP 22929793A JP 22929793 A JP22929793 A JP 22929793A JP H0784773 A JPH0784773 A JP H0784773A
Authority
JP
Japan
Prior art keywords
program
specifications
aggregate
aggregation
totalization
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
JP22929793A
Other languages
English (en)
Inventor
Hiroaki 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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP22929793A priority Critical patent/JPH0784773A/ja
Publication of JPH0784773A publication Critical patent/JPH0784773A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】集計プログラムの仕様を定められた形式の仕様
記述言語により記述し、プログラム自動生成装置を動作
させるだけで、集計プログラムを自動的に得る。 【構成】仕様書解析部101は、プログラム仕様書2と
して入力されたデータ項目および複数の集計動作仕様を
解析して集計プログラム仕様内部表現102を得る。起
動タイミング判定部103は、解析された各集計動作仕
様を各々の起動タイミングに基づいて分類し、起動タイ
ミング別集計プログラム仕様104を得る。動作条件判
定部105は、各々の起動タイミング毎にそれに対応す
る集計動作を調べ、集計動作が複数個ある起動タイミン
グについてはどの動作条件の項目を最初に判定するのが
最適かを判定し、起動タイミング毎にどの集計動作を行
うか記述した集計プログラム内部表現106を得る。集
計プログラム出力部107は、集計プログラム内部表現
106を集計プログラム4として出力する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、事象起動型のプログラ
ム言語を使用して集計プログラムの仕様を定義し、この
定義された仕様に基づいて集計プログラムを自動的に生
成する装置に関する。
【0002】
【従来の技術】集計プログラムとは、いくつかのデータ
を順次受信し、その中で特定の条件を満たしているデー
タの数、データに含まれる特定の値の合計、データ内の
特定の項目に対して演算を施した結果の合計等を計算
し、集計結果報告の要求があったとき、これらの集計結
果を報告するプログラムである。
【0003】集計プログラムを開発する場合には、まず ・どのような名称の項目を集計するか ・各集計項目はに対してどのような演算が求められる
か、すなわち該当するデータを発見する度に値を1ずつ
増やすのか、データに含まれる適当な値を加算するのか
等 ・複数の集計項目の合計、平均などの統計データは必要
としているか。その項目の名称は何か、それらはどのよ
うな計算式で求めることができるか ・各集計項目はどのような形式の報告を求められるか ・各集計項目はいつゼロクリアするか といったことを集計プログラム仕様書として定義する。
次に開発者はこの集計プログラム仕様書をもとに、集計
プログラムを開発する。
【0004】
【発明が解決しようとする課題】ところが、集計項目が
多く、しかも集計するべき条件が複雑な場合には、集計
プログラムを誤りなく開発することは困難であり、ま
た、長い開発時間が必要であった。
【0005】このような問題点を解決するために、従来
から、種々のプログラム生成手法が提案されている。た
とえば、特開平3−138729号公報に記載の「項書
き換えによるプログラム変換処理方式」は、項書換部と
複数の書き換えルールとを有する計算機言語処理システ
ムに対してプログラムを規定する入力データを入力する
と、この入力データに対して各書き換えルールを順次適
用していき、書換結果を実行可能としたプログラムとし
て出力するものである。しかし、このような入力データ
に対して書き換えルールを適用するプログラムの生成手
法は、多くの場合複雑な記述を単純化するために用いら
れており、集計プログラムのように、仕様が複雑なプロ
グラムの生成には、書き換えルールが膨大なものになっ
てしまい、不適当であった。
【0006】また、特開平3−286226号公報に記
載の「プログラム生成方法およびシステム」は、処理す
るデータ項目に対し、データを操作するための処理と、
このデータ操作を制御する条件とによりプログラムの仕
様を定義してソースプログラムを生成するものであっ
て、特に、前記条件および処理を各々表形式で定義した
ものである。確かに、この従来技術によれば、処理する
データ項目についての条件とその処理を表中に記入する
ことにより、プログラムの仕様が決定されるため、仕様
記述上の不統一がなくなり、記述自体も容易になるの
で、仕様をもとにしたプログラムの生成が容易に実施で
きる。しかし、この従来技術でも、プログラム自体の生
成は、従来から採用されていた時系列タイプのプログラ
ム言語によってなされているので、集計プログラムのよ
うに、要求される仕様が必ずしも時系列に沿って発生し
ないプログラムを生成するには適していなかった。ま
た、集計プログラムでは、プログラムの仕様を決定する
条件や処理を表形式で記載することが困難な場合もあっ
て、このような表形式を前提とするこの従来技術を採用
できないこともあった。
【0007】さらに、前記のような従来技術の問題点を
解決するために、最近では、特開昭3−98127号公
報に記載の「事象起動型プログラム言語」のように、事
象が離散的に発生しする場合に、その事象毎に夫々の処
理を行うのに適したプログラム言語が提案されている。
この事象起動型のプログラム言語によってプログラムを
作成する場合は、時間順序を考慮することなく、事象を
もとにそれに対応する処理を羅列的に記載するだけで良
いので、従来の時系列的なプログラム言語に比較する
と、開発作業が容易になる。
【0008】ところが、前記の公報に開示された事象起
動型プログラム言語は、事象とこれによって起動する処
理とをプログラム記述の基本単位としているため、比較
的単純なプログラムにはそのまま適用することができて
も、本発明が対象とする集計プログラムのように複雑な
プログラムに対しては採用することが不可能であった。
すなわち、この従来技術は、事象とそれに対応する処
理、言い換えれば、条件とそれに対応する処理のみを事
象起動型プログラム言語として表現するものに過ぎない
から、集計プログラムのようにある特定のタイミングが
整った場合に、そのタイミングに応じた条件と処理が必
要となる複雑なプログラムについてそのまま使用するこ
とは不可能であった。
【0009】本発明は前記のような従来技術の問題点、
すなわち開発される集計プログラムに誤りが発生し易い
こと、ならびに集計プログラムの開発に長い時間を要す
るという2つの問題点を解決するために提案されたもの
である。すなわち、本発明の目的は、開発者がユーザー
の要求を反映した集計プログラム仕様書を仕様記述言語
に基づいて記述することにより、実際のプログラミング
作業を行うことなく、集計プログラム仕様書に書かれた
内容を正確に反映した集計プログラムを直ちに得ること
ができる集計プログラム生成装置を提供することにあ
る。
【0010】
【課題を解決するための手段】前記のような目的を達成
するために、本発明は、次のような手段を採用したこと
を特徴とする。なお、各請求項の発明に使用された用語
についての定義は、次の通りである。
【0011】(プログラム仕様書)データ項目と動作仕
様(集計動作仕様を含む)を記述したもの。キーワード
とそれに対応する記述によって仕様を記述することが好
ましい。 (データ項目)集計プログラムが取り扱うデータの項
目。プログラム仕様書に記載される。 (動作仕様)集計プログラムが対応する動作全般につい
ての仕様。集計動作仕様とその他の動作仕様を含む。プ
ログラム仕様書に記述される。 (集計動作仕様)動作仕様の中で、特に集計動作に関す
る仕様。仕様書への記述に当たっては、少なくとも、起
動タイミング、動作条件並びに動作内容を含む。
【0012】まず、請求項1の発明は、集計プログラム
で取り扱うデータ項目と、集計プログラムが実行する複
数の集計動作について、その起動タイミング、動作条件
並びに動作内容を含む集計動作仕様とを記述したプログ
ラム仕様書を入力し、入力されたプログラム仕様書から
データ項目および各集計動作仕様を解析する仕様書解析
部と、前記仕様書解析部で解析された各集計動作仕様
を、各々の起動タイミングに基づいて分類し、起動タイ
ミング別集計プログラム仕様を得る起動タイミング判定
部と、この起動タイミング別の集計プログラム仕様を実
行可能な集計プログラムとして出力する集計プログラム
出力部とを備えていることを特徴とする。
【0013】請求項2の発明は、集計プログラムで取り
扱うデータ項目と、集計プログラムが実行する複数の集
計動作について、その起動タイミング、動作条件並びに
動作内容を含む集計動作仕様とを記述したプログラム仕
様書を入力し、入力されたプログラム仕様書からデータ
項目および各集計動作仕様を解析して集計プログラム仕
様内部表現を得る仕様書解析部と、前記仕様書解析部で
解析された各集計プログラム仕様内部表現を、各々の起
動タイミングに基づいて分類し、起動タイミング別集計
プログラム仕様を得る起動タイミング判定部と、前記起
動タイミング別集計プログラム仕様における各々の起動
タイミング毎にそれに対応する集計動作を調べ、集計動
作が複数個ある起動タイミングについてはどの順番で動
作条件の項目を判定するのが最適かを判定し、各起動タ
イミング毎にどのような条件のもとでどの集計動作を行
うか記述した集計プログラム内部表現を得る動作条件判
定順位決定部と、前記集計プログラム内部表現を、実行
可能な集計プログラムとして出力する集計プログラム出
力部とを備えていることを特徴とする。
【0014】請求項3の発明は、前記各請求項に記載の
発明において、入力されたプログラム実現上の制約を解
析する制約解析部と、この制約解析部によって解析され
た制約と前記集計プログラム内部表現を、実行可能な集
計プログラムとして出力する集計プログラム出力部とを
備えていることを特徴とする。
【0015】請求項4の発明は、データ項目および各動
作仕様に含まれる起動タイミング、動作条件並びに動作
内容が、キーワードとそれに対応する記述とから構成さ
れていることを特徴とする。
【0016】
【作用】前記のような構成を有する請求項1の発明にお
いては、プログラム開発者が仕様書入力部に対してデー
タ項目と複数の集計動作仕様を記述したプログラム仕様
書を入力すると、仕様書に記述された前記各集計動作の
起動タイミング、動作条件およびそれに対応する動作内
容が、仕様書解析部によって本装置が理解できる形式に
解析される。次に、解析された各集計動作仕様を、起動
タイミング判定部により各々の起動タイミングに基づい
て分類し、タイミング別集計プログラム仕様を得る。こ
のタイミング別集計プログラム仕様において、各起動タ
イミング毎に分類された動作条件とそれに対応する動作
内容に関する部分は、従来公知の動作条件と動作内容を
記述する仕様記述言語によって記述することが可能であ
るから、本装置に入力する集計プログラム仕様書を予め
仕様記述言語によって記述しておけば、動作タイミング
を要求される複雑な集計プログラムであっても、タイミ
ング別集計プログラム仕様から実行可能な集計プログラ
ムを容易に生成することができる。
【0017】請求項2の発明においては、前記請求項1
の発明に加えて、動作条件判定順位決定部により、起動
タイミング別集計プログラム仕様における各々の起動タ
イミング毎にそれに対応する集計動作を調べ、集計動作
が複数個ある起動タイミングについてはどの動作条件の
項目を最初に判定するのが最適かを判定する。その結
果、どのような条件のもとでどのような動作内容を行な
う必要があるかを、最小の条件判定操作により判定で
き、実行効率に優れたプログラムを得ることができる。
【0018】請求項3の発明においては、集計プログラ
ム仕様書によるデータ項目や動作仕様に加えて、プログ
ラム実現上の制約を実行可能な集計プログラムに反映さ
せることができる。
【0019】請求項4の発明においては、データ項目及
び各動作仕様がキーワードを含む形で記述されているの
で、データ項目の判定や各動作仕様の解析が簡単に行う
ことができる。特に、動作仕様をキーワードに従って解
析することにより、起動タイミング判定部において、解
析された仕様の中から起動タイミングに関する仕様を選
択することが容易になる。
【0020】
【実施例】以下に、本発明の一実施例に基づき、本発明
に係る内容を詳細に説明する。
【0021】(1)装置の全体構成・・・図1 図1は本実施例におけるプログラム自動生成装置と、そ
の外部との関係を示す構成図である。プログラム自動生
成装置1は集計プログラム仕様書2、ならびにプログラ
ム実現上の制約3を入力とし、集計プログラム4を生成
する。ここで、集計プログラム仕様書、ならびにプログ
ラム実現上の制約は開発者が与える。
【0022】(2)装置の動作・・・図2 図2は本実施例におけるプログラム自動生成装置により
生成された集計プログラムが動作する様子を説明する構
成図である。集計装置10において、集計プログラム4
は原データ受信装置が受信するデータを順次受け取る。
そして集計プログラム4は該データを調べ、集計すべき
項目を判断し、集計データ6に保存されている集計の値
のうち更新すべきものを更新する。また、集計プログラ
ム4は集計監視装置7を介してキーボード8から入力さ
れた集計結果報告の命令を受ける。このとき集計プログ
ラム4は集計データ6に保存されている集計結果をもと
に、予め用意された形式に集計結果をまとめ、集計監視
装置7を介して表示装置9に結果を出力する。また、集
計プログラム4は集計監視装置を介してキーボード8よ
り集計データクリアの命令を受ける。このとき集計プロ
グラム4は集計データ6に保存されている集計項目を全
てゼロクリアする。
【0023】(3)装置の構成の詳細・・・図3 次に、プログラム自動生成装置1の構成並びに動作をや
や詳しく説明する。図3は図1に示したプログラム自動
生成装置1の内部を説明するブロック図である。このプ
ログラム自動生成装置1は、集計プログラムで取り扱う
データ項目と、集計プログラムが実行する複数の集計動
作について、その起動タイミング、動作条件並びに動作
内容を含む集計動作仕様とを記述したプログラム仕様書
2を入力し、このプログラム仕様書2として入力された
データ項目および各集計動作仕様を解析して集計プログ
ラム仕様内部表現102を得る仕様書解析部101を備
えている。また、前記仕様書解析部101で解析された
各集計動作仕様を、各々の起動タイミングに基づいて分
類し、起動タイミング別集計プログラム仕様104を得
る起動タイミング判定部103を有する。
【0024】起動タイミング判定部103は、前記起動
タイミング別集計プログラム仕様104における各々の
起動タイミング毎にそれに対応する集計動作を調べ、集
計動作が複数個ある起動タイミングについてはどの順番
で動作条件の項目を判定するのが最適かを判定し、起動
タイミング毎にどの集計動作を行うか記述した集計プロ
グラム内部表現106を得る動作条件判定順位決定部1
05に接続されている。さらにこの動作条件判定順位決
定部105が、前記集計プログラム内部表現106を、
集計プログラム4として出力する集計プログラム出力部
107とを備えている。
【0025】また、集計プログラム実現上の制約3を入
力し、その内容を本装置が理解できる形式に解析するた
めの制約解析部110を備えている。本実施例では、集
計プログラムで使用するデータの宣言、メッセージ送信
の手続、メッセージ受信の手続などを、プログラム仕様
書に記述することなくプログラム実現上の制約として与
えるため、この制約解析部110で分析されたプログラ
ム実現上の各制約は、送受信メッセージ用手続ライブラ
リ111及び集計データ内領域作成ライブラリ112と
して蓄積され、集計プログラム内部表現106と共に集
計プログラム出力部107に与えられる。
【0026】(4)仕様書解析部101・・・図4 前記(3)で述べたように、本実施例のプログラム自動
生成装置1を構成する集計プログラム仕様書解折部10
1は、開発者が事象起動型の仕様記述言語によって作成
した集計プログラム仕様書2を読み込み、これと意味が
等しくしかも本装置が理解できるような集計プログラム
内部表現102を作成する。図4は、仕様記述言語によ
る集計プログラム仕様書2の記述例である。
【0027】集計プログラム仕様書はここではリスト構
造を用いて書かれており、大きく ・受信メッセージ ・送信メッセージ ・内部で使用するデータ項目 ・集計動作 の4つの仕様が含まれている。各々の仕様はリストの最
初のアトムがキーワードr message,s me
ssage,data,whenであり、これによって
そのリストが何を指定しているかを識別する。
【0028】受信メッセージは (r message 内部呼称 メッセージ受信手
段) という形式で書く。ここで、内部呼称は空白、改行を含
まない適当な文字列、メッセージ受信手段はプログラム
の手続き名である。メッセージ受信手段に該当するプロ
グラムの実体はプログラム実現上の制約3に記載する。
以後これと同じ名称が集計プログラム仕様書に現れた場
合には、これをメッセージ受信手段によって知ることの
できる、メッセージが到着した事象を意味するものと解
釈する。
【0029】送信メッセージは (s message 内部呼称 メッセージ送信手
段) という形式で書く。ここで、内部呼称は空白、改行を含
まない適当な文字列、メッセージ送信手段はプログラム
の手続き名である。メッセージ送信手段に該当するプロ
グラムの実体はプログラム実現上の制約3に記載する。
以後これと同じ名称が集計プログラム仕様書に現れた場
合には、これをメッセージ送信手段によって達成され
る、メッセージ送信の命令を意味すると解釈する。
【0030】内部で使用するデータ項目は (data 内部呼称 サイズ データ形式) という形式で書く。ここで、内部呼称は空白、改行を含
まない適当な文字列、サイズは数字+byteまたは数
字+bitの何れか、データ形式はbinary,bc
d,time formの何れかを書く。この形式のデ
ータ項目の指定がある場合には、集計プログラム4は図
2の集計データ6にここで指定されたサイズの記述領域
を作成する。そしてその内部をデータ形式で指定された
形式で使用する。また、以後この内部呼称が集計プログ
ラム仕様書に現れた場合には、これを前記作成された記
述領域を意味すると解釈する。
【0031】集計動作は (when 起動タイミング if 動作条件 then 動作内容) という形式で書く。ここで、when,if,then
は各々キーワードで、その後に起動タイミング、動作条
件、動作内容が続くことを意味している。ただし起動タ
イミングに対して常に動作内容に書かれた動作を行いた
い場合には、キーワードifと動作条件を省略する。起
動タイミングは受信メッセージの内部呼称を書く。動作
条件、ならびに動作内容の書き方は後述する。集計仕様
は起動タイミングに相当する受信メッセージを受けたと
き、動作条件を判定してその結果が真ならば、動作内容
に記載された全ての動作を記載通りの順番に行うことを
意味する。
【0032】動作条件は (データ名 値)または(データ名 値1 値2) という形式の項目を1つまたは2つ以上並べて書く。こ
こで、データ名は内部で使用するデータ項目の内部呼称
を書く。また、値、値1、値2は全て10進数または1
6進数の数値または対応するデータ名のデータ形式がt
ime formの場合には時刻形式のデータ、たとえ
ば0:00や12:00などを書く。動作条件を評価す
ると、(データ名 値)の形式の動作条件はデータ名が
指すデータ項目の数値が等しいとき真、それ以外の場合
には偽となる。また、(データ名値1 値2)の形式の
動作条件はデータ名が指すデータ項目の数値が値1数値
以上、かつ値2の数値以下の場合には真、それ以外の場
合には偽となる。動作条件の項目が1つの時はその項目
が真の時、項目が2つ以上あった場合、全ての項目が真
の時、この動作条件は真となる。
【0033】動作内容は (データ名 操作)または(メッセージ) という形式の項目を一つまたは2つ以上並べて書く。こ
こでデータ名は内部で使用するデータ項目の内部呼称を
書く。また、メッセージは送信メッセージの内部呼称を
書く。
【0034】操作は +値,=値,(式) の中から選択する。値は10進数または16進数、また
は該動作内容のデータ名のデータ形式がtime fo
rmの場合には時刻形式の数値を書く。これらは各々デ
ータ名により参照される集計データ6の記憶領域に対し
て値で示される数値を加算する、値で示される数値を代
入する、式の演算結果を代入することを意味する。ま
た、(メッセージ)の形式の動作内容は、該当するメッ
セージを送信することを意味する。
【0035】式は ・式+データ名または値 ・式−データ名または値 ・式*データ名または値 ・式/データ名または値 ・データ名または値 の中から選択して書く。データ名とは内部で使用するデ
ータ項目の内部呼称であり、値は10進数または16進
数、または動作内容のデータ名のデータ形式がtime
formの場合には時刻形式の数値を書く。各々演算
子の左側の式の計算結果とデータ名または値の評価結果
を加算、減算、乗算、除算すること、そしてデータ名ま
たは値の評価結果をそのまま式の計算結果とすることを
意味する。時刻形式のデータ形式に対して乗算、除算を
指定することはできない。
【0036】受信メッセージ、ならびに送信メッセージ
を集計プログラム仕様書2へ記載せず、プログラム実現
上の制約3に記載する方式もあるが、こちらの方法によ
っても同じ集計プログラム4を導くことが可能である。
ただしこのような仕様とした場合、プログラム実現上の
制約解折部110では受信メッセージならびに送信メッ
セージの解折機能が必要である。また、解折の結果得ら
れる受信メッセージ、ならびに送信メッセージの内部表
現は起動タイミング判定部103の動作で必要となる。
【0037】 (5)起動タイミング判定部103・・・図5、図6 前記(4)で述べた仕様書解析部101で解析された集
計プログラム仕様内部表現102の、特に集計動作に関
する仕様に基づいて、起動タイミング別集計プログラム
仕様104が作られる。
【0038】図5は起動タイミング別集計プログラム仕
様104のデータ構造の一例をブロック図を用いて説明
するものである。この起動タイミング別集計プログラム
仕様104は、集計プログラム仕様内部表現102の集
計動作に関する仕様を、起動タイミング毎にまとめ、さ
らに対応する受信メッセージの存在を確認したものであ
る。
【0039】図6は、図5のような起動タイミング別集
計プログラム仕様104を得るため起動タイミング判定
部103の動作をフローチャートにより示したものであ
る。以下、図6に従って起動タイミング判定部103の
動作を説明する。起動タイミング判定部103は、まず
集計プログラム仕様内部表現102の仕様を順番に一つ
ずつ取り出す(ステップ601)。そしてそれが集計動
作に関する仕様かそうでないかを判別し(ステップ60
2)、集計動作の仕様でないならば次の仕様を取り出
す。一方それが集計動作に関する仕様の場合には、その
起動タイミングを調べる(ステップ603)。それがま
だ起動タイミング判定部に登録されていないタイミング
ならば、これを登録する(ステップ604)。そして、
何れの場合もその集計動作に関する仕様を登録した起動
タイミングに関連して登録する(ステップ605)。全
ての仕様を調べ終わったとき、次に起動タイミング判定
部に登録された起動タイミングが対応する受信メッセー
ジに関する仕様を持っているかを調べる。まず、登録さ
れた起一つずつ取り出す(ステップ606)。そしてそ
の起動タイミングに対応する内部呼称を持つ、受信メッ
セージの仕様があるかどうかを調べる。ここで、もし対
応する受信メッセージの仕様がないならば、エラーメッ
セージを出力して(ステップ607)、処理を停止す
る。全ての登録された起動タイミングに対応する受信メ
ッセージの仕様が存在することがわかったら、起動タイ
ミング判定部103は正常に終了する(ステップ60
8) (6)動作条件判定順位決定部105・・・図7、図8
〜10図 前記(5)の起動タイミング判定部103で得られた起
動タイミング別集計プログラム仕様104には、図5の
ように各起動タイミング毎に種々の動作内容とそれを実
施するための条件が分類して記述されている。動作条件
判定順位決定部105は、起動タイミング判定部103
で判定された各タイミング毎に、そのタイミングにおい
て行われる動作内容とその動作内容を実行するための条
件とを分析して、これを集計プログラムに変換できる形
式で記述した集計プログラム内部表現106を得るもの
である。特に、本実施例において、この動作条件判定順
位決定部105は、どのような条件のもとでどのような
動作内容を行なう必要があるかを、最小の条件判定操作
により判定できるよう考慮したものとなっている。
【0040】図7は、動作条件判定順位決定部105に
よって得られる集計プログラム内部表現106のデータ
構造の一例をブロック図を用いて説明するものである。
この集計プログラム内部表現106は、データ到着のメ
ッセージを受信した時、最初に入出場フラグが0かどう
かを調べ、その結果が真であるか偽であるかによって次
の条件判定操作を変えている。この順番にデータを判定
することによりどのような到着メッセージに対しても2
回の条件判定操作で集計すべき動作内容を割り出すこと
が可能である。
【0041】図8〜10図は、前記のような動作条件判
定順位決定部105の動作をフローチャートを用いて説
明するものである。以下、図8〜10図にしたがって動
作条件判定順位決定部105の動作を説明する。
【0042】まず、図8に示すように、動作条件判定順
位決定部105は起動タイミング別集計プログラム仕様
104から1つずつ順に起動タイミングを取り出す(ス
テップ801)。この起動タイミングにはそのタイミン
グで起動する集計動作が付属している。次に、この付属
している集計動作を全て取り出し(ステップ802)、
これを引数として処理部Aを呼び出す(ステップ80
3)。この処理部Aは与えられた集計動作に対して動作
の必要/不要を判定する最適の判断プログラム、ならび
にそれらの動作内容に相当するプログラムのブロックを
戻す。このプログラムのブロックを該起動タイミングに
結合して(ステップ804)、該起動タイミングにおい
て条行するべきプログラムの内部表現が作られる。全て
の起動タイミングに対して実行するべきプログラムの内
部表現を作り、集計プログラム内部表現106とする。
【0043】次に、処理部Aで行われる処理を図9およ
び図10により説明する。処理部Aは1つまたは複数の
集計動作の、if動作条件ならびにthen動作内容に
相当する記述を引数として受け取る。そして該集計動作
の実行すべき動作内容を判断し、それを実行するプログ
ラムを戻すものである。
【0044】まず、図9に示すように、処理部Aは集計
動作が1つか複数かを判断する(ステップ805)。集
計動作が一つの場合は、どの動作条件の項目から評価し
ても同じなので動作条件と動作内容とをそのまま戻す
(ステップ823)。次に、集計動作が複数個ある場
合、どの動作条件の項目を最初に判定するのが最適かを
考える。まず、該当する集計動作に含まれる全ての動作
条件の項目をリストアップし、重複を取り除く(ステッ
プ806)。その後、動作条件の項目を一つずつ選び出
し(ステップ807)、その項目を判断すると対象が絞
れる集計動作の数、すなわち動作条件にその項目が含ま
れる集計動作、ならびに動作条件にその項目とちょうど
論理否定の関係にある項目が含まれる集計動作の数を数
える(ステップ808)。そしてその個数が最大の動作
条件の項目を選び出す(ステップ809,810)。
【0045】このようにして選び出した動作条件の項目
の判定に対しては、その結果が真の時実行し得る集計動
作、結果が偽の時実行し得る集計動作、その項目に関係
なく実行し得る集計動作の3種類の集計動作が一般に存
在する。そこで、これらに対応するプログラムを各々
B、C、Dと名付け、次にこれを求める。すなわち、図
10に示すように、動作条件に該動作条件の項目を含む
集計動作をもとの集計動作からリストアップし (ステ
ップ811)、これらの動作条件下ら該動作条件の項目
を除去し(ステップ812)、得られた仕様を引数とし
て処理部Aを再帰的に呼び出す(ステップ813)。そ
の実行結果はBである(ステップ814)。
【0046】同様に、動作条件に該動作条件の項目とち
ょうど論理否定の関係にある項目を含む集計動作をリス
トアップし(ステップ815)、該動作条件の項目を除
去し(ステップ816)、得られた仕様を引数として処
理部Aを再帰的に呼び出す(ステップ817)。その実
行結果はCである(ステップ818)。さらに、動作条
件に該動作条件の項目、それとちょうど論理否定の関係
にある項目の何れも含まない集計動作をリストアップし
(ステップ819)、これを引数として処理部Aを再帰
的に起動する(ステップ820)。その実行結果はDで
ある(ステップ821)。最後にこれらをプログラムの
形式に結合して(ステップ822)、プログラムの内部
表現を得る。
【0047】(7)プログラム実現上の制約・・・図3 前記(6)のようにして得られた集計プログラム内部表
現106に基づき、これと等価な集計プログラム4を生
成する。ただし、本実施例では、集計プログラム内部表
現106はプログラム仕様書に記述された集計動作仕様
に基づいて生成されているので、プログラムで使用する
データの宣言、メッセージ送信の手続き、メッセージ受
信の手続きが含まれていない。そこで、使用するデータ
の宣言は、集計プログラム仕様内部表現103の内部で
使用するデータ項目に基づき、集計データ内領域作成ラ
イブラリ112から必要な手続きを抜き出すことで作成
する。メッセージ送信の手続きは、集計プログラム内部
表現で使用されている送信メッセージの名称をもとに集
計プログラム仕様内部表現102の送信メッセージを参
照して手続き名を求め、送受信メッセージ用手続きライ
ブラリ111から必要な手続きを抜き出すことにより作
成する。メッセージ受信の手続きは、集計プログラム内
部表現で使用されている受信メッセージの名称をもとに
集計プログラム仕様内部表現102の受信メッセージを
参照して手続き名を求め、送受信メッセージ用手続きラ
イブラリ111から必要な手続きを抜き出すことにより
作成する。
【0048】(8)実施例の効果 以上の通り、本実施例のプログラム生成装置は、プログ
ラム仕様書に記述された複数の集計動作仕様を起動タイ
ミング毎に分類して起動タイミング別集計プログラム仕
様を得てから、各々の起動タイミング毎に条件とそれに
対応する処理を解析して実行すべきプログラムを生成す
るようにしたものである。従って、本実施例によれば、
動作内容とそれを実施するための種々の条件を備え、し
かも同じ条件であってもタイミングが異なる場合には動
作内容の実行の可否が変化するような複雑なプログラム
であっても、タイミング、動作条件及び動作内容をプロ
グラム仕様書に記述するだけで、これらの仕様のすべて
を考慮した集計プログラムを自動的に生成することがで
きる。しかも、本実施例ではタイミング起動判定部10
3によって各動作仕様をタイミング別に分類するので、
動作仕様中の他の項目、すなわち動作条件およびそれに
対応する動作内容については、従来公知の事象起動型の
仕様記述言語を利用することでプログラム仕様書を簡単
に実行可能なプログラム化することができる。
【0049】特に、本実施例は、複数の集計動作仕様を
単に起動タイミング別に分類するだけでなく、動作条件
判定順位決定部105によって、同じタイミングについ
て動作内容が複数個ある場合に、その動作内容に対応す
る動作条件を最少の条件判定操作により判定できるよう
にしたので、記述される集計プログラム内部表現106
が単純化されたものになり、それをもとにした集計プロ
グラム4の生成が簡単に行える。また、得られた集計プ
ログラム4も簡単な構造で、実行速度も早い利点があ
る。
【0050】また、本実施例は、データ項目や動作仕様
を記述する際にキーワードを用いているので、データ項
目や各動作仕様の識別がきわめて容易に実施でき、起動
タイミング判定部による起動タイミング別集計プログラ
ム仕様の作成や動作条件判定順位決定部におけるどの動
作条件から判定していくかの決定が容易になる。
【0051】(9)他の実施例 図示の実施例は、動作条件判定順位決定部105によっ
て、一つのタイミングに複数の動作内容がある場合に、
どの動作条件に当てはまる動作内容を最初に判定するの
が最適かということを判定したが、一つのタイミングが
有する動作内容が少なくほとんどのタイミングが一つの
動作条件と動作内容しか持たない場合や、集計プログラ
ムの実行速度や複雑化などについて特に制限がない場合
には、起動タイミング判定部103によって得られた集
計プログラム仕様104にしたがって集計プログラム4
を生成することもできる。
【0052】図示の実施例は、データ項目及び各動作仕
様をキーワードとそれに対応する内容とによって記述し
たが、記述の内容からデータ項目、各動作仕様を識別す
ることができるならば必ずしもキーワードを使用する必
要はない。
【0053】図示の実施例は、集計プログラムの中で
も、集計動作に関する仕様を中心として説明したが、当
然のことながら現実の集計プログラムには集計動作以外
の動作に関する仕様も要求されることが多い。このよう
な一般的な動作仕様については、前記のような集計動作
に関する仕様と同様な手法により自動的にプログラムを
生成することも可能であるが、このような一般的な動作
に関する仕様は、動作タイミングを要求されないなどの
理由で集計プログラムに比較して単純なものが多い。従
って、集計プログラムのこのような部分については、本
実施例の図3に示したようにプログラム実現上の制約と
して記述したり、従来公知の事象起動型のプログラム言
語を使用して直接プログラムを記述したり、あるいは項
書き換えなどの手法を組み合わせて使用することも可能
である。
【0054】
【発明の効果】以上説明したように、本発明によれば、
開発者は集計プログラムの仕様を定められた形式の仕様
記述言語により正確に記述し、また、予め用意しておい
たプログラム実現上の制約を組み合わせてプログラム自
動生成装置を動作させるだけで、集計プログラム仕様書
を正確に反映した集計プログラムを迅速に得ることがで
きる。その結果、開発者自身が開発することによりしば
しば発生する誤りを押さえることができ、また、プログ
ラムの開発時間を短縮することが可能となる。
【図面の簡単な説明】
【図1】本発明の集計プログラム自動生成装置の構成を
概略的に示す構成図。
【図2】本発明の集計プログラム自動生成装置によって
得られた集計プログラムの使用状態を示す構成図。
【図3】本発明の集計プログラム自動生成装置の構成を
より詳細に示すブロック図。
【図4】本発明の集計プログラム自動生成装置に入力す
る集計プログラム仕様書の記述例を示す図。
【図5】本発明の集計プログラム自動生成装置によって
得られる起動タイミング別集計プログラムの構造の例を
示す図。
【図6】本発明の集計プログラム自動生成装置を構成す
る起動タイミング判定部の動作例を示すフローチャー
ト。
【図7】本発明の集計プログラム自動生成装置によって
得られる集計プログラム内部表現の構造の例を示す図。
【図8】本発明の集計プログラム自動生成装置を構成す
る動作条件判定順位決定部の動作を示すフローチャー
ト。
【図9】本発明の集計プログラム自動生成装置を構成す
る動作条件判定順位決定部の動作を示すフローチャート
であって、図8のフローチャートにおけるステップ80
3部分の詳細を示す図。
【図10】本発明の集計プログラム自動生成装置を構成
する動作条件判定順位決定部の動作をしめすフローチャ
ートであって、図9のフローチャートにおける*印部分
に連なる図。
【符号の説明】
1…プログラム自動生成装置 2…集計プログラム仕様書 3…プログラム実現上の制約 4…集計プログラム 101…仕様書解析部 102…集計プログラム仕様内部表現 103…起動タイミング判定部 104…起動タイミング別集計プログラム仕様 105…動作条件判定順位決定部 106…集計プログラム内部表現 107…集計プログラム出力部 110…制約解析部 111…送受信メッセージ手続ライブラリ 112…集計データ内領域作成ライブラリ

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】集計プログラムで取り扱うデータ項目と、
    集計プログラムが実行する複数の集計動作について、そ
    の起動タイミング、動作条件並びに動作内容を含む集計
    動作仕様とを記述したプログラム仕様書を入力し、入力
    されたプログラム仕様書からデータ項目および各集計動
    作仕様を解析する仕様書解析部と、 前記仕様書解析部で解析された各集計動作仕様を、各々
    の起動タイミングに基づいて分類し、起動タイミング別
    集計プログラム仕様を得る起動タイミング判定部と、 この起動タイミング別の集計プログラム仕様を実行可能
    な集計プログラムとして出力する集計プログラム出力部
    とを備えていることを特徴とする集計プログラム自動生
    成装置。
  2. 【請求項2】集計プログラムで取り扱うデータ項目と、
    集計プログラムが実行する複数の集計動作について、そ
    の起動タイミング、動作条件並びに動作内容を含む集計
    動作仕様とを記述したプログラム仕様書を入力し、入力
    されたプログラム仕様書からデータ項目および各集計動
    作仕様を解析して集計プログラム仕様内部表現を得る仕
    様書解析部と、 前記仕様書解析部で解析された各集計プログラム仕様内
    部表現を、各々の起動タイミングに基づいて分類し、起
    動タイミング別集計プログラム仕様を得る起動タイミン
    グ判定部と、 前記起動タイミング別集計プログラム仕様における各々
    の起動タイミング毎にそれに対応する集計動作を調べ、
    集計動作が複数個ある起動タイミングについてはどの順
    番で動作条件の項目を判定するのが最適かを判定し、各
    起動タイミング毎にどのような条件のもとでどの集計動
    作を行うか記述した集計プログラム内部表現を得る動作
    条件判定順位決定部と、 前記集計プログラム内部表現を、実行可能な集計プログ
    ラムとして出力する集計プログラム出力部とを備えてい
    ることを特徴とする集計プログラム自動生成装置。
  3. 【請求項3】入力されたプログラム実現上の制約を解析
    する制約解析部と、この制約解析部によって解析された
    制約を実行可能な集計プログラムとして出力する集計プ
    ログラム出力部とを備えていることを特徴とする請求項
    1または請求項2の集計プログラム自動生成装置。
  4. 【請求項4】データ項目および各動作仕様に含まれる起
    動タイミング、動作条件並びに動作内容が、キーワード
    とそれに対応する記述とから構成されている請求項1、
    請求項2または請求項3の集計プログラム自動生成装
    置。
JP22929793A 1993-09-14 1993-09-14 集計プログラム自動生成装置 Pending JPH0784773A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22929793A JPH0784773A (ja) 1993-09-14 1993-09-14 集計プログラム自動生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22929793A JPH0784773A (ja) 1993-09-14 1993-09-14 集計プログラム自動生成装置

Publications (1)

Publication Number Publication Date
JPH0784773A true JPH0784773A (ja) 1995-03-31

Family

ID=16889933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22929793A Pending JPH0784773A (ja) 1993-09-14 1993-09-14 集計プログラム自動生成装置

Country Status (1)

Country Link
JP (1) JPH0784773A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005100198A (ja) * 2003-09-26 2005-04-14 Canon Software Inc プログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体
US9919606B2 (en) 2013-05-20 2018-03-20 Sevcon Limited Vehicle controller and method of controlling a vehicle

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005100198A (ja) * 2003-09-26 2005-04-14 Canon Software Inc プログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体
US9919606B2 (en) 2013-05-20 2018-03-20 Sevcon Limited Vehicle controller and method of controlling a vehicle

Similar Documents

Publication Publication Date Title
Bunte et al. The mCRL2 toolset for analysing concurrent systems: improvements in expressivity and usability
EP3631618B1 (en) Automated dependency analyzer for heterogeneously programmed data processing system
US6408430B2 (en) Interactive software testing system and method
CN107644323B (zh) 一种面向业务流的智能审核系统
Alur et al. An analyzer for message sequence charts
Wermelinger Specification of software architecture reconfiguration
US7610256B1 (en) Registering rules for entity attributes for validation and inference
EP2131285A2 (en) Method and apparatus for test generation from hybrid diagrams with combined data flow and statechart notation
CN115344663B (zh) 一种业务逻辑的知识表示和推演方法及装置
CN119690854A (zh) 大模型辅助的程序功能自动感知模糊测试方法与系统
Bernardo et al. AEMPA: A process algebraic description language for the performance analysis of software architectures
CN114924721A (zh) 代码生成方法、装置、计算机设备及存储介质
CN113221126A (zh) 一种TensorFlow程序漏洞检测方法、装置及电子设备
US5884081A (en) Method and system for synchronizing code with design
Hauschildt et al. WOFLAN: a Petri-net-based Workflow Analyzer
CA2186799C (en) Message sequence chart analyzer
US20080244380A1 (en) Method and device for evaluating an expression on elements of a structured document
JPH0784773A (ja) 集計プログラム自動生成装置
Gallardo et al. A framework for automatic construction of abstract promela models
EP4629184A1 (en) Method and apparatus for compiling sorting operator
CN118885178A (zh) 一种代码变更分析方法、装置、设备及存储介质
Jakobsen et al. Fast symbolic computation of bottom SCCs
CN120104189A (zh) 一种指令生成方法、电子设备及存储介质
JP7391740B2 (ja) 影響特定支援装置及び影響特定支援方法
US5628012A (en) Method and apparatus for querying a database containing disjunctive information