JPH09204302A - 複数機種対応プログラム自動生成装置 - Google Patents

複数機種対応プログラム自動生成装置

Info

Publication number
JPH09204302A
JPH09204302A JP1220396A JP1220396A JPH09204302A JP H09204302 A JPH09204302 A JP H09204302A JP 1220396 A JP1220396 A JP 1220396A JP 1220396 A JP1220396 A JP 1220396A JP H09204302 A JPH09204302 A JP H09204302A
Authority
JP
Japan
Prior art keywords
model
branch
value
program
factor
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
JP1220396A
Other languages
English (en)
Inventor
Kazutoshi Sumiya
和俊 角谷
Hirohiko Tanaka
裕彦 田中
Koichi Yasutake
剛一 安武
Norio Sanada
紀男 眞田
Takuya Sekiguchi
卓也 關口
Takashi Nawata
毅史 縄田
Toshihiro Hishida
利浩 菱田
Emiko Ishizaki
恵美子 石崎
Noboru Anzai
昇 安斎
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP1220396A priority Critical patent/JPH09204302A/ja
Publication of JPH09204302A publication Critical patent/JPH09204302A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 機種に応じた分岐処理を行うことにより複数
機種での使用に対応するプログラムを、再利用可能なプ
ログラム部品から生成する複数機種対応プログラム自動
生成装置において、動的分岐に対処するための機種分岐
コードを生成することができる複数機種対応プログラム
自動生成装置を提供すること。 【解決手段】 プログラム生成部13に、切り替え値リ
スト生成部133、機種分岐値切り替え判別部134、
機種分岐値初期値リスト生成部135、機種パタン生成
部136、機種分岐値表現情報量生成部137、機種パ
タン比較部138を備え、加工された機種分岐情報を参
照して、対応すべき複数の機種に応じてプログラム部品
に含まれる標識文を機種分岐コードに変換する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プログラム部品か
らプログラムを生成するプログラム自動生成装置におい
て、特に複数機種に対応したプログラムを生成する複数
機種対応プログラム自動生成装置に関する。
【0002】
【従来の技術】近年、電機製品の分野において、海外展
開の対象地域が拡大している。これに伴い、電機製品に
備えられるマイコンシステムのプログラム開発におい
て、複数機種に対応したプログラムを作成し、同一のプ
ログラムを組み入れたマイコンを複数機種で共用するこ
とにより、マイコンの発注コストを削減するということ
が行われている。
【0003】例えば、米国地域で使用する機種(例え
ば、機種番号を「100AA」とし、以下「AA」と略
記する)に備えられるマイコンと、英国地域で使用する
機種(例えば、機種番号を「100BB」とし、以下
「BB」と略記する)に備えられるマイコンとに同一の
プログラムを組み入れる。そして、初期化の処理におい
て機器の抵抗値等を検知することにより機種番号を識別
し、機種番号を表すコードをRAM領域に格納する。プ
ログラムの中で機種に応じて処理が異なる部分では、R
AM領域に保持されたコードを参照して分岐の処理を行
うことにより、同一のプログラムを複数機種で共用する
ことができる。
【0004】複数機種に対応するための分岐の処理に使
用される機種分岐のプログラムコード(以下「機種分岐
コード」と呼ぶ)は、プログラム内部の様々なところで
使用される。従って、機種分岐コードを実際にプログラ
ムに組み込んでしまうと、機種の追加、仕様変更等があ
った場合にプログラムの大幅な修正が必要になり、プロ
グラムの再利用性が低下する。また、人手で機種分岐コ
ードをコーディングすることはプログラムの作成ミスの
原因となる。これらの問題点を解決するため、複数機種
対応プログラム自動生成装置が考案されている(例え
ば、特開平1−94432号)。
【0005】以下、従来の複数機種対応プログラム自動
生成装置について説明する。図20は、従来の複数機種
対応プログラム自動生成装置の構成を示すブロック図で
ある。同図に示される複数機種対応プログラム自動生成
装置は、部品データベース201、製品仕様データベー
ス202、プログラム生成部203、操作部204、プ
ログラム出力部205、部品管理部206、製品仕様管
理部207を備える。プログラム生成部203は、プロ
グラム部品取得部2031、製品仕様取得部2032、
機種パタン生成部2033、機種分岐コード生成部20
34を含む。
【0006】部品データベース201には、再利用可能
なプログラム部品が蓄積されている。部品データベース
201の内容は、部品管理部206によって管理されて
おり、部品管理部206を介して格納、取り出しが可能
な構成となっている。
【0007】製品仕様データベース202には、各機種
の製品仕様情報が蓄積されている。製品仕様データベー
ス202の内容は、製品仕様管理部207によって管理
されており、製品仕様管理部207を介して格納、取り
出しが可能な構成となっている。
【0008】プログラム生成部203は、部品データベ
ース201に蓄積されたプログラム部品と、製品仕様デ
ータベース202に蓄積された製品仕様情報とから、機
種分岐コードを組み入れたプログラムを生成する。
【0009】具体的には、プログラム部品取得部203
1が、部品管理部206を介して、部品データベース2
01からプログラム部品を取り出す。製品仕様取得部2
032は、製品仕様管理部207を介して、製品仕様デ
ータベース202から製品仕様情報を取り出す。
【0010】機種パタン生成部2033は、機能判別部
20331、データ判別部20332、表判別部203
33を有する。機種パタン生成部2033は、製品仕様
データベース202から取り出された製品仕様情報の内
容を分析し、上記三種類の判別部のいずれかを選択して
グルーピング情報を生成する。即ち、機種による機能の
有無の違いであれば、機能判別部20331を使用して
機種のグループ化を行う。機種によるデータの違いであ
ればデータ判別部20332を、参照する表の違いであ
れば表判別部20333を使用する。いずれの場合も、
グルーピング情報は、それぞれのグループに属する機種
の集合として表される。
【0011】機種分岐コード生成部2034は、グルー
ピング情報を参照して、最終的に機種分岐コードが組み
込まれたプログラムを生成する。操作部204は、操作
者からの操作を受け付ける。具体的な操作としては、プ
ログラム部品の部品データベース201への格納、機種
分岐情報の製品仕様データベース202への格納、プロ
グラム生成の指示要求等がある。
【0012】プログラム出力部205には、プログラム
生成部203によって生成されたプログラムが出力され
る。
【0013】以上のように構成された従来の複数機種対
応プログラム自動生成装置について、以下、その動作を
説明する。まず、プログラム部品取得部2031が、操
作部204が受け付けた操作者からの指示に応じて、部
品データベース201から使用すべきプログラム部品を
取り出す。また、製品仕様取得部2032は、操作者か
らの指示に応じて製品仕様データベース202から当該
プログラムで対応すべき機種の製品仕様情報を取り出
す。
【0014】プログラム生成部203は、取り出された
製品仕様情報を分析し、機能判別部20331、データ
判別部20332、表判別部20333のいずれかを使
用してグルーピング情報を生成する。前述の如く、グル
ーピング情報は機種の集合として表されているので、機
種分岐コード生成部2034は、機種に応じた処理が行
われるような機種分岐コードを生成し、部品データベー
ス201から取り出されたプログラム部品に埋め込む。
【0015】以上のように生成されたプログラムは、プ
ログラム出力部205に出力され、マイコンシステムに
組み込まれる。
【0016】
【発明が解決しようとする課題】しかしながら、従来の
複数機種対応プログラム自動生成装置では、グルーピン
グ情報が機種の集合として表されていたため、機種のグ
ループと処理との間の関係は1対1でなくてはならなか
った。そのため、機器の使用中に分岐の条件を変更する
場合(以下「動的分岐」と呼ぶ)のように、同一機種に
おいて複数種類の処理の切り替えを行う場合に対処でき
る機種分岐コードを自動的に生成することはできないと
いう問題点を有していた。
【0017】例えば、機器の使用中にディスプレイの表
示を「日本語」から「英語」に切り替えるという処理を
行う場合、指定された言語に応じて分岐の処理を行うこ
とが必要となるが、従来の複数機種対応プログラム自動
生成装置では、言語の切り替えに対処するための機種分
岐コードを自動的に生成することはできなかった。
【0018】一方、電機製品の海外展開の対象地域の拡
大とCS(Customer Satisfactio
n)向上の要求は、前述の言語の切り替えのみならず、
単位の切り替え(例えば、重量における「キログラム」
と「ポンド」)など、動的分岐の必要性を増大させつつ
ある。また、マイコンシステムに組み込めるプログラム
のモジュールの大きさに制限があることから、同一プロ
グラムを共用できる機種の種類にも限界があり、最適な
複数機種の組み合わせを見つけるために、様々な組み合
わせについてテストを行うことが必要な場合があるな
ど、動的分岐への対処が可能な複数機種対応プログラム
自動生成装置の開発が急務であった。
【0019】本発明は以上の問題点に鑑み、動的分岐に
対処するための機種分岐コードを自動的に生成すること
ができる複数機種対応プログラム自動生成装置を提供す
ることを目的とする。
【0020】
【課題を解決するための手段】上記の問題点を解決する
ために請求項1の発明は、機種に応じた分岐処理を行う
ことにより複数機種での使用に対応するプログラムを、
再利用可能なプログラム部品から生成する複数機種対応
プログラム自動生成装置であって、分岐の要因とその要
因の値とに応じて分岐する分岐処理と、前記要因の値を
所定の領域へ格納する格納処理と、格納された前記要因
の値の更新処理との何れかを定義する標識文と、前記分
岐の要因とその要因の値とが合致した場合に行われるべ
き処理を定義する処理文とを含むプログラム部品を、一
種または複数種類格納する部品格納手段と、前記分岐の
要因である機種分岐要因と、機種分岐要因が取り得る値
である機種分岐値とから成る機種分岐情報を機種ごとに
格納する製品仕様格納手段と、使用すべきプログラム部
品と、生成するプログラムで対応すべき複数の機種とを
指定する指定手段と、前記指定手段により指定された機
種の機種分岐情報に含まれる機種分岐要因について、取
り得る機種分岐値が一種類であるか、複数種類であるか
を機種ごとに示す切り替え値リストを生成する切り替え
値リスト生成手段と、前記切り替え値リストから、機種
分岐値が複数種類である機種が存在するか否かを機種分
岐要因ごとに判別する切り替え判別手段と、前記切り替
え判別手段において、機種分岐値が複数種類である機種
が存在すると判別された機種分岐要因について、機種ご
との機種分岐値の初期値を表す初期値リストを生成する
初期値リスト生成手段と、前記機種分岐値と、前記切り
替え値リストと、前記初期値リストとを参照して、前記
指定手段により指定された全てのプログラム部品に含ま
れる標識文を、分岐処理と、機種分岐値の初期値を所定
の領域へ格納する格納処理と、格納された機種分岐値の
更新処理との何れかを行うプログラムコードにそれぞれ
変換するとともに、機種分岐値を格納する領域を定義す
るプログラムコードを生成する機種分岐コード生成手段
とを有する。
【0021】
【発明の実施の形態】請求項1の発明は、機種に応じた
分岐処理を行うことにより複数機種での使用に対応する
プログラムを、再利用可能なプログラム部品から生成す
る複数機種対応プログラム自動生成装置であって、分岐
の要因とその要因の値とに応じて分岐する分岐処理と、
前記要因の値を所定の領域へ格納する格納処理と、格納
された前記要因の値の更新処理との何れかを定義する標
識文と、前記分岐の要因とその要因の値とが合致した場
合に行われるべき処理を定義する処理文とを含むプログ
ラム部品を、一種または複数種類格納する部品格納手段
と、前記分岐の要因である機種分岐要因と、機種分岐要
因が取り得る値である機種分岐値とから成る機種分岐情
報を機種ごとに格納する製品仕様格納手段と、使用すべ
きプログラム部品と、生成するプログラムで対応すべき
複数の機種とを指定する指定手段と、前記指定手段によ
り指定された機種分岐情報に含まれる機種分岐要因につ
いて、取り得る機種分岐値が一種類であるか、複数種類
であるかを機種ごとに示す切り替え値リストを生成する
切り替え値リスト生成手段と、前記切り替え値リストか
ら、機種分岐値が複数種類である機種が存在するか否か
を機種分岐要因ごとに判別する切り替え判別手段と、前
記切り替え判別手段において、機種分岐値が複数種類で
ある機種が存在すると判別された機種分岐要因につい
て、機種ごとの機種分岐値の初期値を表す初期値リスト
を生成する初期値リスト生成手段と、前記機種分岐値
と、前記切り替え値リストと、前記初期値リストとを参
照して、前記指定手段により指定された全てのプログラ
ム部品に含まれる標識文を、分岐処理と、機種分岐値の
初期値を所定の領域へ格納する格納処理と、格納された
機種分岐値の更新処理との何れかを行うプログラムコー
ドにそれぞれ変換するとともに、機種分岐値を格納する
領域を定義するプログラムコードを生成する機種分岐コ
ード生成手段とを有する。
【0022】部品格納手段は、複数の標識文と処理文と
を含むプログラム部品を一種または複数種類格納する。
標識文は、分岐の要因とその要因の値とに応じて分岐す
る分岐処理と、前記要因の値を所定の領域へ格納する格
納処理と、格納された前記要因の値の更新処理との何れ
かを定義し、処理文は、前記分岐の要因とその要因の値
とが合致した場合に行われるべき処理を定義する。
【0023】製品仕様格納手段は、前記分岐の要因であ
る機種分岐要因と、機種分岐要因が取り得る値である機
種分岐値とから成る機種分岐情報を機種ごとに格納す
る。
【0024】指定手段は、使用すべきプログラム部品
と、生成するプログラムで対応すべき複数の機種とを指
定する。切り替え値リスト生成手段は、前記指定手段に
より指定された機種の機種分岐情報に含まれる機種分岐
要因について、取り得る機種分岐値が一種類であるか、
複数種類であるかを機種ごとに示す切り替え値リストを
生成する。
【0025】切り替え判別手段は、前記切り替え値リス
トから、機種分岐値が複数種類である機種が存在するか
否かを機種分岐要因ごとに判別する。
【0026】初期値リスト生成手段は、前記切り替え判
別手段において、機種分岐値が複数種類である機種が存
在すると判別された機種分岐要因について、機種ごとの
機種分岐値の初期値を表す初期値リストを生成する。機
種分岐コード生成手段は、前記機種分岐値と、前記切り
替え値リストと、前記初期値リストとを参照して、前記
指定手段により指定された全てのプログラム部品に含ま
れる標識文を、分岐処理と、機種分岐値の初期値を所定
の領域へ格納する格納処理と、格納された機種分岐値の
更新処理との何れかを行うプログラムコードにそれぞれ
変換するとともに、機種分岐値を格納する領域を定義す
るプログラムコードを生成する。
【0027】機種分岐コード生成手段は、機種分岐値を
参照して、標識文のプログラムコードへの変換を行うた
め、同一機種で複数種類の機種分岐値の切り替えを行う
場合でも、切り替えに対処するための機種分岐コードを
生成することができる。
【0028】また、請求項2の発明は、請求項1記載の
複数機種対応プログラム自動生成装置においてさらに、
前記指定手段により指定された機種の機種分岐情報か
ら、複数機種において同一の機種分岐値には同一の符号
を割り当て、異なる機種分岐値には異なる符号を割り当
てた機種パタンを、機種分岐要因ごとに生成する機種パ
タン生成手段と、前記機種パタンから、当該機種パタン
に含まれる重複しない符号の数を表す表現情報量を、機
種分岐要因ごとに生成する表現情報量生成手段とを有
し、前記機種分岐コード生成手段は、前記機種分岐値
と、前記表現情報量とを参照して、表現情報量が1の場
合には、当該機種分岐要因および機種分岐値を分岐条件
として定義する標識文を削除し、それ以外の場合には、
表現情報量に応じて、機種分岐値を格納する領域を定義
するプログラムコードを生成するとともに、前記標識文
を定義された領域に対応するプログラムコードに変換す
る。
【0029】機種パタン生成手段は、前記指定手段によ
り指定された機種の機種分岐情報から、複数機種におい
て同一の機種分岐値には同一の符号を割り当て、異なる
機種分岐値には異なる符号を割り当てた機種パタンを、
機種分岐要因ごとに生成する。表現情報量生成手段は、
前記機種パタンから、当該機種パタンに含まれる重複し
ない符号の数を表す表現情報量を、機種分岐要因ごとに
生成する。
【0030】前記機種分岐コード生成手段は、前記機種
分岐値と、前記表現情報量とを参照して、表現情報量が
1の場合には、当該機種分岐要因および機種分岐値を分
岐条件として定義する標識文を削除し、それ以外の場合
には、表現情報量に応じて、機種分岐値を格納する領域
を定義するプログラムコードを生成するとともに、前記
標識文を定義された領域に対応するプログラムコードに
変換する。
【0031】表現情報量が1であるということは、当該
機種分岐要因が取り得る機種分岐値が1種類、即ち定数
であることを意味しており、機種分岐値によって分岐処
理を行う必要がないため、常に当該標識文の条件が合致
した場合の処理を行うようなプログラムとすべく当該標
識文を削除する。それ以外の場合には、機種分岐値を格
納する領域として、表現情報量に示された情報量を表現
し得るサイズの領域を確保するプログラムコードを生成
するとともに、標識文を、定義された領域のサイズに対
応するプログラムコードに変換する。
【0032】また、請求項3の発明は、請求項1記載の
複数機種対応プログラム自動生成装置においてさらに、
前記指定手段により指定された機種の機種分岐情報か
ら、複数機種において同一の機種分岐値には同一の符号
を割り当て、異なる機種分岐値には異なる符号を割り当
てた機種パタンを機種分岐要因ごとに生成する機種パタ
ン生成手段と、機種分岐要因ごとの前記機種パタンを比
較し、機種パタンが一致する機種分岐要因の集合である
グルーピング情報を生成する機種パタン比較手段とを備
え、前記機種分岐コード生成手段は、前記機種分岐値
と、切り替え値リストと、前記グルーピング情報とを参
照して、機種パタンが同一で、かつ、前記切り替え判別
手段により機種分岐値が複数種類である機種が存在しな
いと判別された場合には同一の領域を共用するように、
機種分岐値を格納する領域を定義するプログラムコード
を生成するとともに、前記標識文を定義された領域に対
応するプログラムコードに変換する。
【0033】機種パタン生成手段は、前記指定手段によ
り指定された機種分岐情報から、複数機種において同一
の機種分岐値には同一の符号を割り当て、異なる機種分
岐値には異なる符号を割り当てた機種パタンを機種分岐
要因ごとに生成する。機種パタン比較手段は、機種分岐
要因ごとの前記機種パタンを比較し、機種パタンが一致
する機種分岐要因の集合であるグルーピング情報を生成
する。
【0034】前記機種分岐コード生成手段は、前記機種
分岐値と、切り替え値リストと、前記グルーピング情報
とを参照して、機種パタンが同一で、かつ、前記切り替
え判別手段により機種分岐値が複数種類である機種が存
在しないと判別された場合には同一の領域を共用するよ
うに、機種分岐値を格納する領域を定義するプログラム
コードを生成するとともに、前記標識文を定義された領
域に対応するプログラムコードに変換する。
【0035】また、請求項4の発明は、請求項2記載の
複数機種対応プログラム自動生成装置においてさらに、
機種分岐要因ごとの前記機種パタンを比較し、機種パタ
ンが一致する機種分岐要因の集合であるグルーピング情
報を生成する機種パタン比較手段を備え、前記機種分岐
コード生成手段は、前記機種分岐値と、切り替え値リス
トと、前記表現情報量と、前記グルーピング情報とを参
照して、表現情報量が1の場合には、当該機種分岐要因
および機種分岐値を分岐条件として定義する標識文を削
除し、それ以外の場合には、機種パタンが同一で、か
つ、前記切り替え判別手段により機種分岐値が複数種類
である機種が存在しないと判別された場合には同一の領
域を共用するようにしながら、表現情報量に応じて機種
分岐値を格納する領域を定義するプログラムコードを生
成するとともに、前記標識文を定義された領域に対応す
るプログラムコードに変換する。
【0036】機種パタン比較手段は、機種分岐要因ごと
の前記機種パタンを比較し、機種パタンが一致する機種
分岐要因の集合であるグルーピング情報を生成する。前
記機種分岐コード生成手段は、前記機種分岐値と、切り
替え値リストと、前記表現情報量と、前記グルーピング
情報とを参照して、表現情報量が1の場合には、当該機
種分岐要因および機種分岐値を分岐条件として定義する
標識文を削除し、それ以外の場合には、機種パタンが同
一で、かつ、前記切り替え判別手段により機種分岐値が
複数種類である機種が存在しないと判別された場合には
同一の領域を共用するようにしながら、表現情報量に応
じて機種分岐値を格納する領域を定義するプログラムコ
ードを生成するとともに、前記標識文を定義された領域
に対応するプログラムコードに変換する。
【0037】また、請求項5の発明は、請求項1乃至4
の何れかに記載の複数機種対応プログラム自動生成装置
において、前記プログラム部品は、前記指定手段により
指定された機種の機種分岐情報に含まれる機種分岐要因
および機種分岐値以外の、前記分岐の要因とその要因の
値とについて、前記分岐処理と、前記格納処理と、前記
更新処理との何れかを定義する標識文と、当該標識文に
定義された前記分岐の要因とその要因の値とが合致した
場合に行われるべき処理を定義する処理文とを含み、前
記複数機種対応プログラム自動生成装置はさらに、前記
機種分岐コード生成手段によりプログラムコードへの変
換が行われなかった標識文について、当該標識文と、当
該標識文に定義された前記分岐の要因とその要因の値と
が合致した場合に行われるべき処理を定義する処理文と
を削除する削除手段を有する。
【0038】削除手段は、前記指定手段により指定され
た機種の機種分岐情報に含まれる機種分岐要因および機
種分岐値以外の、分岐の要因とその要因の値についての
標識文と、当該標識文に対応する処理文とがプログラム
部品に含まれている場合に、前記機種分岐コード生成手
段によるプログラムコードへの変換が行われない標識文
および処理文が残留することになるため、プログラムコ
ードへの変換が行われなかった標識文および当該標識文
に対応する処理文を削除する。
【0039】以下、本発明の一実施の形態を図面を参照
しながら説明する。図1は、本実施の形態における複数
機種対応プログラム自動生成装置の構成を示すブロック
図である。同図に示される複数機種対応プログラム自動
生成装置は、部品データベース11、製品仕様データベ
ース12、プログラム生成部13、操作部14、プログ
ラム出力部15、部品管理部16、製品仕様管理部17
を備える。
【0040】部品データベース11は、特許請求の範囲
に記載の発明の部品格納手段に相当する。部品データベ
ース11には、機種分岐の記述を含む再利用可能なプロ
グラム部品が、例えばファイルの形で格納される。部品
データベース11の内容は、部品管理部16により管理
されている。個々のプログラム部品には部品名称が付与
され、操作部14で使用すべきプログラム部品の部品名
称が指定できる構成となっている。
【0041】製品仕様データベース12は、特許請求の
範囲に記載の発明の製品仕様格納手段に相当する。製品
仕様データベース12には、機種番号リストと、一つ以
上の機種分岐値リストとから成る機種分岐情報が、例え
ばファイルの形で格納される。製品仕様データベース1
2の内容は、製品仕様管理部17により管理されてい
る。
【0042】ここで、機種分岐値リストとは、例えば、
「言語」、「電源周期」等のように機種分岐処理の必要
を生じさせる要因(以下「機種分岐要因」と呼ぶ)と、
それぞれの機種分岐要因において、それぞれの機種番号
に対応して取られる値(以下「機種分岐値」と呼ぶ)と
から成る。
【0043】プログラムの生成時に参照すべき機種分岐
情報の指定を行うには、操作者は操作部14を通じて、
生成されるプログラムが対応すべき機種の機種番号を指
定する。操作者の指定に対応して、製品仕様管理部17
が必要な機種分岐情報を取り出すように構成されてい
る。プログラム生成部13は、機種分岐コードを組み入
れたプログラムを生成し、プログラム出力部15に出力
する。
【0044】操作部14は、特許請求の範囲に記載の発
明の指定手段に相当する。操作部14においては、操作
者が、プログラム部品の部品データベース11への格
納、機種分岐情報の製品仕様データベース12への格
納、使用すべきプログラム部品および機種の機種番号の
選択、プログラム生成開始の指示等の入力を行う。プロ
グラム出力部15には、プログラム生成部13で生成さ
れた、機種分岐コードを組み入れたプログラムが出力さ
れる。
【0045】プログラム生成部13は、プログラム部品
取得部131、製品仕様取得部132、切り替え値リス
ト生成部133、機種分岐値切り替え判別部134、機
種分岐値初期値リスト生成部135、機種パタン生成部
136、機種分岐値表現情報量生成部137、機種パタ
ン比較部138、機種分岐コード生成部139を有す
る。
【0046】プログラム部品取得部131は、特許請求
の範囲に記載の発明の機種分岐コード生成手段の一部と
して、プログラム部品の取得を行う。プログラム部品取
得部131は、部品管理部16に指示を行い、部品デー
タベース11から使用すべきプログラム部品を取り出
す。図2は部品データベース11に格納されているプロ
グラム部品の一例である。同図に示されている部分は本
実施の形態の説明に必要な部分以外は省略されている。
実際のプログラム部品は、図示されている部分以外に、
必要な記述を全て含んだ形で部品データベース11に格
納されている。従って、本発明の複数機種対応プログラ
ム自動生成装置で機種分岐コードを組み入れることによ
り、そのままコンパイルを行い使用することが可能なプ
ログラムが得られる。
【0047】同図に示されるように、本実施の形態の複
数機種対応プログラム自動生成装置で使用されるプログ
ラム部品において、機種分岐コードへの変換が行われる
べきところには、文(a)、文(b)、文(d)等のよ
うに、<>で囲まれた機種分岐時の条件等を示す文が配
置されている(以下、<>で囲まれた文を「変換標識
文」と呼ぶ)。同図のプログラム部品に配置されている
変換標識文において、文(a)のようにsetvalu
eから始まる文は、機種分岐コードへの変換処理によ
り、RAMに確保された領域に機種分岐値を格納、また
は更新するプログラムコードに変換される。また、文
(b)、文(d)等のように、ifまたはelseif
から始まる文(以下、両者を合わせて「if文」と呼
ぶ)は、分岐処理を行うプログラムコードに変換され
る。
【0048】文(n)に示される、</if>(以下、
「endif文」と呼ぶ)は、機種分岐コードへの変換
処理により、分岐処理の出口を表すプログラムコードに
変換される。文(c)、文(e)等のように、「;英語
の処理」等と記述されている部分には、実際のプログラ
ム部品においては、機種分岐が実行された場合に行われ
るべき処理を表す記述がアセンブラ、C言語等のプログ
ラミング言語により記述されている。同図の例では、
「英語」、「フランス語」等、6種類の言語について記
述がなされているが、実際のプログラム部品には、使用
される可能性のある全ての機種分岐値について、機種分
岐が実行されたときに行われるべき処理が上記変換標識
文と共に記述されている。例えば、機種分岐要因「言
語」についていえば、製品仕様データベース12に格納
されている機種分岐値リストに規定されている全ての言
語に対処できるように、予め全ての言語に対応する処理
を記述しておく。
【0049】製品仕様取得部132は、特許請求の範囲
に記載の発明の切り替え値リスト生成手段の一部とし
て、機種分岐情報の取得を行う。製品仕様取得部132
は、製品仕様管理部17に指示を行い、製品仕様データ
ベース12から機種分岐情報を取り出す。図3は、機種
分岐情報のデータ構造を示す図である。同図に示される
ように、機種分岐情報は、機種番号を示す機種番号リス
トと、一つ以上の機種分岐値リストとから成る。機種分
岐要因には、それぞれ対応する機種分岐ラベルが定義さ
れている。例えば、「電源周期」には「ACHel
z」、「電源電圧」には「ACVolt」、「言語」に
は「Lang」といったようなものである。機種分岐ラ
ベルは、プログラムの自動生成を行う際に変数名として
使用されるものであり、操作部14を通じて操作者によ
り定義される。
【0050】切り替え値リスト生成部133は、特許請
求の範囲に記載の発明の切り替え値リスト生成手段に相
当する。切り替え値リスト生成部133は、機種分岐情
報から、それぞれの機種分岐要因に対応する切り替え値
リストを生成する。切り替え値リストとは、機種分岐要
因について、機種分岐値の切り替え(動的分岐)が行わ
れるか否かを、機種番号ごとに示すものである。
【0051】機種分岐値切り替え判別部134は、特許
請求の範囲に記載の発明の切り替え判別手段に相当す
る。機種分岐値切り替え判別部134は、切り替え値リ
スト生成部133によって生成された切り替え値リスト
を参照して、それぞれの機種分岐要因ごとに機種分岐値
が切り替えを含むか否かを判別する。この場合、切り替
え値リストにおいて切り替え「有」とされている機種が
一つでもあれば、当該機種分岐要因は切り替えを含むと
いう判別を行う。
【0052】機種分岐値初期値リスト生成部135は、
特許請求の範囲に記載の発明の初期値リスト生成手段に
相当する。機種分岐値初期値リスト生成部135は、機
種分岐値切り替え判別部134において切り替えを含む
と判別された機種分岐要因について、機種分岐値初期値
リストを生成する。機種分岐値初期値リストは、動的分
岐が行われる機種分岐要因について、機種分岐値の初期
値を機種ごとに定義する。
【0053】機種パタン生成部136は、特許請求の範
囲に記載の発明の機種パタン生成手段に相当する。機種
パタン生成部136は、機種分岐情報、切り替え値リス
ト、機種分岐値初期値リストから機種パタンを生成す
る。機種パタンとは、機種分岐情報の中で、複数機種に
おいて同一の機種分岐値には同一の符号を割り当て、異
なる機種分岐値には異なる符号を割り当てたものであ
る。
【0054】機種分岐値表現情報量生成部137は、特
許請求の範囲に記載の発明の表現情報量生成手段に相当
する。機種分岐値表現情報量生成部137は、機種パタ
ンから機種分岐値表現情報量を生成する。機種分岐値表
現情報量は、機種パタンに含まれる重複しない符号の種
類の数を表す。機種分岐値表現情報量が1であれば、機
種分岐値が定数であることを意味する。機種分岐値表現
情報量が2であれば1ビットで表現できる。また、3以
上であれば1バイトを割り当てて表現することができ
る。
【0055】機種パタン比較部138は、特許請求の範
囲に記載の発明の機種パタン比較手段に相当する。機種
パタン比較部138は、機種パタン同士を比較して機種
パタンが等しい機種分岐要因をグループ化したグルーピ
ング情報を生成する。機種分岐コード生成部139は、
特許請求の範囲に記載の発明の機種分岐コード生成手段
および削除手段に相当する。機種分岐コード生成部13
9は、機種分岐情報と、切り替え値リストと、機種分岐
値初期値リストと、機種分岐値情報表現量と、グルーピ
ング情報とに基づいて、部品データベース11から取り
出されたプログラム部品に記述されている変換標識文を
機種分岐コードに変換する。また、機種分岐コード生成
部139は、プログラムの実行時に参照されるべき情報
をまとめた機種分岐テーブルのコードを生成し、変換の
結果として生成されたプログラムコードと共に、プログ
ラム出力部15に出力する。
【0056】図4は、プログラム生成部13の処理内容
を示すフローチャートである。以下、具体的なデータを
用いて、プログラム生成部13の処理内容について説明
する。プログラムの自動生成を行うに際して、操作者
は、操作部14から、再利用するプログラム部品の名称
と、生成されるプログラムで対応すべき機種の機種番号
の指定を行う。
【0057】まず、製品仕様取得部132が、製品仕様
管理部17に指示を行い、製品仕様データベース12か
ら指定された機種番号に対応する機種分岐情報を取得す
る(S401)。機種番号として「AA」、「BB」、
「CC」、「DD」の4種類が指定されたものとする
と、今回の処理で参照される機種分岐情報は図5に示す
如くとなる(以下、特に示す場合を除き機種分岐ラベル
は省略する)。
【0058】取り出された機種分岐情報に含まれる全て
の機種分岐要因について、以下に説明するステップS4
03〜S407までの処理を順次行う(S402:機種
パタン生成ループ)。本実施の形態においては、「電源
電圧」、「電源周期」、「言語」の3種類の機種分岐要
因について、それぞれステップS403〜S407の処
理が行われることとなる。
【0059】製品仕様取得部132は、取得された機種
分岐情報から、機種分岐値リストを一つずつ取り出し、
切り替え値リスト生成部133に送る。切り替え値リス
ト生成部133は、取り出された機種分岐要因について
切り替え値リストを生成する(S403)。図6は、切
り替え値リストのデータ構造を示す。同図の切り替え値
リストは、図5に示される機種分岐情報から生成された
ものであり、機種パタン生成ループ終了時の内容であ
る。
【0060】例えば、図5に示される機種分岐情報にお
いて、機種番号「AA」における、機種分岐要因「言
語」の機種分岐値は、英語とドイツ語とで切り替えが行
われることを示している。同図に示されるように、機種
分岐値リストにおいて、切り替えは「/」を用いて表さ
れているので、「/」が存在すれば切り替えが有り、存
在しなければ切り替え無しとして切り替え値リストの生
成を行う。
【0061】機種分岐値切り替え判別部134は、切り
替え値リストを参照し、取り出された機種分岐値リスト
が切り替えを含むか否かを判別し、切り替えを含まない
場合にはステップS406へと進み、切り替えを含む場
合にはステップS405へと進む(S404)。
【0062】当該機種分岐値リストが切り替えを含む場
合、機種分岐値初期値リスト生成部135は機種分岐値
初期値リストを生成する(S405)。図7は、機種分
岐値初期値リストのデータ構造を示す。同図の機種分岐
値初期値リストは、図5の機種分岐情報から生成された
ものであり、機種パタン生成ループ終了後の内容であ
る。図7に示されるように、切り替えが有ると判別され
た機種分岐要因である「言語」についてのみ、機種分岐
値初期値リストが生成される。この際、機種分岐値初期
値リスト生成部135は、機種分岐値に切り替えの有る
場合には、「/」で区切られた複数の機種分岐値の中
で、最も左側に位置する機種分岐値を初期値として認識
する。
【0063】機種パタン生成部136は、機種分岐値リ
ストと、切り替え値リストと、機種分岐値初期値リスト
とから、当該機種分岐要因に対応する機種パタンを生成
する(S406)。図8は、機種パタンのデータ構造を
示す。同図に示されるように、機種パタンとは、機種分
岐情報の中で、複数機種において同一の機種分岐値には
同一の符号を割り当て、異なる機種分岐値には異なる符
号を割り当てたものである。機種パタンの生成の際に
は、切り替え値リストと、機種分岐値初期値リストと
は、機種分岐値リストと同様に扱われる。
【0064】なお、同図の機種パタンは、図5に示され
る機種分岐情報と、図6に示される切り替え値リスト
と、図7に示される機種分岐値初期値リストとから生成
されたものであり、機種パタン生成ループ終了後の内容
である。
【0065】さらに機種分岐値表現情報量生成部137
は、当該機種分岐要因に対応する機種パタンから機種分
岐値表現情報量を生成する(S407)。例えば、図8
に示される機種パタンにおいて、機種分岐要因「電源周
期」の機種分岐値は2種類が存在することが示されてい
る。従って、機種分岐値表現情報量は2となる。図9に
図8に示される機種パタンにおける各機種分岐要因の機
種分岐値表現情報量を示す。
【0066】ステップS402で取り出された機種分岐
値リストについて、機種分岐値表現情報量の生成が終了
すると、次の機種分岐値リストについて処理を行うべく
ステップS402へと戻る。
【0067】操作者の指定した機種について定義されて
いる全ての機種分岐値リストについて、上記の処理が終
了した場合には、機種パタン生成ループを終了し、ステ
ップS409へと進む(S408)。図10は、これま
での処理で加工された機種分岐値を統合して表した図で
ある。前述のとおり、切り替え値リストおよび機種分岐
値初期値リストは機種分岐値リストと同様に扱われるた
め、「言語_切り替え」、「言語_初期値」のような機
種分岐要因にも機種分岐ラベルが付与される。
【0068】「切り替え」および「初期値」に対応する
機種分岐ラベルは、操作者によって定義された機種分岐
ラベルに基づいて自動的に付与されるが、切り替えを含
む機種分岐要因については機種分岐ラベルの変更が行わ
れる。即ち図10に示されるように、機種分岐要因「言
語」の機種分岐ラベルは「Lang_Select」と
変更され、機種分岐要因「言語_初期値」の機種分岐ラ
ベルが「Lang」と変更される。
【0069】機種パタン比較部138は、全ての機種分
岐要因について生成された機種パタン同士を比較し、機
種パタンが同一の機種分岐要因を表すグルーピング情報
を生成する(S409)。図8に示される機種パタンか
ら生成されるグルーピング情報は、[[電源周期,電源
電圧],[電源周期_切り替え,電源電圧_切り替
え],[言語],[言語_切り替え],[言語_初期
値]]となる。ここで、機種パタンが同一の機種分岐要
因の集合のそれぞれを、以下「グルーピングリスト」と
呼ぶ。
【0070】その後、プログラム部品取得部131が、
部品管理部16に指示を行うことにより、操作者に指定
されたプログラム部品を部品データベース11から取得
する(S410)。機種分岐コード生成部139は、プ
ログラム部品取得部131が取得したプログラム部品か
ら、プログラムを自動生成するとともに、プログラムの
実行時に参照されるべき情報を含む機種分岐テーブルの
コードを生成する(S411)。
【0071】以下、機種分岐コード生成部139の詳細
な処理内容について、図11〜図19を用いて説明す
る。なお以下の説明では、機種分岐情報と、生成される
プログラムとの対応関係をより明確にするため、プログ
ラム部品として図2に示されたものを使用し、機種分岐
情報として図16の(a)〜(c)のような選択がなさ
れた場合の、それぞれの出力例を用いて説明する。
【0072】図17は、図16(a)の機種分岐情報が
選択された場合に出力されるプログラムコードを示す図
である。また図18は、図16(b)の機種分岐情報が
選択された場合に出力されるプログラムコードを示す図
である。また図19は、図16(c)の機種分岐情報が
選択された場合に出力されるプログラムコードを示す図
である。
【0073】図11は、機種分岐コード生成部139の
詳細な処理内容を示すフローチャートである。まず、機
種分岐コード生成部139は、フラグ名およびビットの
定義処理を行う(S111)。図12はフラグ名および
ビットの定義処理の内容を示すフローチャートである。
ここでフラグとは、機種分岐値表現情報量が2であり、
即ち1ビットで表現される機種分岐値が、プログラムの
実行中に保持される領域のことである。
【0074】同図に示されるように、まず機種分岐コー
ド生成部139は、選択された機種分岐情報から、機種
分岐値表現情報量が2である機種分岐要因の機種分岐ラ
ベルを一つ取り出す(S121)。機種分岐値表現情報
量が2である全ての機種分岐要因について処理が終了す
ると、フラグ名、ビット処理は終了となる(S122:
Yes)。機種分岐値表現情報量が2であって、未処理
の機種分岐要因が存在する場合には、機種分岐コード生
成部139は、グルーピング情報から、取り出された機
種分岐要因を含むグルーピングリストを取り出し(S1
23)、取り出されたグルーピングリストから機種分岐
要因を一つ取り出す(S124)。グルーピングリスト
に含まれる全ての機種分岐要因について処理が終了する
と、機種分岐コード生成部139は、他にも機種分岐値
表現情報量が2である機種分岐要因が存在する場合を考
慮してステップS121に戻る(S125:Yes)。
取り出されたグルーピングリストに含まれる全ての機種
分岐要因について処理が終了していない場合には、機種
分岐コード生成部139は取り出された機種分岐要因に
ついて、機種分岐ラベルに基づいてフラグ名、ビットの
定義処理を行う(S126)。
【0075】前述のように、同一のグルーピングリスト
に含まれている機種分岐要因については、機種パタンが
同一であり、同一のフラグ領域を共用することが可能で
あるため、同一のフラグを共用するようにビットの定義
を行う。フラグ名およびビット定義の具体的な例として
は、図17に示される出力例の文(a)、文(b)が該
当する。この例では、機種分岐値表現情報量が2であ
り、機種パタンが等しい機種分岐要因である「言語」お
よび「電源電圧」について、同一のフラグ領域が共用さ
れるようにフラグの定義が行われている。
【0076】次に機種分岐コード生成部139は、RA
Mテーブル生成の処理を行う(S112)。RAMテー
ブル生成処理は、フラグ名、ビット定義処理とほぼ同様
の処理内容にて行われるが、ステップS121におい
て、機種分岐値表現情報量が2より大きく、かつ、切り
替えのある機種分岐要因について行われるところが異な
っている。
【0077】機種分岐ラベルに基づいて生成されたRA
Mテーブルの具体的な例としては、図19に示される出
力例の文(e)、文(f)が該当する。この例では、機
種分岐要因「言語」、「電源電圧」の両者共に切り替え
を含んでいるため、領域の共有は行わない。
【0078】次に機種分岐コード生成部139は、フラ
グROMテーブル生成の処理を行う(S113)。フラ
グROMテーブル生成処理は、フラグ名、ビット定義処
理とほぼ同様の処理内容にて行われるが、ステップS1
21において、機種分岐値表現情報量が2であり、か
つ、切り替えのない機種分岐要因について行われるとこ
ろが異なっている。
【0079】次に機種分岐コード生成部139は、RO
Mテーブル生成の処理を行う(S114)。ROMテー
ブル生成処理は、フラグ名、ビット定義処理とほぼ同様
の処理内容にて行われるが、ステップS121におい
て、機種分岐値表現情報量が2より大きく、かつ、切り
替えの無い機種分岐要因について行われるところが異な
っている。
【0080】機種分岐ラベルに基づいて生成されたRO
Mテーブルの具体的な例としては、図18に示された出
力例の文(b)〜文(g)の部分が該当する。
【0081】次に機種分岐コード生成部139は、RA
M領域設定コード生成の処理を行う(S115)。RA
M領域設定コード生成処理とは、setvalueから
始まる変換標識文のプログラムコードへの変換処理のこ
とである。変換されたプログラムコードの例としては、
図19に示される出力例の文(z)および文(L)があ
げられる。文(z)はRAM領域への初期値の設定処
理、文(L)はRAM領域の更新の処理であるが、内容
的には同一である。なお、図17および図18の出力例
のように、setvalue文で指定されている機種分
岐要因に対応する機種分岐値がRAM領域に格納されて
いない場合には、当該変換標識文は無視される。
【0082】次に、機種分岐コード生成部139は機種
分岐コード変換処理を行う(S116)。図13は、機
種分岐コード変換処理の処理内容を示すフローチャート
である。プログラム部品の変換過程において機種分岐コ
ード生成部139は、プログラム部品を所定のブロック
ごとに抽出して読み出す(S1302)。全てのブロッ
クについて処理を終えていれば図11のフローチャート
に戻る(S1301:Yes)。機種分岐コード生成部
139は、まず、抽出されたブロックが機種分岐に直接
関係のないプログラムコードであるか否かを判別する
(S1303)。ここでブロックとは、例えば変換標識
文がif文である場合には、変換標識文と、それに続け
て記述された、処理を表すプログラムコードとで一つの
ブロックとして扱われる。else文についてもif文
と同様の扱いを行うが、endif文については、</
if>という一文で一つのブロックとして扱う。
【0083】機種分岐に直接関係のないプログラムコー
ドであれば、そのままプログラムコードを出力する(S
1304)。この処理を繰り返すことにより、機種分岐
に直接関係のないプログラムコードが順次、変換標識文
が出現するまで出力されることとなる。機種分岐に直接
関係のないプログラムコードではないと判別されれば、
機種分岐コード生成部139は、次にif文であるか否
かを判別する(S1305)。if文であればif文コ
ード出力の処理を行う(S1306)。
【0084】図14は、if文コード出力の処理の詳細
な内容を示すフローチャートである。ここでif文と
は、前述のとおりifまたはelseifから始まり、
機種分岐の条件を表す変換標識文であり、labelと
valueの指定を含んでいる。従って、まず、このl
abelに記述されている機種分岐ラベルと、valu
eに記述されている機種分岐値とが、指定された機種分
岐情報の中に存在するか否かを確認する(S140
1)。
【0085】例えば、図16(a)の機種分岐情報が指
定されている場合に、抽出されたブロックに含まれる変
換標識文に記述されている分岐条件が、「label
=”English” value=”Chines
e”」であるとすると、機種分岐値”Chinese”
は、指定された機種分岐情報の中に存在しないため、機
種分岐コードへの変換は不要であり、また、当該if文
に続いて記述されている「;中国語の処理」を表すプロ
グラムコードも不要となる。従って、機種分岐コード生
成部139は、不要なif文および「;中国語の処理」
の部分のプログラムコードを削除する(S1402)。
【0086】ステップS1401において、抽出された
変換標識文に記述されている機種分岐ラベルおよび機種
分岐値が、参照される機種分岐情報の中に存在していた
場合には、当該機種分岐ラベルに対応する機種分岐値表
現情報量と切り替え値リストとを参照する(S140
3)。ここで、当該機種分岐ラベルに対応する機種分岐
値表現情報量が1であり、かつ、当該機種分岐ラベルに
切り替えがない場合には、記述された機種分岐値は固定
値であり、当該if文に続いて記述された処理が常に実
行されることを意味する。従って、if文を機種分岐コ
ードへ変換する処理は不要となり、機種分岐コード生成
部139は機種分岐コードを生成せず、当該if文に続
いて記述されているプログラムコードをそのまま出力す
る(S1404)。
【0087】当該機種分岐ラベルが上記の条件に合致し
ない場合には、機種分岐コード生成部139は抽出され
たブロックに含まれるif文が、同一の機種分岐要因を
分岐条件とする一連のif文の中で、最初のif文であ
るか否かを判別する(S1405)。最初のif文であ
って、機種分岐値がROMまたはRAMに保持されてい
るデータである場合には、ROMまたはRAMに保持さ
れているデータをレジスタに読み込むためのコードが必
要となる。また、最初のif文では、フラグの値を参照
するコードが必要となる場合もある。
【0088】最初のif文であった場合の処理につい
て、以下、具体例を参照しながら説明する。
【0089】機種分岐ラベルに対応する機種分岐値表現
情報量が2であった場合(S1406:Yes)には、
機種分岐値は1ビットのフラグ領域に格納されている。
従ってフラグ領域の内容を参照して分岐を行うためのコ
ードを生成する(S1407)。ここで生成されるコー
ドの具体例としては、図17に示される出力例の文
(l)、文(m)が該当する。
【0090】機種分岐ラベルに対応する機種分岐値表現
情報量が2より大きく、当該機種分岐ラベルに切り替え
がない場合(S1408:Yes)には、機種分岐値は
ROM領域に保持される。従って、ROM領域に保持さ
れているデータをレジスタに読み込むためのROM参照
コードを生成し、変換標識文と変換する(S140
9)。ROM参照コードの例としては、図18に示され
る出力例の文(h)および文(i)が該当する。この例
では、同図の文(b)〜文(g)に定義されているRO
Mテーブルを参照し、機種番号に対応する「言語」と
「電源電圧」を表すコードをレジスタAに格納してい
る。
【0091】機種分岐ラベルの表現情報量が2より大き
く当該機種分岐ラベルに切り替えがある場合(S141
0:Yes)には、動的分岐に対処するため、機種分岐
値はRAM領域に保持される。従って、RAM領域に保
持されているデータをレジスタに読み込むためのRAM
参照コードを生成し、変換標識文と変換する(S141
1)。RAM参照コードの例としては、図19に示され
る出力例の文(B)が相当する。この例では、RAM領
域に保持されている、「言語」を表すコードをレジスタ
Aに格納している。
【0092】一方、ステップS1405において、最初
のif文ではないと判別された場合には、分岐を終了す
るためのコードを生成する(S1412)。分岐を終了
するためのコードの例としては、図17の出力例におい
ては文(n)および文(o)が、図18の出力例におい
ては文(l)および文(m)や、文(p)および文
(q)が、図19の出力例においては文(E)および文
(F)や、文(I)および文(J)がそれぞれ該当す
る。
【0093】次に、図15に示されるフローチャートに
進む。ここでは、まず、当該if文が同一の機種分岐要
因を分岐条件とする一連のif文の中で、最後のif文
であるか否かを判別する(S1413)。最後のif文
であれば、これまでの処理で、既に必要な変換処理を終
了しているのでそのまま処理を終了する。
【0094】最後にif文でなければ、分岐コードの出
力処理を行う。以下、具体例を参照しながら処理内容に
ついて説明する。
【0095】機種分岐ラベルに対応する機種分岐値表現
情報量が2より大きく、当該機種分岐ラベルに切り替え
がない場合(S1414:Yes)には、ステップS1
409で生成されたROM参照コードに続いて、実際に
分岐処理を行うROM参照分岐コードの生成を行う(S
1415)。ROM参照分岐コードの例としては、図1
8に示される出力例の文(j)および文(k)や、文
(n)および文(o)が該当する。
【0096】また、機種分岐ラベルに対応する機種分岐
値表現情報量が2より大きく、当該機種分岐ラベルに切
り替えがある場合(S1416:Yes)には、RAM
の内容を参照して切り替えを行うRAM参照分岐コード
の生成を行う(S1417)。RAM参照分岐コードの
例としては、図19に示される出力例の文(C)および
文(D)や、文(G)および文(H)が該当する。
【0097】ここで、図13のフロ−チャ−トに戻り、
抽出されたブロックに含まれる変換標識文がif文でな
かった場合の処理内容について説明する。抽出されたブ
ロックに含まれる変換標識文がif文でなかった場合、
機種分岐コード生成部139は、当該変換標識文がel
se文であるか否かを判別する(S137)。
【0098】else文であった場合にはelse文を
変換したプログラムコードを出力する(S1308)。
else文でなかった場合には、機種分岐コード生成部
139は当該変換標識文がendif文であるか否かを
判別し(S1309)、endif文であれば、end
if文を表すプログラムコードを出力する(S131
0)。endif文コードの例としては、図17に示さ
れる出力例の文(p)、図18に示される出力例の文
(r)、図19に示される出力例の文(K)が該当す
る。
【0099】以上の処理を全てのブロックについて行
い、変換処理を終了すると、機種分岐コード生成部13
9の処理が終了し、生成されたプログラムがプログラム
出力部15に出力されて、本実施の形態の複数機種対応
プログラム自動生成装置のプログラム生成処理が終了す
る。
【0100】以上のように、本実施の形態の複数機種対
応プログラム自動生成装置においては、機種分岐値の使
用中の切り替えの有無や、切り替えがある場合の機種分
岐値の初期値を機種分岐要因と同様に扱い、グルーピン
グ情報を機種分岐要因の集合として作成し、動的分岐が
行われる機種分岐要因について、その値をRAM領域に
保持させ、RAM領域を参照して分岐処理を行うプログ
ラムコードを生成することにより、動的分岐が行われる
場合にも対処可能な機種分岐コードの自動生成を可能と
している。
【0101】また、機種パタンが重複する機種分岐要因
を自動的に判別し、機種分岐値表現情報量に基づいて情
報を保持するエリアのサイズを決定するので、分岐処理
実行時に参照するために、ROM領域やRAM領域に保
持すべきデータのサイズを必要最小限に節約することが
できる。
【0102】
【発明の効果】請求項1の発明によれば、動的分岐が行
われる機種分岐要因を自動的に識別し、その値をRAM
領域に保持するように領域定義を行うとともに、定義さ
れた領域に保持されたデータを参照して機種分岐を行う
ためのコードを自動的に生成するため、機器の使用中に
分岐の条件が変更されるような場合にも対処の可能な機
種分岐コードを自動的に生成できるという効果がある。
【0103】請求項2の発明によれば、請求項1の発明
による効果に加えて、機種パタンから機種分岐値表現情
報量を求め、機種分岐値表現情報量に適した領域を確保
して機種分岐値を格納するようにプログラムを生成する
ことにより、分岐処理実行時に参照すべき、データの格
納領域を節約することができるという効果がある。
【0104】請求項3の発明によれば、請求項1の発明
による効果に加えて、機種パタンを比較し、機種パタン
が同一である機種分岐要因について、機種分岐値を格納
する領域を共用するようにプログラムを生成することに
より、分岐処理実行時に参照すべきデータの格納領域を
節約することができるという効果がある。
【0105】請求項4の発明によれば、請求項2の発明
による効果に加えて、機種パタンを比較し、機種パタン
が同一である機種分岐要因について、機種分岐値を格納
する領域を共用するようにプログラムを生成することに
より、分岐処理実行時に参照すべきデータの格納領域
を、更に節約することができるという効果がある。
【0106】請求項5の発明によれば、請求項1乃至4
の何れかの発明による効果に加えて、プログラム部品
が、生成するプログラムにおいて使用されない変換標識
文を含んでいる場合に、使用されない部分を削除するこ
とにより、プログラム部品の中に、より多くの分岐条件
についての処理を予め記述しておくことを可能とし、プ
ログラム部品の再利用性を高めることができるという効
果がある。
【図面の簡単な説明】
【図1】本発明の一実施の形態における複数機種対応プ
ログラム自動生成装置の構成を示すブロック図である。
【図2】本発明の一実施の形態において、部品データベ
ースに格納されるプログラム部品の一例の一部を示す図
である。
【図3】本発明の一実施の形態において、製品仕様格納
部に格納される機種分岐情報の一例を示す図である。
【図4】プログラム生成部の処理内容を示すフローチャ
ートである。
【図5】本発明の一実施の形態において、操作者からの
指示により製品仕様格納部から取り出された機種分岐情
報を示す図である。
【図6】本発明の一実施の形態において、切り替え値リ
スト生成部によって生成された切り替え値リストの内容
を示す図である。
【図7】本発明の一実施の形態において、機種分岐値初
期値リスト生成部によって生成された機種分岐値初期値
リストの内容を示す図である。
【図8】本発明の一実施の形態において、機種パタン生
成部によって生成された機種パタンの内容を示す図であ
る。
【図9】本発明の一実施の形態において、機種分岐値表
現情報量生成部によって、図8の機種パタンから生成さ
れた機種分岐値表現情報量を示す図である。
【図10】本発明の一実施の形態において、加工された
機種分岐情報を統合して示した図である。
【図11】機種分岐コード生成部の処理内容を示すフロ
ーチャートである。
【図12】機種分岐コード生成部が行うフラグ名、ビッ
ト定義処理の詳細な処理内容を示すフロ−チャ−トであ
る。
【図13】機種分岐コード生成部が行う機種分岐コード
変換処理の処理内容を示すフロ−チャ−トである。
【図14】機種分岐コード変換処理において行われる、
if文コード出力処理の詳細な処理内容を示すフロ−チ
ャ−トである。
【図15】if文コード出力処理の詳細な処理内容を示
すフロ−チャ−トである。
【図16】(a)機種分岐コード変換処理の処理内容を
説明するための機種分岐情報の第一の例を示す図であ
る。 (b)機種分岐コード変換処理の処理内容を説明するた
めの機種分岐情報の第二の例を示す図である。 (c)機種分岐コード変換処理の処理内容を説明するた
めの機種分岐情報の第三の例を示す図である。
【図17】図16(a)の機種分岐情報が選択された場
合に出力されるプログラムコードの例を示す図である。
【図18】図16(b)の機種分岐情報が選択された場
合に出力されるプログラムコードの例を示す図である。
【図19】図16(c)の機種分岐情報が選択された場
合に出力されるプログラムコードの例を示す図である。
【図20】従来の複数機種対応プログラム自動生成装置
の構成を示す図である。
【符号の説明】
11 部品データベース 12 製品仕様データベース 13 プログラム生成部 14 操作部 15 プログラム出力部 16 部品管理部 17 製品仕様管理部 131 プログラム部品取得部 132 製品仕様取得部 133 切り替え値リスト生成部 134 機種分岐値切り替え判別部 135 機種分岐値初期値リスト生成部 136 機種パタン生成部 137 機種分岐値表現情報量生成部 138 機種パタン比較部 139 機種分岐コード生成部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 眞田 紀男 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 關口 卓也 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 縄田 毅史 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 菱田 利浩 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 石崎 恵美子 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 安斎 昇 大阪府門真市大字門真1006番地 松下電器 産業株式会社内

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 機種に応じた分岐処理を行うことにより
    複数機種での使用に対応するプログラムを、再利用可能
    なプログラム部品から生成する複数機種対応プログラム
    自動生成装置であって、 分岐の要因とその要因の値とに応じて分岐する分岐処理
    と、前記要因の値を所定の領域へ格納する格納処理と、
    格納された前記要因の値の更新処理との何れかを定義す
    る標識文と、前記分岐の要因とその要因の値とが合致し
    た場合に行われるべき処理を定義する処理文とを含むプ
    ログラム部品を、一種または複数種類格納する部品格納
    手段と、 前記分岐の要因である機種分岐要因と、機種分岐要因が
    取り得る値である機種分岐値とから成る機種分岐情報を
    機種ごとに格納する製品仕様格納手段と、 使用すべきプログラム部品と、生成するプログラムで対
    応すべき複数の機種とを指定する指定手段と、 前記指定手段により指定された機種の機種分岐情報に含
    まれる機種分岐要因について、取り得る機種分岐値が一
    種類であるか、複数種類であるかを機種ごとに示す切り
    替え値リストを生成する切り替え値リスト生成手段と、 前記切り替え値リストから、機種分岐値が複数種類であ
    る機種が存在するか否かを機種分岐要因ごとに判別する
    切り替え判別手段と、 前記切り替え判別手段において、機種分岐値が複数種類
    である機種が存在すると判別された機種分岐要因につい
    て、機種ごとの機種分岐値の初期値を表す初期値リスト
    を生成する初期値リスト生成手段と、 前記機種分岐値と、前記切り替え値リストと、前記初期
    値リストとを参照して、前記指定手段により指定された
    全てのプログラム部品に含まれる標識文を、分岐処理
    と、機種分岐値の初期値を所定の領域へ格納する格納処
    理と、格納された機種分岐値の更新処理との何れかを行
    うプログラムコードにそれぞれ変換するとともに、機種
    分岐値を格納する領域を定義するプログラムコードを生
    成する機種分岐コード生成手段とを有することを特徴と
    する複数機種対応プログラム自動生成装置。
  2. 【請求項2】 前記複数機種対応プログラム自動生成装
    置はさらに、 前記指定手段により指定された機種の機種分岐情報か
    ら、複数機種において同一の機種分岐値には同一の符号
    を割り当て、異なる機種分岐値には異なる符号を割り当
    てた機種パタンを機種分岐要因ごとに生成する機種パタ
    ン生成手段と、 前記機種パタンから、当該機種パタンに含まれる重複し
    ない符号の数を表す表現情報量を、機種分岐要因ごとに
    生成する表現情報量生成手段とを有し、 前記機種分岐コード生成手段は、 前記機種分岐値と、前記表現情報量とを参照して、表現
    情報量が1の場合には、当該機種分岐要因および機種分
    岐値を分岐条件として定義する標識文を削除し、それ以
    外の場合には、表現情報量に応じて、機種分岐値を格納
    する領域を定義するプログラムコードを生成するととも
    に、前記標識文を定義された領域に対応するプログラム
    コードに変換することを特徴とする請求項1記載の複数
    機種対応プログラム自動生成装置。
  3. 【請求項3】 前記複数機種対応プログラム自動生成装
    置はさらに、 前記指定手段により指定された機種の機種分岐情報か
    ら、複数機種において同一の機種分岐値には同一の符号
    を割り当て、異なる機種分岐値には異なる符号を割り当
    てた機種パタンを機種分岐要因ごとに生成する機種パタ
    ン生成手段と、 機種分岐要因ごとの前記機種パタンを比較し、機種パタ
    ンが一致する機種分岐要因の集合であるグルーピング情
    報を生成する機種パタン比較手段とを備え、 前記機種分岐コード生成手段は、 前記機種分岐値と、切り替え値リストと、前記グルーピ
    ング情報とを参照して、機種パタンが同一で、かつ、前
    記切り替え判別手段により機種分岐値が複数種類である
    機種が存在しないと判別された場合には同一の領域を共
    用するように、機種分岐値を格納する領域を定義するプ
    ログラムコードを生成するとともに、前記標識文を定義
    された領域に対応するプログラムコードに変換すること
    を特徴とする請求項1記載の複数機種対応プログラム自
    動生成装置。
  4. 【請求項4】 前記複数機種対応プログラム自動生成装
    置はさらに、 機種分岐要因ごとの前記機種パタンを比較し、機種パタ
    ンが一致する機種分岐要因の集合であるグルーピング情
    報を生成する機種パタン比較手段を備え、 前記機種分岐コード生成手段は、 前記機種分岐値と、切り替え値リストと、前記表現情報
    量と、前記グルーピング情報とを参照して、表現情報量
    が1の場合には、当該機種分岐要因および機種分岐値を
    分岐条件として定義する標識文を削除し、それ以外の場
    合で、機種パタンが同一で、かつ、前記切り替え判別手
    段により機種分岐値が複数種類である機種が存在しない
    と判別された場合には同一の領域を共用するようにしな
    がら、表現情報量に応じて機種分岐値を格納する領域を
    定義するプログラムコードを生成するとともに、前記標
    識文を定義された領域に対応するプログラムコードに変
    換することを特徴とする請求項2記載の複数機種対応プ
    ログラム自動生成装置。
  5. 【請求項5】 前記プログラム部品は、 前記指定手段により指定された機種の機種分岐情報に含
    まれる機種分岐要因および機種分岐値以外の、前記分岐
    の要因とその要因の値とについて、前記分岐処理と、前
    記格納処理と、前記更新処理との何れかを定義する標識
    文と、当該標識文に定義された前記分岐の要因とその要
    因の値とが合致した場合に行われるべき処理を定義する
    処理文とを含み、 前記複数機種対応プログラム自動生成装置はさらに、 前記機種分岐コード生成手段によりプログラムコードへ
    の変換が行われなかった標識文について、当該標識文
    と、当該標識文に定義された前記分岐の要因とその要因
    の値とが合致した場合に行われるべき処理を定義する処
    理文とを削除する削除手段を有することを特徴とする請
    求項1乃至4の何れかに記載の複数機種対応プログラム
    自動生成装置。
