JPH05274126A - プログラム合成システム - Google Patents

プログラム合成システム

Info

Publication number
JPH05274126A
JPH05274126A JP10045292A JP10045292A JPH05274126A JP H05274126 A JPH05274126 A JP H05274126A JP 10045292 A JP10045292 A JP 10045292A JP 10045292 A JP10045292 A JP 10045292A JP H05274126 A JPH05274126 A JP H05274126A
Authority
JP
Japan
Prior art keywords
program
parts
source code
specifications
search
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
JP10045292A
Other languages
English (en)
Inventor
Takekazu Sugimoto
武和 杉本
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.)
Shimadzu Corp
Original Assignee
Shimadzu 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 Shimadzu Corp filed Critical Shimadzu Corp
Priority to JP10045292A priority Critical patent/JPH05274126A/ja
Publication of JPH05274126A publication Critical patent/JPH05274126A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 プログラム仕様が変更された場合に、効率よ
くソースコードを合成するプログラム合成システムを提
供すること。 【構成】 仕様入力部1に入力されたプログラム仕様を
もとに、合成で必要なプログラム部品がすでに検索され
ているかを検索チェック部2で調べる。検索が必要なプ
ログラム部品は、プログラム部品検索部3により部品デ
ータベース4を検索し、ソースコード生成部5に渡され
る。ソースコード生成部5では、入力されたプログラム
仕様と検索されたプログラム部品をもとにソースコード
を生成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラム仕様からソ
ースコードを生成するシステムに係わり、特に、プログ
ラム仕様に基づき部品データベースに蓄えられているプ
ログラム部品を結合して、ソースコードを生成するプロ
グラム合成システムに関するものである。
【0002】
【従来の技術】従来、ソフトウエアの開発過程におい
て、プログラム仕様が作成され、それを基にプログラマ
がソースコードを作成していた。しかし、近年、プログ
ラミング段階の省力化と、プログラミング時のエラーの
回避等の理由から、プログラム仕様からソースコードを
自動的に生成するシステムの開発が進められている。
【0003】また、従来より有用なプログラムの一部分
(プログラム部品)を集めておき、必要な時に必要なプ
ログラム部品を取り出して合成することにより、目的の
プログラムを生成することが行なわれている。この技術
は、ソースコードから実行プログラムを作成する、いわ
ゆるコンパイル、リンクの段階においては古くから行な
われており、例えば、ライブラリを利用したり、以前作
成した関数を組み込むことが行なわれている。
【0004】上述のプログラム仕様からソースコードを
作成するときにも、この技術を応用することができる。
この場合、予めプログラム部品を蓄積した部品データベ
ースを作成しておき、プログラム仕様から目的とするソ
ースコードを合成する際に、合成に必要なプログラム部
品を部品データベースから検索し、検索した部品を組み
合わせることにより、目的とするソースコードを合成す
ればよい。
【0005】合成されたソースコードを、例えば、コン
パイルし実行したり、インタプリタにより実行した結
果、プログラム仕様に間違いが発見されたり、結果を見
てプログラム仕様を変更する場合や、目的とするソフト
ウエア自体に変更が生じ、プログラム仕様を変更する場
合がある。この場合には、変更されたプログラム仕様か
らソースコードを再生成する必要がある。従来では、こ
のソースコードの再生成については考えられておらず、
再生成の際には、もう一度最初から新たにプログラム部
品をデータベースから検索し、ソースコードを合成して
いた。そのため、以前、部品データベースから検索した
ことのある部品であっても、ソースコードを合成する度
に、再度検索を行ない、合成するため、ソースコードの
生成に時間がかかっていた。
【0006】
【発明が解決しようとする課題】本発明は、上述の問題
点に鑑みてなされたもので、プログラム仕様の変更が発
生し、ソースコードを再合成する場合であっても、効率
よくソースコードを合成することができるプログラム合
成システムを提供することを目的とするものである。
【0007】
【課題を解決するための手段】本発明は、プログラム仕
様に基づき部品データベースに蓄えられているプログラ
ム部品を結合して、ソースコードを生成するプログラム
合成システムにおいて、プログラム仕様の入力を受け付
ける仕様入力部と、プログラム部品を蓄える部品データ
ベースと、入力されたプログラム仕様をもとに合成で必
要なプログラム部品がすでに検索されているか否かを調
べる検索チェック部と、検索が必要なプログラム部品を
部品データベースより検索するプログラム部品検索部
と、入力されたプログラム仕様と検索されたプログラム
部品をもとにソースコードを生成するソースコード生成
部を有することを特徴とするものである。
【0008】
【作用】本発明によれば、ソースコードを合成する際
に、合成で必要なプログラム部品がすでに検索されてい
るか否かを調べてから、新たに検索が必要なプログラム
部品だけを部品データベースから検索するから、ソース
コードの生成をムダなく効率的に行なうことができる。
【0009】また、本発明のプログラム合成システムで
作成したソースコードに対し、テストを行なう機能を付
加したシステムの場合、システムの結果を見て仕様の変
更、合成、そしてテストとこれを繰り返すことになる。
この時に、合成に要する時間はできる限り早い方がよ
く、本発明よれば、従来に比べ仕様変更からテストに移
るまでにかかる時間を短縮することができ、最終的に目
的とするソースプログラムを得るまでに費やす作業時間
を短縮することができる。
【0010】
【実施例】図1は本発明のプログラム合成システムの一
実施例のブロック図である。図中、1は仕様入力部、2
は検索チェック部、3はプログラム部品検索部、4は部
品データベース、5はソースコード生成部、6はテスト
支援部である。
【0011】仕様入力部1は、開発するソフトウエアの
プログラム仕様を入力として受け付ける手段である。検
索チェック部2は、仕様入力部1に入力されたプログラ
ム仕様から、用いるべきプログラム部品を割り出し、そ
のプログラム部品がすでに検索されているか否かを調べ
る。プログラム部品検索部3は、検索チェック部2にお
いて、まだ検索されていないプログラム部品があった場
合に、部品データベース4から該当するプログラム部品
を検索し、プログラム部品をソースコード生成部5へ渡
す。部品データベース4は、以前より作成されてきたプ
ログラム部品や、今回のプログラム仕様のために開発さ
れたプログラム部品などが蓄えられている。ソースコー
ド生成部5は、入力されたプログラム仕様と、プログラ
ム部品検索部3において検索されたプログラム部品をも
とにソースコードを生成する。テスト支援部6は、必要
により、生成されたソースコードを実行させてテストし
たり、デバッグすることにより、プログラム仕様が正し
く動作するかどうかのチェックと、プログラム仕様の誤
り箇所の検出を行なうことができる。テストの必要がな
ければ、このテスト支援部6は不要である。また、テス
ト支援部6は、プログラム合成システムとは別体の構成
としてもよい。
【0012】検索チェック部2において、プログラム部
品が検索済みか否かを判断するための方法としては各種
の方法があるが、そのひとつとして検索部品リストによ
って管理する方法が考えられる。この方法は、ソースコ
ードを合成する際に、部品データベースから検索したプ
ログラム部品のリストを、入力されたプログラム仕様に
対して、プログラム仕様毎に作成する。そして、ソース
コードを合成する際に、合成に必要なプログラム部品が
以前に検索されているか否かを、検索部品リストと比較
して調べ、あれば検索は行なわず、なければ新たに部品
の検索を行なって、その部品を検索部品リストに追加す
る。つまり、ソースコードを合成する際にまず検索部品
リストを参照して合成を行なうようにする。この方法に
より、プログラム部品の検索の要否が容易に判断でき
る。
【0013】上述の検索部品リストは、入力されるプロ
グラム仕様の一部として同じファイル内に作成してもよ
いし、ソースコード上であってもよく、さらには別のフ
ァイルとして管理してもよい。ただし、入力されるプロ
グラム仕様の一部として同じファイル内に作成しておく
場合には、ユーザによって書き換えられたために、検索
済みのプログラム部品との整合性がとれなくなってしま
わないようにしておく必要がある。また、別のファイル
として管理する場合には、該当するプログラム仕様や検
索済みのプログラム部品との対応を常に管理しておく必
要がある。
【0014】プログラム部品が検索済みか否かを判断す
るための別の方法としては、チェックの都度、プログラ
ム仕様および対応する前回までに検索したプログラム部
品からそれぞれ部品表を作成し、比較し、不足している
部品を検索する方法も考えられる。この方法によれば、
部品表の管理は不要になるが、毎回部品表を作成するた
め、処理時間が長くかかってしまうという欠点を有す
る。また、前回生成したソースコードから部品表を作成
することも考えられる。
【0015】図2は、本発明のプログラム合成システム
の一実施例の動作を示すブロック図である。図中、10
はプログラム仕様、16は目的とするソースコードであ
り、以下は処理のステップを示している。すなわち、1
1は仕様入力、12は検索部品リスト作成、13は部品
検索、14はソースコード生成、15はテスト、17は
仕様変更、18は検索チェック、19は部品検索であ
る。
【0016】ステップ11において、合成すべきプログ
ラム仕様10が仕様入力部1に入力される。プログラム
仕様10には、使用する部品などが記載されている。
【0017】ステップ12では、検索チェック部2にお
いて、入力されたプログラム仕様に対する検索部品リス
トが存在するか調べる。一度もプログラムの合成を行な
っていない場合には検索部品リストが存在しないので、
入力されたプログラム仕様をもとに新たに検索部品リス
トを作成する。
【0018】ステップ13において、新たに作成された
検索部品リストをもとに、プログラム部品検索部3にお
いて、リストアップされたプログラム部品を部品データ
ベース4から検索し、プログラム部品をソースコード作
成部5に渡す。
【0019】ステップ14では、ソースコード生成部5
において、入力されたプログラム仕様と、部品データベ
ース4より検索したプログラム部品とをもとに、ソース
コードを生成する。
【0020】ステップ15において、必要により生成さ
れたソースコードをテスト支援部6で実行し、テストを
行い、入力したプログラム仕様が意図したものである
か、使用する部品は仕様を満足するものであるかを確認
する。仕様に誤りがなければ、ステップ14において生
成されたソースコードを、目的とするソースコード16
とする。仕様に間違いなどがあった場合、テスト支援部
6においてデバッグを行ない、誤りの箇所を特定する。
【0021】ステップ17において、テスト支援部6に
おけるテスト、デバッグの結果を踏まえて、入力したプ
ログラム仕様を、プログラム仕様作成システムなど図示
されていない手段を用いて修正し、もう一度、仕様入力
部1に入力し直す。
【0022】ステップ18では、修正された仕様をもと
に、検索チェック部2において、必要なプログラム部品
を調べ、前回の合成時に作成した検索部品リストを参照
しながら、以前に部品データベースから検索したことが
あるかどうかをチェックする。
【0023】ステップ19では、検索チェック部2で、
前回の検索部品リストとの比較を行なった結果、使用す
るプログラム部品が検索部品リストに存在しない場合
に、プログラム部品検索部3において、そのプログラム
部品を部品データベース4から検索し、ソースコード生
成部5に渡すとともに、検索部品リストに追加する。こ
れを仕様中で指定されているすべての使用部品について
行なう。
【0024】ステップ14に戻って、すべての部品がそ
ろったところで、ソースコード生成部5にて、プログラ
ム仕様とプログラム部品をもとに目的とするソースコー
ドを生成する。
【0025】以下、生成したプログラムのテストを行な
い、間違いなどが見つかればステップ17へ戻り、満足
できるプログラムが得られるまでこれらの動作を繰り返
すこととなる。
【0026】なお、ソースコード作成時に、前回は必要
であったが、今回は必要でなくなったプログラム部品の
消去も、検索部品リストを参照することによって行なう
ことができる。
【0027】部品データベース4中に蓄積されたプログ
ラム部品には、生成しようとするソースコード形式のも
ののほかに、それ以外の形式で蓄積されたプログラム部
品も存在する場合がある。このような場合、プログラム
部品検索部3において部品データベース4より検索した
プログラム部品を、ソースコード入力部5で用いる形式
に変換しておくことにより、次回以降は変換後のプログ
ラム部品を検索済みのプログラム部品として用いること
ができる。
【0028】さらに、プログラム部品検索部3において
部品データベース4より検索したプログラム部品を、変
換すべきプログラム仕様に合わせてカスタマイズしてお
き、このカスタマイズしたプログラム部品を、次回以降
の検索済みのプログラム部品として用いることもでき
る。
【0029】検索済みのプログラム部品は、部品データ
ベースとは別の格納領域に、例えばファイルなどの形式
で保管され、次回以降の検索済みのプログラム部品とし
てソースコード生成部5に提供される。または、ソース
コード生成部5によって生成されたソースコードそのも
ので管理することも可能である。
【0030】入力されるプログラム仕様が、階層的に複
数の設計書によって構成される場合もある。この場合、
設計書ごとに実行またはテスト、デバッグを行なうこと
が考えられ、上位の階層の設計書について実行またはテ
スト、デバッグを行なうときには、ユーザに下位の階層
を意識させない環境を提供するために、自動的に下位の
階層の複数の設計書についてのソースコードを生成する
必要になる。この複数の設計書は、独立して設計される
場合が多く、同じプログラム部品をいくつかの設計書に
おいて用いる場合も考えられる。上位の階層の設計書の
ソースコードを生成しようとする場合、何回も同じプロ
グラム部品を検索することは時間的にも容量的にも無駄
である。このような場合に対応するには、当該設計書に
おけるプログラム部品のソースコードがすでに他の設計
書において生成されたものか否かを示す情報を持つこと
が有効である。すでに検索されたプログラム部品につい
ては検索を行なう必要はない。また、プログラム仕様が
変更または修正された場合には、変更または修正がなさ
れた設計書について、設計書中で使用する部品について
のみ、上述のチェックおよび検索の処理を行なうように
することができる。このようにすることにより、より効
率よくソースコードを生成することができる。
【0031】また、上位の階層の設計書についてのソー
スコードの生成時には、下位の階層の設計書のうちのい
くつかは、すでにプログラム部品の検索が済んでいる場
合もある。このような場合、設計書毎に、ソースコード
生成の有無の情報を付加し、この情報を参照することに
より、未生成の設計書のみソースコードの生成を行なう
こともできる。
【0032】さらに、テストやデバッグによって、いく
つかの設計書のみが変更または修正を受けることがあ
る。この場合、設計書毎に検索の要否を示す情報を付加
しておき、変更、修正を加えられた設計書についてはこ
の情報を要検索としておくことにより、変更、修正を受
けた設計書のみについて、上述のような各プログラム部
品の検索チェックおよび検索の処理を行なうようにする
ことができる。
【0033】
【発明の効果】以上の説明から明らかなように、本発明
によれば、過去に作成したプログラム仕様を一部変更し
てソースコードを生成する場合に、目的とするソースコ
ードを効率的に得ることができる。さらに、仕様変更か
らテストに移るまでにかかる時間を短縮することができ
るから、最終的に目的とするソースプログラムを得るま
でに費やす作業時間を短縮することができる、という効
果がある。
【図面の簡単な説明】
【図1】本発明のプログラム合成システムの一実施例の
ブロック図である。
【図2】本発明のプログラム合成システムの一実施例の
動作を示すブロック図である。
【符号の説明】
1 仕様入力部 2 検索チェック部 3 プログラム部品検索部 4 部品データベース 5 ソースコード生成部 6 テスト支援部

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 プログラム仕様に基づき部品データベー
    スに蓄えられているプログラム部品を結合して、ソース
    コードを生成するプログラム合成システムにおいて、プ
    ログラム仕様の入力を受け付ける仕様入力部と、プログ
    ラム部品を蓄える部品データベースと、入力されたプロ
    グラム仕様をもとに合成で必要なプログラム部品がすで
    に検索されているか否かを調べる検索チェック部と、検
    索が必要なプログラム部品を部品データベースより検索
    するプログラム部品検索部と、入力されたプログラム仕
    様と検索されたプログラム部品をもとにソースコードを
    生成するソースコード生成部を有することを特徴とする
    プログラム合成システム。
