JPH08137680A - ソフトウェア部品登録組込装置 - Google Patents

ソフトウェア部品登録組込装置

Info

Publication number
JPH08137680A
JPH08137680A JP28046194A JP28046194A JPH08137680A JP H08137680 A JPH08137680 A JP H08137680A JP 28046194 A JP28046194 A JP 28046194A JP 28046194 A JP28046194 A JP 28046194A JP H08137680 A JPH08137680 A JP H08137680A
Authority
JP
Japan
Prior art keywords
component
program
software component
information
software
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
JP28046194A
Other languages
English (en)
Inventor
Kiyoshi Tazoe
清 田添
Masaaki Sato
雅明 佐藤
Satoshi Watanabe
敏 渡辺
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP28046194A priority Critical patent/JPH08137680A/ja
Publication of JPH08137680A publication Critical patent/JPH08137680A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 部品の作成容易性と部品の利用容易性を両立
させることができるソフトウェア部品登録組込装置を提
供する。 【構成】 四則計算やプログラム構造の制御等の基本機
能に関するプログラム生成手段を有する基本機能処理機
構であるジェネレータ本体1および対象分野に特化した
拡張機能に関するプログラム生成手段を有する拡張機能
処理機構であるソフトウェア部品登録組込装置3を有
し、該ソフトウェア部品登録組込装置3は拡張機能のプ
ログラム生成手段としてソフトウェア部品の利用法と組
込法に関する知識を併せて登録する登録部31、ソフト
ウェア部品の引用時に当該部品に関する利用法が妥当で
あるか否かを検証するチェック部33、およびソフトウ
ェア部品の引用時に引用箇所および引用状況に対応した
プログラム表現に変更する展開部35を有する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、オフィスシステム等の
応用システムの構築を容易化し、ソフトウェア開発にお
ける生産性を向上するプログラムジェネレータを構成す
るソフトウェア部品登録組込装置に関する。
【0002】
【従来の技術】従来のソフトウェアは、部品作成の容易
性と部品利用時の容易性とを両立させることが困難であ
った。部品利用容易性を向上させるには、部品側と部品
引用側の詳細な実行インタフェースを規定し、これに基
づき部品の作成する必要があった。また、部品作成容易
化を優先させる場合、処理の整合をとるため組み込み箇
所に付加処理を記述する必要があった。
【0003】
【発明が解決しようとする課題】上述したように、従来
のソフトウェアにおいて、部品利用容易性を向上させる
には部品側と部品引用側の詳細な実行インタフェースを
規定し、これに基づき部品を作成する必要があり、また
部品作成容易化を優先させる場合には処理の整合をとる
ため組み込み箇所に付加処理を記述する必要があるとい
う具合いに部品作成の容易性と部品利用時の容易性とを
両立させることが困難であるという問題がある。
【0004】本発明は、上記に鑑みてなされたもので、
その目的とするところは、部品の作成容易性と部品の利
用容易性を両立させることができるソフトウェア部品登
録組込装置を提供することにある。
【0005】
【課題を解決するための手段】上記目的を達成するた
め、本発明のソフトウェア部品登録組込装置は、四則演
算やプログラム構造の制御等の基本機能に関するプログ
ラム生成手段と対象分野に特化した拡張機能に関するプ
ログラム生成手段とを有するプログラムジェネレータを
構成するソフトウェア部品登録組込装置において、拡張
機能のプログラム生成手段としてソフトウェア部品の利
用法と組込法に関する知識を併せて登録する手段と、ソ
フトウェア部品の引用時に当該部品に関する使用法が妥
当であるかを検証する手段と、ソフトウェア部品の引用
時に、引用箇所および引用状況に対応したプログラム表
現に変更する手段とを有することを要旨とする。
【0006】
【作用】本発明のソフトウェア部品登録組込装置では、
プログラムジェネレータを基本機能処理機構と拡張機能
処理機構に分離し、拡張機能処理機構には部品の利用
法、引用箇所、引用状況に合わせたプログラム表現にす
るための知識と部品実体とを登録し、部品の引用時には
部品利用妥当性をチェックするとともに、引用状況に合
わせたプログラム表現に変更し、引用側プログラムと整
合がとれた部品を組み込む。
【0007】
【実施例】以下図面を用いて、本発明の実施例を説明す
る。
【0008】図1は、本発明の一実施例に係るソフトウ
ェア部品登録組込装置のプログラムジェネレータの構成
を示す図である。本プログラムジェネレータは、四則計
算やプログラム構造の制御等の基本機能に関するプログ
ラム生成手段を有する基本機能処理機構であるジェネレ
ータ本体1と、対象分野に特化した拡張機能に関するプ
ログラム生成手段を有する拡張機能処理機構であるソフ
トウェア部品登録組込装置3を有する。
【0009】前記ジェネレータ本体1は、部品関連記述
を抽出する構文解析部11と、部品関連コードを生成す
るコード生成部13とを有する。また、前記ソフトウェ
ア部品登録組込装置3は、拡張機能のプログラム生成手
段としてソフトウェア部品の利用法と組込法に関する知
識を併せて登録する登録部31と、ソフトウェア部品の
引用時に当該部品に関する利用法が妥当であるか否かを
検証するチェック部33と、ソフトウェア部品の引用時
に引用箇所および引用状況に対応したプログラム表現に
変更する展開部35とを有する。
【0010】図2は、前記ソフトウェア部品登録組込装
置3の構成を関連情報等とともに更に詳細に示す図であ
る。
【0011】図2において、利用者が作成した部品定義
情報41が入力情報として登録部31に与えられると、
該登録部31は部品定義情報41の表現内容をチェック
し、部品の名称、構文則など部品に必要な各種情報を与
える記述方法を規定した構文則情報43a、部品の属性
情報43b、引用箇所や引用状況に対応した部品の展開
手続きを記述した展開情報43cに分けて部品ライブラ
リ43に格納する。
【0012】前記チェック部33は、ジェネレータ本体
1から部品に関する記述51を受け取ると、部品ライブ
ラリ43の当該部品が格納されていることを確認すると
ともに、構文則情報43a、属性情報43bに基づいて
部品に関する利用法のチェックを行い、誤りがあれば誤
り情報53を作成し、解析結果を本体に返却する。展開
部35はジェネレータ本体1から部品名、コード生成域
名を含む展開依頼55を受け取ると、部品ライブラリ4
3中の当該部品に関する展開情報43cを参照して、対
応する処理コード57に作成し、ジェネレータ本体1に
返却する。
【0013】前記部品定義情報41の概要を図3を用い
て説明する。
【0014】図3に示す部品定義情報において、部品の
属性に関する情報は、parts divisionとend parts で囲
まれた部分に記述されている。”name=ISAM File”と
記述された部品は部品名を示す。”kind=io”と記述さ
れた部品は部品名の種別を示し、ここでは i/o 処理に
関する部品であることを示す。”type= g object”と
記述された部分は部品の形式を示し、ここでは新しいク
ラスを定義する部品であることを示す。
【0015】部品のチェックに関する情報は、message
divisionとend message およびcheck divisionとend ch
eck で囲まれた部分に記述されている。
【0016】message divisionとend message で囲まれ
た部分は、部品と部品引用側との間で必要情報を授受す
るのに用いる各種メッセージの形式について定義する。
【0017】”Class =@Class symbol;”,”Instan
ce=@Instance[] i parts ;”,”File=@FileNa
me file ,@Mode symbol ;”と記述された部分は、そ
れぞれクラス名、インスタンス名、ファイル名・モード
種別名として部品引用側で指定された Class名、部品の
Instance名、パス付File名・Mode種別名の文字列が「@
〜」の部分にそのまま設定されるという意味を定義した
例である。[]は部品のインスタンス名(i parts)の並
びが繰り返されることを示す。
【0018】check divisionとend check で囲まれた部
分は、部品と部品引用側との間で必要情報を授受するの
に用いる各種メッセージの内容に関するチェックについ
て定義する。!(@Mode==”IN”|@Mode==”OUT ”)
=>”オープンモード誤り”と記述された部分は「ファ
イルのモードが”IN”か”OUT ”でなければ、”オープ
ンモード誤り”表示する」という意味を定義した例であ
る。
【0019】部品の展開に関する情報は、skelton divi
sionとend skeltom で囲まれた部分に記述されている。
skilton divisionはコード生成域対応に4つの部分から
なる。
【0020】headerとend headerで囲まれた部分は本部
分が使用するinclude ファイルを定義する部分である。
本部品では<string・h >をインクルードすることを宣
言している。
【0021】class とend class で囲まれた部分は本部
品が使用する基となるクラスの宣言および派生状況の記
述を示す。本記述では、 D SDクラスを基底クラスと
し、 D SDクラスから派生したオープン関数をメソッドと
したクラスを定義している。
【0022】instanceとend instanceで囲まれた部分は
本部品を使用して行う実際の処理が記述されている。本
部品例では、@{と@}で囲まれた文が実際に展開され
る。本部品の実施例ではC++ソースコードに存在する
インスタンスの数だけインスタンス名を示すコメント文
を埋め込むという機能を持つ部品が記述されている。
【0023】図4は、前記ソフトウェア部品登録組込装
置3の登録部31の処理を示すフローチャートである。
【0024】図4においては、まず構文解析処理で、前
記部品定義情報41の妥当性をチェックする(ステップ
S11)。それから、構文則情報作成処理で構文則に関
する記述を構文則情報の内部形式に変換し、部品ライブ
ラリ43に格納する(ステップS12)。構文則情報4
3aは部品引用時に部品に必要な各種情報を与える記述
方法を規定するものであり、部品名、構文則・・・、意
味則・・・で構成される。部品名および構文則は記述形
式そのままの形式で格納される。意味則は部品引用時点
で利用条件が満足されているか否かを確認するための処
理方法が記載されているため、部品引用時にインタプリ
タでチェック処理を行える形式(インタプリタ中間コー
ド)に変換して格納する。構文則情報の格納形式は図5
(a)に示されている。
【0025】また、図4において、次の属性情報作成処
理では属性に関する記述を属性情報の内部形式に変換
し、部品ライブラリ43に登録する(ステップS1
3)。属性情報は部品の分類を示す情報であり、図5
(b)に格納形式を示すように、部品名、部品種別、部
品形式を格納したものである。
【0026】展開情報作成処理では展開に関する記述を
展開情報の内部形式に変換し、部品ライブラリ43に格
納する(ステップS14)。展開情報の格納形式は図5
(c)に示す通りである。この情報は引用される状況に
対応して生成コードを編集するための手続きが記載され
ているため、構文則情報の意味則と同様に部品引用時に
インタプリタで展開処理を実行できる形式に変換して格
納する。この時、ターゲット言語および生成プログラム
構造によって複数の展開箇所が必要となる。そのため本
実施例では、C++言語と一般的なC++言語のプログ
ラム構造を対象に、展開箇所別に手続きを定義させるこ
ととし、 include域、型(クラス)定義域、変数(イン
スタンス)定義域、処理定義域が設けられている。この
関係が図6に示されている。
【0027】次に、チェック部33の処理を図7に示す
フローチャートを参照して説明する。
【0028】図7において、チェック部33は、チェッ
クを依頼されると、ジェネレータ本体1側から渡された
情報を元に、構文チェック(ステップS21)、属性チ
ェック(ステップS22)、意味チェック(ステップS
23)を行い、チェック結果を返却する(ステップS2
4)。
【0029】構文チェックは、部品ライブラリ43から
構文則を取り出し、渡された情報の記述形式がこの構文
則に準拠した形式になっているか否かをチェックする。
誤りがあれば、誤り情報を作成する。正しい場合には、
対応する構文構造に対応した内部構造を作成し、構造中
に指定データを書き込む。
【0030】属性チェックは、構文構造情報の中から属
性情報を取り出し、部品ライブラリ43に格納されてい
る部品定義時の属性情報と突合チェックを行い、誤りが
あれば誤り情報を作成する。
【0031】意味チェックは、部品定義時に作成者が想
定した利用法以外の使用法を抑止するために記述したチ
ェック処理を実行する。具体的には、部品ライブラリ4
3から構文則情報の意味則(インタプリタ用中間コード
に変換されたもの)を取り出し、インタプリタに当該コ
ードを実行させる。意味則にはチェック条件と条件に違
反した時の誤り情報が規定されており、インタプリタで
の実行で誤りが検出された時には誤り情報が作成される
ことになる。
【0032】意味チェックに用いるインタプリタの処理
フローを図8に示す。ステップS31で中間コードカウ
ンタを初期化した後、インタプリタは、ステップS33
で中間コードを1つずつ取り出し、命令コード対応処理
の実行を繰り返す(ステップS37,ステップS3
8)。実行命令コードがなくなるか、終了命令で処理を
終わる。
【0033】中間コード形式と代表的な命令コード群を
図9に示す。中間コードは命令コードおよび命令の対象
となる3つのオペランドで構成される。命令コードはチ
ェックやコード生成を行うために必要な基本処理単位で
あり、制御/代入/比較/演算/エラー情報作成・送出
/展開等からなる。オペランドには、基本処理単位の操
作対象となる変数、定数、中間コードのアドレスを設定
する。本インタプリタは意味チェックだけでなく展開部
でも用いるため、展開専用の命令コードが1つ追加され
ている。
【0034】意味チェックの流れ図10を用いて具体的
に説明する。
【0035】部品定義で与えられた意味則を登録部31
で中間コードへ変換し、部品ライブラリ43に格納す
る。この時、意味則の構文解析を通じて評価順序を抽出
し、抽出された式の要素の処理順序に対応する中間コー
ドを並べていく。この例では、==はcmp に、|はorに、
!はnot に、=>はbcとmsg のように命令コードに置き
換え、作用対象の変数/定数をオペランドに設定する。
【0036】部品が引用され、意味チェックが行われる
時、インタプリタは先頭から中間コードを1つずつ取り
出し、命令コード対応の処理を実行する。本実施例で
は、cmp ,or,not ,bcの順に実行され、分岐条件が満
たされず、msg 命令が実行されてエラーメッセージが得
られ、結果として依頼則に返却されることになる。
【0037】次に、展開部35の処理フローを図11に
示す。
【0038】展開部35は、展開を依頼されると、展開
箇所に対応した展開用中間コードを取得し、そのコード
をインタプリタで実行させることにより、指定部品・指
定箇所対応のソースプログラムコードを作成する。
【0039】命令取得では、部品ライブラリ43に登録
された展開情報を読み込むとともに、依頼された展開箇
所対応の展開手続き(中間コード形式)を取り出す(ス
テップS41)。次の展開処理では、チェック部33で
用いたインタプリタに命令取得で取り出した展開手続き
(中間コード)を実行させる(ステップS42)。この
手続きの実行で、部品定義に指定された手順で部品呼び
出し状況に対応したプログラムコードが生成される。結
果返却では、生成プログラムコードを依頼元に返却する
(ステップS43)。
【0040】展開処理を図12を用いて具体的に説明す
る。本例はスタック機構のデータ格納域を指定すること
により、配列/リストで実現する時の展開処理を記述し
た例である。
【0041】部品定義で与えられた展開手続きは、登録
部31で中間コードに変換後、部品ライブラリ43に格
納される。この時、意味則の構文解析と同様に展開手続
きの解析を通じて実行順序を抽出し、処理単位で中間言
語に置き換えていく。本例では、if文に対応させて、条
件式を評価するcmp と結果により分岐するbcに、更に展
開を指示する@{・・・・}@に対応させ、expandが処
理順に並べられて、中間コードが組み立てられる。
【0042】部品が引用され、プログラムが展開される
とき、インタプリタは展開用の中間言語を1つずつ取り
出し、対応する命令コードを実行する。具体的な処理の
流れについて、部品情報として、@nameにx、@typeに
int 、@num に””が与えられた場合を説明する。cmp
,bcの実行では、@num が””(空文字列)に等しい
ため、そのまま次の中間コードが実行され、+により、
@tempに@nameと”−list”と連結されたデータが設定
され、次のexpandが実行される。expandは定数1中の@
が付いた変数をその変数の持つ値に置き換えるとともに
置き換えられた文字列をコースコードとして出力する。
以上の流れで、状況に対応したプログラムが生成され
る。
【0043】
【発明の効果】以上説明したように、本発明によれば、
ソフトウェア部品の利用法と組み込み法に関する知識を
併せて登録するとともに、ソフトウェア部品の引用時に
当該部品に関する使用法を検証し、引用箇所、引用状況
に対応したプログラム表現とすることにより、利用範囲
が広く、かつ利用が容易なソフトウェア部品の作成を可
能とする効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例に係るソフトウェア部品登録
組込装置のプログラムジェネレータの構成を示す図であ
る。
【図2】ソフトウェア部品登録組込装置の構成を関連情
報等とともに更に詳細に示す図である。
【図3】部品定義情報の概要を示す図であり、部品に関
するチェック、属性、展開の記述例が示されている。
【図4】図1のソフトウェア部品登録組込装置の登録部
の処理を示すフローチャートである。
【図5】構文則情報、属性情報、展開情報の内部表現で
ある格納形式を示す図である。
【図6】プログラム構造の枠組みを示す図である。
【図7】チェック部の処理を示すフローチャートであ
る。
【図8】チェック・展開用インタプリタの動作を示すフ
ローチャートである。
【図9】中間コードの形式および代表的な命令コードを
示す図である。
【図10】チェック処理の具体例を示す図である。
【図11】展開部の処理を示すフローチャートである。
【図12】展開処理の具体例を示す図である。
【符号の説明】
1 ジェネレータ本体 3 ソフトウェア部品登録組込装置 11 構文解析部 13 コード生成部 31 登録部 33 チェック部 35 展開部 41 部品定義情報 43 部品ライブラリ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 四則演算やプログラム構造の制御等の基
    本機能に関するプログラム生成手段と対象分野に特化し
    た拡張機能に関するプログラム生成手段とを有するプロ
    グラムジェネレータを構成するソフトウェア部品登録組
    込装置において、 拡張機能のプログラム生成手段としてソフトウェア部品
    の利用法と組込法に関する知識を併せて登録する手段
    と、 ソフトウェア部品の引用時に当該部品に関する使用法が
    妥当であるかを検証する手段と、 ソフトウェア部品の引用時に、引用箇所および引用状況
    に対応したプログラム表現に変更する手段とを有するこ
    とを特徴とするソフトウェア部品登録組込装置。