JP1220396A 1996-01-26 1996-01-26 複数機種対応プログラム自動生成装置 Pending JPH09204302A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1220396A JPH09204302A (ja) 1996-01-26 1996-01-26 複数機種対応プログラム自動生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1220396A JPH09204302A (ja) 1996-01-26 1996-01-26 複数機種対応プログラム自動生成装置

Publications (1)

Publication Number Publication Date
JPH09204302A true JPH09204302A (ja) 1997-08-05

Family

ID=11798850

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1220396A Pending JPH09204302A (ja) 1996-01-26 1996-01-26 複数機種対応プログラム自動生成装置

Country Status (1)

Country Link
JP (1) JPH09204302A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7971201B2 (en) 2006-03-20 2011-06-28 Fujitsu Limited Multiple operating device version software generating system and multiple operating device version software generation support program and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7971201B2 (en) 2006-03-20 2011-06-28 Fujitsu Limited Multiple operating device version software generating system and multiple operating device version software generation support program and method

Similar Documents

Publication Publication Date Title
EP0388148B1 (en) A multi-language conversion system
US5533176A (en) Bar code identification system format editor
JP2729025B2 (ja) データ処理システムにおけるフォント導出の方法
EP2273361A1 (en) Method and system for updating versions of content stored in a storage device
US20050005239A1 (en) System and method for automatic insertion of cross references in a document
CN111160045B (zh) 一种游戏资源文件翻译方法、装置及设备
JP2001125794A (ja) メッセージカタログ作成方法
US4308582A (en) Precursory set-up for a word processing system
US6928438B2 (en) Culturally correct ordering of keyed records
EP1739512A1 (en) Programmable logic controller peripheral device and program creation method thereof
CN106648822B (zh) 界面字符串筛选方法及系统
JPH0683827A (ja) 文書プレゼンテーション制御方法及び装置
JPH09204302A (ja) 複数機種対応プログラム自動生成装置
CN112686000A (zh) 电子书文档的格式转换方法、电子设备及存储介质
WO1993025974A1 (en) An automated method for checking patent applications
JP3666066B2 (ja) 多言語文書登録検索装置
CN112328739B (zh) 字符查询方法、装置、计算机设备及计算机可读存储介质
KR102124803B1 (ko) 델타 파일을 생성하는 장치 및 방법과, 그 델타 파일을 이용하여 펌웨어를 업그레이드하는 수신 단말 및 그 업그레이드 방법
JPH0830629A (ja) 文書処理装置
CN111124407A (zh) 人机命令接口的实现方法及装置
JP3868303B2 (ja) 名称変換プログラム及び装置
US20200311089A1 (en) Information processing apparatus, and non-transitory computer readable medium storing an information processing program
JP3303304B2 (ja) 計算機システム構成変更方式
JPH0343832A (ja) ラベル検索方式
CN115981689A (zh) 基于组件版本号字段解析策略实现编排升级的方法