JP10045292A 1992-03-26 1992-03-26 プログラム合成システム Pending JPH05274126A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10045292A JPH05274126A (ja) 1992-03-26 1992-03-26 プログラム合成システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10045292A JPH05274126A (ja) 1992-03-26 1992-03-26 プログラム合成システム

Publications (1)

Publication Number Publication Date
JPH05274126A true JPH05274126A (ja) 1993-10-22

Family

ID=14274310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10045292A Pending JPH05274126A (ja) 1992-03-26 1992-03-26 プログラム合成システム

Country Status (1)

Country Link
JP (1) JPH05274126A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014134851A (ja) * 2013-01-08 2014-07-24 I-Cubed Research Center Inc プログラマブル回路、演算処理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014134851A (ja) * 2013-01-08 2014-07-24 I-Cubed Research Center Inc プログラマブル回路、演算処理方法

Similar Documents

Publication Publication Date Title
EP0664027B1 (en) Program modeling system
US6922827B2 (en) Iterative software development environment with prioritized build rules
US7194475B2 (en) Method, system, and program for performing an impact analysis of program statements in at least one source code file
US8527937B2 (en) Method and apparatus for application building using build styles
US5182807A (en) Assembler system for determining when to compile source code modules
JPH05197697A (ja) ソフトウエア・システム構築装置及び方法
JPH08286926A (ja) 一般フロントエンド、及び動的にロード可能なバックエンドを有するコンパイラ
CN112882718A (zh) 编译处理方法、装置、设备及存储介质
US7624381B1 (en) Portable detection of start and completion of object construction
JP2000284815A (ja) プログラム作成装置
US6343378B1 (en) Method of making link directive file and tool for making link directive file
JPH06110733A (ja) プログラムのテストケース生成装置
JPH05274126A (ja) プログラム合成システム
GB2420638A (en) Method of substituting code fragments in Internal Representation
CN109019217B (zh) 一种电梯控制软件现场调试系统
JP3166699B2 (ja) オブジェクト指向プログラム設計支援装置、方法および記録媒体
US20080126293A1 (en) Method and apparatus for dynamically creating scenario based test designs from hierarchical use cases
JPH0667871A (ja) プログラム自動更新方式
JPH11338686A (ja) プログラム開発支援装置及びプログラム開発支援方法並びにプログラム開発支援プログラムを記録した記録媒体
JPH11154093A (ja) プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体
JP2012123664A (ja) ビルド実行支援システム、ビルド実行支援方法、及びビルド実行支援プログラム
JPH09274570A (ja) コンパイル方法及びコンパイラシステム
JP3210203B2 (ja) プログラム試験方法及びsqlシミュレータ
JPH056291A (ja) テスト資源の作成・管理方法
JPH06103113A (ja) 差分テストデバック支援方法