JP28046194A 1994-11-15 1994-11-15 ソフトウェア部品登録組込装置 Pending JPH08137680A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28046194A JPH08137680A (ja) 1994-11-15 1994-11-15 ソフトウェア部品登録組込装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28046194A JPH08137680A (ja) 1994-11-15 1994-11-15 ソフトウェア部品登録組込装置

Publications (1)

Publication Number Publication Date
JPH08137680A true JPH08137680A (ja) 1996-05-31

Family

ID=17625392

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28046194A Pending JPH08137680A (ja) 1994-11-15 1994-11-15 ソフトウェア部品登録組込装置

Country Status (1)

Country Link
JP (1) JPH08137680A (ja)

Similar Documents

Publication Publication Date Title
Javanbakht et al. Advanced finite element simulation with MSC Marc
US5918035A (en) Method for processor modeling in code generation and instruction set simulation
Bardohl et al. Integrating meta-modelling aspects with graph transformation for efficient visual language definition and model manipulation
US5701487A (en) Method and apparatus for displaying locations of errors detected inside software macro calls
JP4057938B2 (ja) コンパイラ、コンパイル方法、及びプログラム開発ツール
JPH08202545A (ja) ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法
JPH0383153A (ja) メツセージ処理システム及び方法
JP5147240B2 (ja) リバーシブルなデザイン・ツリーの変換のための方法とシステム
JP3871832B2 (ja) データ処理プログラム自動生成システム及びその方法並びにコンピュータ可読記録媒体
JP2003085016A (ja) スキーマ生成装置、データ処理装置及びその方法並びにプログラム
JPH10254689A (ja) クライアント・サーバシステムのアプリケーション構成設計支援方式
JP3577400B2 (ja) システム設計装置及びデータウエアハウス設計システム
Pérez Andrés et al. Domain specific languages with graphical and textual views
Lourenço et al. OSTRICH: a rich template language for low-code development (extended version)
Seco et al. Nested OSTRICH: hatching compositions of low-code templates
Amann et al. BIM programming
US6763516B2 (en) Convention checking apparatus, convention checking system, convention checking method, and storage medium on which is recorded a convention checking program
JPH08137680A (ja) ソフトウェア部品登録組込装置
GB2420638A (en) Method of substituting code fragments in Internal Representation
Hanes Logic design verification using static analysis
Khor et al. Requirements analysis of variability constraints in a configurable flight software system
Berz et al. COSY INFINITY 10.2
Mishchenko et al. New functionalities of the system for processing natural language specifications and its operating environment
JPH11250055A (ja) 構造化文書編集方法及び構造化文書編集装置並びに構造化文書編集プログラムを記録した記録媒体
JP4154164B2 (ja) 知識再利用システム