JPH07104977A - プログラム作成装置 - Google Patents

プログラム作成装置

Info

Publication number
JPH07104977A
JPH07104977A JP6073621A JP7362194A JPH07104977A JP H07104977 A JPH07104977 A JP H07104977A JP 6073621 A JP6073621 A JP 6073621A JP 7362194 A JP7362194 A JP 7362194A JP H07104977 A JPH07104977 A JP H07104977A
Authority
JP
Japan
Prior art keywords
program
module
data
standard
related information
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.)
Granted
Application number
JP6073621A
Other languages
English (en)
Other versions
JP3046710B2 (ja
Inventor
崎偉 ▲葛▼
Sakitake Katsura
Hirotoshi Tonou
宏敏 斗納
Kenji Hosokawa
健司 細川
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.)
Denso Ten Ltd
Original Assignee
Denso Ten 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 Denso Ten Ltd filed Critical Denso Ten Ltd
Priority to JP6073621A priority Critical patent/JP3046710B2/ja
Publication of JPH07104977A publication Critical patent/JPH07104977A/ja
Application granted granted Critical
Publication of JP3046710B2 publication Critical patent/JP3046710B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 プログラム作成を効率的に行い、かつデバッ
グ作業を容易にする。 【構成】 作成装置1は、仕様書2から、モジュール名
11、定数値12、マップ値13および機種データ14
などの仕様書抽出データ10を抽出する。予め登録して
あるライブラリ4a,4b,4cのうち、前記モジュー
ル名11に対応して、所定の機能を実現するためのプロ
グラムのまとまりである標準モジュール20およびその
標準モジュール20に関する配置関連情報を抽出すると
ともに、機種データ14に対応して掛算や除算等の共通
部品50を抽出する。また、標準モジュール20中のマ
ップフォーマット22および定数書式23に従って、そ
れぞれマップテーブル40および定数データ61を作成
する。このようにして作成された各部品を、前記配置関
連情報に従って配置してプログラムソース7を完成す
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラムを予め定め
る機能単位にまとめた複数のモジュールに分割し、作成
した各モジュールを組合わせて所望とするプログラムを
作成するプログラム作成装置に関する。
【0002】
【従来の技術】従来から、特に大規模なプログラムで
は、その全体を一度に作成するよりも、プログラム全体
を、所定の機能のまとまりである複数のブロックに分割
し、作成した各ブロック毎のモジュールプログラムを組
合わせて、所望とするプログラムに完成させることが多
い。特にアセンブル・プログラムは、コンピュータの機
械語に対応し、一般にかなり長くなり、このような手法
が好適に用いられる。またプログラム作成も、作成期間
の短縮化やプログラマの専門分野の細分化などによっ
て、複数人で担当する必要がある。このため、前述のよ
うに適度な長さのモジュールに分割してプログラムを作
成し、各モジュール毎に動作の確認を行った後に組合わ
せるようにすれば、プログラムの開発効率が良くなり、
動作の信頼性も向上する。
【0003】典型的な従来技術では、プログラマは、以
前に作成したプログラムから、流用すべきモジュールを
抽出し、その抽出したモジュールのデータやロジック
を、所望とする作成すべきプログラムに要求される仕様
に沿って変更および追加し、作成プログラム中に配置す
ることによって新たなプログラムを作成している。
【0004】
【発明が解決しようとする課題】従来からのモジュール
化では、サブルーチンなどの、配置場所に依存しない比
較的大きな演算処理ブロックへの区分を行うだけであ
る。また、各モジュールの配置位置は、プログラマが管
理するだけである。したがって、各モジュールは任意の
箇所に配置することができ、また追加部分を間違った箇
所に挿入する可能性があり、バグが発生し易い。
【0005】また、作成された各モジュールは、ソース
プログラムの状態で記述されており、アセンブラやリン
カなどと呼ばれるソフトウエアによって、機械語のアセ
ンブル・プログラムに変換される際に組合わせられる。
このようなソフトウエアへの指示は、アセンブル・プロ
グラムの文中に予めアセンブラなどの文法に従って記述
しておく必要がある。また、アセンブル・プログラム中
で定数やマップの形でデータを使用するときには、アセ
ンブラなどの文法に従ってデータに対応するパラメータ
を与える必要がある。
【0006】特定の分野に使用されるアセンブル・プロ
グラム、たとえば自動車のエンジン制御のためのプログ
ラムは、車種やグレード毎にデータなどが少しずつ異な
るけれども、プログラムの構成自体は殆ど共通である。
このため、異なるモジュールについては、複数のモジュ
ールを予め用意しておき、全体のアセンブル・プログラ
ムを作成する際に必要なモジュールを選択する方法で行
うことが効率的である。しかしながら、そのようなモジ
ュールの選択は、アセンブル・プログラムのメインルー
チンを記述する形で行わなければならないので、新たな
プログラムの作成の際や、修正には手間がかかり、さら
に自動化することは困難である。
【0007】さらにまた、アセンブル・プログラム中で
は、データの変更を一定の文法に従って表現するけれど
も、実際のデータとして書込みが行われるのはオブジェ
クトコードに変換されるときである。このため、モジュ
ールを組合わせたアセンブル・プログラムを見ても、所
望とするデータが確実に書込まれているか否かを判断す
ることができず、デバッグ作業に時間がかかるという問
題もある。
【0008】本発明の目的は、効率的にプログラムを作
成することができるとともに、デバッグ作業も容易なプ
ログラム作成装置を提供することである。
【0009】
【課題を解決するための手段】本発明は、要求されるプ
ログラム仕様に従ってプログラムを作成する装置であっ
て、予め定める機能単位にまとめられたプログラム部分
が標準モジュールとして予め複数登録されるモジュール
登録手段と、各プログラム間で共通に使用可能な共通部
品が予め登録される共通部品登録手段と、前記標準モジ
ュールおよび共通部品を流用するにあたって、該標準モ
ジュールの配置位置や関連するモジュールおよび共通部
品を規定する配置関連情報が予め登録される配置関連情
報登録手段と、前記プログラム仕様に対応して、モジュ
ール登録手段から流用すべき標準モジュールを抽出する
モジュール作成手段と、前記プログラム仕様から、使用
すべき共通部品を前記共通部品登録手段から抽出する共
通部品取出手段と、前記配置関連情報登録手段から、流
用すべき標準モジュールの前記配置関連情報を抽出し、
その配置関連情報に基づいた順序で、前記モジュール作
成手段において抽出された複数のモジュール、および共
通部品取出手段で抽出された共通部品を、複数の各モジ
ュール間で使用されるメモリ領域とともに、作成プログ
ラム中に配置する配置手段とを含むことを特徴とするプ
ログラム作成装置である。
【0010】また本発明は、前記標準モジュールに付随
して、該標準モジュール内で使用されるデータの書式が
登録されており、前記モジュール作成手段は、流用すべ
き標準モジュール内のデータを、前記書式に従って、前
記プログラム仕様に対応したデータに書換えることを特
徴とする。
【0011】さらにまた本発明の前記データは、演算定
数およびマップテーブルにおけるデータポイントの値で
あることを特徴とする請求項2記載のプログラム作成装
置。
【0012】また本発明は、前記プログラム仕様から、
作成プログラム中に流用すべき標準モジュールを抽出し
て、作成プログラム中の対応するモジュールと照合し、
前記プログラム仕様に対応した標準モジュールが含まれ
ているか否か、および含まれていて変更が為されている
か否かを検証して、その結果を表示する検証手段を備え
ることを特徴とする。
【0013】
【作用】本発明に従えば、プログラムをモジュールと呼
ばれる複数の部分に分割してそれぞれ作成し、組合わせ
て所望とするプログラムへと完成するにあたって、モジ
ュール登録手段には、前記各部分の原型となる標準モジ
ュールが予め複数登録されている。前記標準モジュール
は、作成すべきプログラムが、たとえば自動車の電子制
御装置のためのものであるときには、各センサからの出
力の読込み、マップデータの読出し、制御量演算および
アクチュエータへの制御出力などのように、比較的細か
な、予め定める機能単位にまとめられて登録されてい
る。
【0014】これに対応して、前記標準モジュールの配
置位置に依存する配置関連情報が、配置関連情報登録手
段に登録されている。前記配置関連情報は、たとえば標
準モジュールが掛算を含むモジュールである場合、その
標準モジュールに近接して掛算のルーチンを配置すべき
であるなどの、各標準モジュールのプログラム中での関
連と、他の関連モジュールとの相対位置を規定する情報
である。
【0015】また、前記掛算の計算手順などの複数の各
標準モジュール間で共通に使用可能な共通部品が、共通
部品登録手段に予め登録されている。この共通部品に関
連するモジュールおよびそれとの相対的な配置位置を規
定する配置関連情報も、前記配置関連情報登録手段に登
録されている。
【0016】このようにして、作成プログラムの原型と
なる各部分およびそれに関連する情報が登録されてお
り、モジュール作成手段は、前記プログラム仕様から、
流用すべき標準モジュールをモジュール登録手段から抽
出する。各標準モジュールは、たとえば演算処理手順を
表すロジック部分と、演算定数や、マップテーブルにお
けるデータポイントの値などのデータ部分とを含んで構
成されている。
【0017】また好ましくは、それらのデータの書式も
併せて構成されている。モジュール作成手段は、上述の
ように流用すべき標準モジュールを抽出すると、その標
準モジュール内のデータを前記書式に従って、プログラ
ム仕様に対応したデータに書換えてゆく。こうして、前
記演算定数やマップ値などが所望とする書式で自動的に
書換えられてゆく。
【0018】また、前記プログラム仕様から、共通部品
登録手段に登録されている共通部品のうち、使用すべき
共通部品が、共通部品取出手段によって抽出される。こ
のようにして、使用すべき標準モジュールおよび共通部
品が取出されると、配置手段は、抽出されている標準モ
ジュールに対応した配置関連情報を配置関連情報登録手
段から抽出し、その配置関連情報に基づいた順序でモジ
ュールおよび共通部品を作成プログラム中に配置してゆ
く。このときまた配置手段は、複数の各モジュール間で
使用される、たとえば変数やフラグの定義などに使用さ
れるメモリ領域も配置して、所望とする作成プログラム
が完成する。
【0019】したがって、プログラムの構成自体には変
化がなく、プログラムの仕様に従ってデータのみを変更
するようなときには、既存の標準モジュールや共通部品
を適所に配置し、かつデータの更新も行って自動的に所
望とする作成プログラムを完成することができる。した
がって、新たに標準モジュールや共通部品を作成して登
録しておく必要はなく、また各モジュールの配置ミスな
どによるバグの発生の恐れも少なく、効率的にプログラ
ムを作成することができるとともに、デバッグ作業を軽
減することができる。
【0020】好ましくは、プログラム仕様から、作成プ
ログラム中に流用すべき標準モジュールを抽出して、作
成プログラム中の対応するモジュールと照合する検証手
段を設ける。この検証手段は、作成プログラム中に、前
記プログラム仕様に対応した標準モジュールが含まれて
いるか否か、および含まれていて変更が為されているか
否かなどを検証してその結果を表示する。したがって、
プログラム仕様に対応したデータなどが作成プログラム
に反映されているかなどを容易に確認することができ
る。
【0021】
【実施例】図1は、本発明の一実施例のプログラムの作
成手順の概略を示す図である。エンジニアリングワーク
ステーションなどで実現される作成装置1は、仕様書2
に基づいて、所望とする作成プログラム3を完成させ
る。前記仕様書2には、作成プログラム3が、たとえば
自動車のエンジン制御用であるときには、そのエンジン
の特性に対応した制御定数や制御マップなどの要求され
るスペックを表すデータが、車種名やエンジンの形式名
等の機種名などとともに電子化データで記載されてい
る。
【0022】前記作成装置1は、仕様書2の内容を読込
み、仕様書データ抽出部5において仕様書2中に記載さ
れた抽出データ10を得て、プログラム自動作成部6に
与える。プログラム自動作成部6は、モジュール名や機
種情報などの前記抽出データ10に対応して、予めライ
ブラリ4に登録されている複数のプログラムソースから
流用できそうなプログラムソースを選択し、そのプログ
ラムソースの内容を前記抽出データ10に従って書換え
てゆく。こうして得られた各プログラムソースが組合わ
せられて、プログラムソース7が作成される。
【0023】前記プログラムソース7は、修正部8にお
いて、プログラマが陰極線管などの表示手段18を参照
しながらキーボード17から入力操作を行うことによっ
て、追加や変更が加えられる。こうして作成された作成
プログラム3は、仕様書データ照合部9において、前記
抽出データ10と照合され、仕様書2の内容との一致点
や相違点が前記表示手段18によって表示され、必要が
あれば再び前記修正部8において修正されて完成され
る。
【0024】図2は、上述の作成手順を詳細に示すブロ
ック図である。なおこの図2では、アセンブル・プログ
ラムを作成するものとし、また前述の図1におけるプロ
グラムソース7の作成までを示す。作成装置1では、作
成プログラム3が前述のように自動車のエンジン制御用
であるときには、たとえば吸気圧読込み、回転数読込
み、燃料噴射出力および点火出力などの比較的細かな機
能毎のまとまりであるプログラム部分をモジュールとし
て登録しておき、仕様書2で要求される仕様に従って、
それらのモジュールを選択的に使用して書換えなどを行
って組合わせることによって、所望とする作成プログラ
ム3に完成させる。したがって、仕様書2から仕様書デ
ータ抽出部5で抽出された抽出データ10には、使用す
べき各モジュール毎に、モジュール名11と、データで
ある定数値12およびマップ値13と、機種データ14
とが含まれている。
【0025】前記モジュール名11は、前述のような吸
気圧読込みおよび回転数読込みなどのそのモジュールの
機能などに対応して付されている名称である。定数値1
2やマップ値13は、前記各モジュールでの制御定数で
あり、それらを表すコメント文で区画されて記載されて
いるだけではなく、プログラムの文章中にも記載される
ことがある。前記定数値12は、たとえばセンサ出力の
LSBを表す値などであり、この場合には、前記センサ
出力が該定数値で除算されて、実際に制御量演算に用い
る値に変換される。
【0026】前記マップ値13は、多次元のデータであ
り、図3(1)で示すようなマップから、等間隔または
不等間隔にデータポイントP1,P2,…を取出して、
その座標値を図3(2)で示すような表に表したもので
あり、前記作成プログラム3を用いる制御装置は、たと
えば前記データポイントP2,P3間で、座標値Xaに
対応する座標値Yaを前記データポイントP2,P3を
用いて補間演算を行って求める。
【0027】前記機種データ14は、たとえば作成プロ
グラム3が上述のようなエンジン制御用であるときに
は、車種やエンジン型式などの該作成プログラム3を使
用すべき装置の名称や型式を表し、これによって、たと
えば変速機が自動であるのか手動であるのかなどの、同
じモジュール名であっても、後述する使用すべき共通部
品50が異なることもあり、そのような選択のために用
いられる。
【0028】一方、前記ライブラリ4は、3つのライブ
ラリ4a,4b,4cから構成されている。モジュール
ライブラリ4aには、以前に作成されたプログラムから
抽出された複数のモジュールが、作成プログラム3に用
いる原型モジュールとなる標準モジュール20として登
録されている。
【0029】また、共通部品ライブラリ4bには、前記
仕様書2には記述されていないけれども、前記モジュー
ルライブラリ4aに登録されている各標準モジュール2
0から共通に使用される可能性のある、たとえば掛算や
除算のサブルーチンなどの共通部品50が登録されてい
る。
【0030】配置関連情報ライブラリ4cには、各モジ
ュールの関連、たとえば仕様書2に対応した或るモジュ
ールを選択すると、必ず必要となるモジュール、たとえ
ば選択されたモジュール中に掛算処理が生まれていると
きには、掛算のモジュールを配置する必要があること、
およびそれらの相互の配置位置などの、或るモジュール
に対して、関連するモジュールと、その或るモジュール
のプログラム上での配置位置となどに関連した情報が登
録されている。
【0031】これら各ライブラリ4a〜4cを用いてプ
ログラムを作成するにあたって、作成装置1は、仕様書
抽出データ10のうち、先ずモジュール名11に基づい
てモジュールライブラリ4aから標準モジュール20を
読出すとともに、その読出した標準モジュール20に対
応する配置関連情報を配置関連情報ライブラリ4cから
読出す。読出された標準モジュール20は、前記モジュ
ール名11に対応した、たとえば吸気圧読込みや、回転
数読込みの動作を実現するためのプログラム部分であ
り、大略的に、RAM21と、マップ・フォーマット2
2と、定数書式23と、ロジック24とを含んで構成さ
れている。
【0032】RAM21には、後述するようにその標準
モジュール20が必要とする書換え可能メモリを確保す
るためのアセンブル定義式が記述されている。マップ・
フォーマット22には、作成すべきプログラム中で使用
されるマップデータの書込みのために必要なフォーマッ
トが記述されている。このマップ・フォーマットの例を
図3(3)で示し、この例中において下線部分が前記仕
様書2のマップ値13に書換えられることになる。定数
書式23には、アセンブル・プログラム中に定数として
書込むべきデータが記述されている。ロジック24に
は、その標準モジュール20における演算処理手順がソ
ースコードで記述されている。このような標準モジュー
ル20は、モジュール名11に対応して順次抽出されて
ゆき、仕様書抽出データ10に基づいて以下のように書
換えが行われてゆく。
【0033】先ず、図3(2)で示されるような仕様書
抽出データ10内のマップ値13が図3(3)で示す標
準モジュール20内のマップ・フォーマット22に従っ
て記述されてゆき、図3(4)で示すようなマップテー
ブル40のためのマップデータが作成される。
【0034】この場合、図3(1)において参照符P
1,P2,…で示すデータポイントの数が、図3(3)
で示す標準モジュール20のマップ・フォーマット22
では2つであるのに対して、図3(2)で示す仕様書2
のマップ値13では3つであり、このようにデータポイ
ントの数が相互に異なるときには、仕様書2のマップ値
13におけるデータポイント数だけマップ・フォーマッ
トが複製されて、図3(4)で示すように仕様書2のマ
ップ値13に対応した数だけデータポイントが設定され
る。
【0035】またこのとき、図3(3)で示すような小
数点データと、図3(2)で示すような整数データとの
ようにデータの型式が不一致であるときには、前記図1
の仕様書データ照合部9から表示手段18に警告表示が
行われる。
【0036】同様に、仕様書抽出データ10の定数値1
2は、標準モジュール20の定数書式23に従って書換
えられる。すなわち、前記定数値12が、たとえばAA
Aという変数を20に設定する、 AAA = 20 と記載されているとき、定数書式23が、 AAA EQU 10.5 * 256 / 4 であるときには、下線部分に定数値12の「20」が書
込まれるので、 AAA EQU 20 * 256 / 4 が作成された定数データ61となる。なお、この場合も
データの型式が相互に異なるときには、上述と同様に警
告が発せられる。
【0037】こうして作成された定数データ61は、標
準モジュール20のロジック24を移植して作成された
ロジック62とともに、作成モジュール60としてモジ
ュール配置部74で以下のように配置が行われる。
【0038】仕様書抽出データ10のモジュール名11
に基づいて配置関連情報ライブラリ4cから読出される
配置関連情報63は、図4で示すように記述されてい
る。この配置関連情報63は、関連情報64と、配置情
報65とを含んで構成されている。
【0039】この図4では、関連情報64aは、Xとい
う名称の標準モジュールを使用すると、Cという名称の
標準モジュールも使用する必要があり、同様に関連情報
64bは、標準モジュールCを使用すると標準モジュー
ルXを使用する必要があることを表す。また配置情報6
5からは、使用される標準モジュールは、BEGIN,
END,X,A,D,BおよびEであることが理解され
る。したがって、標準モジュールXが使用されるので、
前記関連情報64aから、標準モジュールCも使用され
ることとなる。
【0040】また配置情報65aからは、├という記号
は、その記号├が付された標準モジュールBEGIN
が、プログラム本体の先頭に配置されるべきことを表
し、配置情報65bからは、記号┤は、標準モジュール
ENDが前記プログラム本体の最後に配置されるべきこ
とを表す。また、配置情報65cからは、記号<は、標
準モジュールXが標準モジュールAの前に配置されるべ
きことを表し、配置情報65dからは、記号│<は、標
準モジュールBが標準モジュールEの直前に配置される
べきことを表す。なお、標準モジュールCに対する配置
情報は何も記述されていないので、この標準モジュール
Cは上述の結果から、プログラム本体の最初と最後とを
除いて、どこに配置されてもよい。
【0041】図5は、上述のようなモジュール配置関連
情報63に従う前記モジュール配置部74によるモジュ
ール配置手順の考え方を説明するためのブロック図であ
る。先ず、仕様書抽出データ10のモジュール名11に
対応して、配置関連情報ライブラリ4cのライブラリ6
6から関連情報が読出され、すなわち前記図4における
関連情報64bに対応したモジュールXも前記モジュー
ル名11に加えられる。次に、こうして求められた配置
要求のある全てのモジュール名に対応して、モジュール
ライブラリ4aから標準モジュール20が読出される。
続いて、これらの各標準モジュール20の配置情報が、
配置関連情報ライブラリ4cのライブラリ67から読出
され、それに従って配列されてプログラム本体84が作
成されて、図2で示すようにプログラムソース7内に配
置される。
【0042】図6は、共通部品ライブラリ4bに登録さ
れる共通部品50の種類の一例を示す図である。この共
通部品ライブラリ4bに登録されている共通部品50
は、仕様書2には表れてこないけれども、各標準モジュ
ールから共通に使用される可能性のある共通定数や、汎
用サブルーチン等から成る。この共通部品50は、以前
に作成されたプログラムから抜出されて、機種データと
ともに前記共通部品ライブラリ4bに登録されている。
したがって、仕様書抽出データ10の機種データ14に
対応して、必要な共通部品50が共通部品ライブラリ4
bから読出される。
【0043】前記共通部品50は、具体的には、この図
6で示すように、前記共通定数の定義文、マクロ定義
文、レジスタ定義文、汎用サブルーチンおよび初期化ル
ーチンなどである。
【0044】共通定数の定義文とは、プログラム中で使
用するデータを定義するためのものであり、直接的にデ
ータを演算処理のための値に定義するのが困難なときに
使用され、たとえば冷却水温度は、プログラム中では変
数THWで定義され、その変数THWの実際の値は、後
述するプログラムソース7内のRAM81内に記述され
ることになる。
【0045】また、マクロ定義文は、プログラマが複数
の命令を組合わせて任意に作成した大きな命令を表し、
たとえば「冷却水温度の読込み」とマクロ定義されてい
る場合、先ず複数の温度センサの出力が与えられるアナ
ログ/デジタル変換器への入力を冷却水温度センサの出
力に切換え、次に入力されたセンサ出力のアナログ/デ
ジタル変換を行い、続いてその変換結果をレジスタに読
込むというものである。
【0046】さらにまた、レジスタ定義文は、マイクロ
コンピュータのRAM中でレジスタとなるべきアドレス
を定義するためのものであり、またそのレジスタの論理
に対するポートの論理の定義などを行うことができる。
汎用サブルーチンは、前述のように4則演算などであ
り、初期化ルーチンは、フラグやカウンタなどの初期化
を行うためのものである。
【0047】このような共通部品50は、共通部品ライ
ブラリ4bに登録されている共通部品の、図7で示すよ
うなそのリストに、前記仕様書抽出データ10内の機種
データ14およびキーボード17からの入力が対照され
て抽出される。この図7で示すリスト中で、部品種類N
o.は、前記図6において,,…を付して示す定義
文やルーチンの識別番号であり、機種名は、前記機種デ
ータ14に対応しており、共通部品ファイル名は、該共
通部品ライブラリ4b中に登録されている前記定義文や
ルーチンの名称である。こうして抽出された共通部品5
0は、共通部品配置部73によってプログラムソース7
内に、参照符83で示すように配置される。前記プログ
ラムソース7内にはまた、マップテーブル40が、マッ
プ配置部72によって参照符82で示すように配置され
る。
【0048】モジュールライブラリ4aから抽出された
標準モジュール20には、メモリ領域であるRAM21
が定義されている。これは、本発明で用いるアセンブラ
言語では、プログラム中で使用する変数を抜出して一括
して同じ場所に定義する必要があるためである。RAM
21は、フラグ領域と、ダイレクト領域と、エクステン
ド領域と、スタンバイ領域となどの各領域が必要とする
量だけ割付けられて構成されている。
【0049】前記フラグ領域は、フラグとして使用でき
るRAMの位置をビット単位で定義することができる領
域である。前記ダイレクト領域は、たとえば「003
3」などのアドレスを「33」という具合に、1バイト
の簡略化したデータでアドレス指定可能な、いわゆるシ
ョートアドレッシング領域である。これに対してエクス
テンド領域は、2バイトのデータでアドレス指定を行
う、いわゆるフルアドレッシング領域である。さらにス
タンバイ領域は、プログラム停止時もデータが保存され
るべき不揮発性の領域である。
【0050】図8は、前記RAM21の内容の一例を示
す図である。アセンブル・プログラム中では、変数は変
数名で記述されており、後述するようにソフトウェアを
用いてプログラム展開すると前記変数名はアドレスとそ
れをコールする命令とに変換され、前記変数名とアドレ
スとを対応付けるのがこのRAM21である。
【0051】前記RAM21において、参照符91で示
す部分はフラグ領域であることを表し、参照符92で示
す部分は、「A」という名称のフラグがこのフラグ領域
の1ビット目に定義されていることを表す。また参照符
93で示される部分はダイレクト領域であることを表
し、参照符94,95で示す部分は、それぞれ「B」お
よび「C」という名称の変数に、それぞれ2バイトと、
1バイトとの領域が割当てられていることを表す。
【0052】このようなRAM21を有する各標準モジ
ュール20がプログラム作成のために前述のように順次
読出されてゆくと、前記図2において参照符30で示す
ように、フラグ領域やダイレクト領域などがそれぞれ重
複しないように集約されたRAMが形成される。
【0053】すなわち、たとえば図9(1)で示すよう
な各種別毎のそれぞれビット位置またはデータ長を有す
るRAM96と、図9(2)で示すような各種別毎のビ
ット位置またはデータ長を有するRAM97とが組合わ
せられると、図9(3)のRAM98で示すようにな
る。したがって、たとえばフラグ領域ではRAM96の
フラグAと、RAM97のフラグKとがそれぞれRAM
98において割付けられており、またRAM96では2
バイトで割当てられているダイレクト領域Bと、RAM
97では1バイトで割当てられているダイレクト領域B
とは統合されて、RAM98では2バイトのダイレクト
領域Bとなっている。
【0054】このようなRAM30の割付けがRAM配
置部71で行われて、プログラムソース7内に参照符8
1で示すように配置される。こうして、プログラムソー
ス7が完成する。
【0055】このようにして作成されたソースプログラ
ム7は、前述の図1で示されるように修正部8において
追加や変更が加えられ、作成プログラム3が完成する。
この作成プログラム3は、たとえばその70%程度がプ
ログラムソース7を流用し、修正手段8において残余の
30%程度が新規に追加や変更されて作成されている。
この作成プログラム3は、図1および図2を参照して、
以下のような手順で仕様書データ照合部9において照合
が行われる。
【0056】仕様書データ照合部9は、先ず仕様書抽出
データ10を読込み、モジュール名11と、機種データ
14とに基づいて、ライブラリ4から前記標準モジュー
ル20および共通部品50を読出す。また、作成プログ
ラム3のプログラム本体84から、コメント文で記述さ
れているモジュール名を読出す。なお、各モジュールは
その前後に区切りを示すキーワードが挿入されており、
このキーワードに従って各モジュールが抜出され、モジ
ュール名が抽出される。その抽出されたモジュール名
と、仕様書抽出データ10のモジュール名11とが比較
され、一致していないときには、表示手段18によって
変更などが加えられていることを表示する。
【0057】次に、各モジュール単位での定数データ6
1やマップテーブル82の比較が行われる。このアセン
ブル・プログラムでは、プログラム中にはEQUで示さ
れる定義文によって定数を定義する疑似命令が挿入され
ており、前記比較は、こうして定義された定数がまとめ
て記述されている部分同士で行われ、変更が為されてい
るときには、上述のようにそのことを表す表示が行われ
る。プログラマは、このような表示を参照して、デバッ
グ作業を行う。
【0058】このように本発明に従う作成装置1では、
上述の実施例のようなエンジン制御用の他に、自動変速
機の制御やブレーキの制御などの他の制御用にもモジュ
ールの共用化を可能とするために、所定の機能毎に細分
化した標準モジュール20を自動的に組合わせるととも
に、作成すべきプログラムの仕様に従って自動的にデー
タをプログラム中に書込むことによってプログラムソー
ス7を作成するので、プログラムソース7を容易に作成
することができ、開発効率を向上することができる。
【0059】また、各標準モジュール20の前記プログ
ラムソース7内での配置位置および各標準モジュール2
0に関連する共通部品50などの情報を配置関連情報ラ
イブラリ4c内に登録しておき、その情報を用いてモジ
ュール配置を行うので、各標準モジュール20はそれぞ
れの配置情報および関連情報の制約の範囲内でしか配置
されないので、モジュールの配置をもれなく、正確に行
うことができ、バグの発生を抑えて、プログラムの信頼
性を向上することができる。
【0060】さらにまた、標準モジュール20のデータ
の記述形式をライブラリ化し、仕様書抽出データ10を
作成プログラム3に書込むことによって、人手による入
力ミスを防いで、仕様書2のデータを確実にプログラム
に反映させることができ、プログラムの信頼性をプログ
ラム作成の段階で確保できる。
【0061】また、プログラム間で共通使用可能な共通
部品50を、検索情報である機種データ14とともにラ
イブラリ化することによって、プログラム仕様の情報に
基づいた共通部品50の自動配置が実現でき、プログラ
ム作成の工数をさらに削減できる。
【0062】さらにまた、プログラム仕様から抽出され
るデータと作成プログラム中に書込まれたデータとの一
致を検証することができるので、プログラムのデバッグ
作業が容易にできる。
【0063】また、作成プログラム3をソースプログラ
ムの状態で各標準モジュール20や共通部品50と照合
するので、照合作業が容易である。さらにまた、仕様書
2に記載されたデータと、作成プログラム3に書込まれ
たデータとが一致しているか否かを検証することができ
るので、データを確実にプログラムに反映させることが
できる。
【0064】なお、上述の実施例で作成された作成プロ
グラム3は、ソースコードで記述されたアセンブル・プ
ログラムであり、アセンブラなどのソフトウエアを用い
ることによって、オブジェクトコードに変換することが
できる。また、本発明の他の実施例として他の言語が用
いられてもよく、さらに本発明ではハードウエアとして
作成装置1に、いわゆるエンジニアリングワークステー
ションを用いているけれども、パーソナルコンピュータ
などの他の種類のコンピュータを用いても良いことは勿
論である。
【0065】
【発明の効果】以上のように本発明によれば、細分化し
たモジュールをそれぞれ作成して組合わせることによっ
て、所望とするプログラムに完成するにあたって、各モ
ジュールに配置位置に関連する情報を持たせ、その配置
関連情報に基づいて、各モジュールやそれらに用いられ
るべき共通部品を配置するので、プログラム仕様に沿っ
た所望とするプログラムを効率的に作成することができ
るとともに、バグの発生を抑えてデバッグ作業を軽減す
ることができる。
【0066】好ましくは、プログラム仕様から、作成プ
ログラム中に流用すべき標準モジュールを抽出して、作
成プログラム中の対応するモジュールと照合する検証手
段を設ける。この検証手段は、作成プログラム中に前記
プログラム仕様に対応した標準モジュールが含まれてい
るか否か、および含まれていて変更が為されているか否
かなどを検証してその結果を表示する。したがって、プ
ログラム仕様に対応したデータなどが作成プログラムに
反映されているかなどを容易に確認することができる。
【図面の簡単な説明】
【図1】本発明の一実施例のプログラムの作成手順の概
略を示す図である。
【図2】図1の作成手順を詳細に示すブロック図であ
る。
【図3】マップテーブル40の書換手順を説明するため
の図である。
【図4】モジュール配置関連情報63の一例を示す図で
ある。
【図5】モジュール配置手順の考え方を説明するための
ブロック図である。
【図6】複数の各標準モジュール間で使用される可能性
のある共通部品50の一例を示す図である。
【図7】図6の共通部品50のリストの一例を示す図で
ある。
【図8】各標準モジュール20内のRAM21の内容の
一例を示す図である。
【図9】RAM配置部71の動作を説明するための図で
ある。
【符号の説明】
1 作成装置 2 仕様書 3 作成プログラム 4a モジュールライブラリ 4b 共通部品ライブラリ 4c 配置関連情報ライブラリ 5 仕様書データ抽出部 6 プログラム自動作成部 7 プログラムソース 8 修正部 9 仕様書データ照合部 10 仕様書抽出データ 20 標準モジュール 30 RAM 40 マップテーブル 50 共通部品 60 作成モジュール 71〜74 配置部

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 要求されるプログラム仕様に従ってプロ
    グラムを作成する装置であって、 予め定める機能単位にまとめられたプログラム部分が標
    準モジュールとして予め複数登録されるモジュール登録
    手段と、 各プログラム間で共通に使用可能な共通部品が予め登録
    される共通部品登録手段と、 前記標準モジュールおよび共通部品を流用するにあたっ
    て、該標準モジュールの配置位置や関連するモジュール
    および共通部品を規定する配置関連情報が予め登録され
    る配置関連情報登録手段と、 前記プログラム仕様に対応して、モジュール登録手段か
    ら流用すべき標準モジュールを抽出するモジュール作成
    手段と、 前記プログラム仕様から、使用すべき共通部品を前記共
    通部品登録手段から抽出する共通部品取出手段と、 前記配置関連情報登録手段から、流用すべき標準モジュ
    ールの前記配置関連情報を抽出し、その配置関連情報に
    基づいた順序で、前記モジュール作成手段において抽出
    された複数のモジュール、および共通部品取出手段で抽
    出された共通部品を、複数の各モジュール間で使用され
    るメモリ領域とともに、作成プログラム中に配置する配
    置手段とを含むことを特徴とするプログラム作成装置。
  2. 【請求項2】 前記標準モジュールに付随して、該標準
    モジュール内で使用されるデータの書式が登録されてお
    り、 前記モジュール作成手段は、流用すべき標準モジュール
    内のデータを、前記書式に従って、前記プログラム仕様
    に対応したデータに書換えることを特徴とする請求項1
    記載のプログラム作成装置。
  3. 【請求項3】 前記データは、演算定数およびマップテ
    ーブルにおけるデータポイントの値であることを特徴と
    する請求項2記載のプログラム作成装置。
  4. 【請求項4】 前記プログラム仕様から、作成プログラ
    ム中に流用すべき標準モジュールを抽出して、作成プロ
    グラム中の対応するモジュールと照合し、前記プログラ
    ム仕様に対応した標準モジュールが含まれているか否
    か、および含まれていて変更が為されているか否かを検
    証して、その結果を表示する検証手段を備えることを特
    徴とする請求項1〜3のいずれかに記載のプログラム作
    成装置。
JP6073621A 1993-08-11 1994-04-12 プログラム作成装置 Expired - Lifetime JP3046710B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6073621A JP3046710B2 (ja) 1993-08-11 1994-04-12 プログラム作成装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP5-199786 1993-08-11
JP19978693 1993-08-11
JP6073621A JP3046710B2 (ja) 1993-08-11 1994-04-12 プログラム作成装置

Publications (2)

Publication Number Publication Date
JPH07104977A true JPH07104977A (ja) 1995-04-21
JP3046710B2 JP3046710B2 (ja) 2000-05-29

Family

ID=26414763

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6073621A Expired - Lifetime JP3046710B2 (ja) 1993-08-11 1994-04-12 プログラム作成装置

Country Status (1)

Country Link
JP (1) JP3046710B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003084974A (ja) * 2001-09-11 2003-03-20 Sony Corp プログラム作成装置及びプログラム作成方法
JPWO2003069470A1 (ja) * 2002-02-15 2005-06-09 株式会社イマージュ アプリケーション作成システム、作成装置、および作成方法、並びにアプリケーション提供システム、提供装置、および提供方法、並びにアプリケーション運用システム、運用装置、および運用方法
JP2017163508A (ja) * 2016-03-11 2017-09-14 オムロン株式会社 マスタースレーブ制御システム、マスタースレーブ制御システムの制御方法、情報処理プログラム、および記録媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003084974A (ja) * 2001-09-11 2003-03-20 Sony Corp プログラム作成装置及びプログラム作成方法
JPWO2003069470A1 (ja) * 2002-02-15 2005-06-09 株式会社イマージュ アプリケーション作成システム、作成装置、および作成方法、並びにアプリケーション提供システム、提供装置、および提供方法、並びにアプリケーション運用システム、運用装置、および運用方法
JP2017163508A (ja) * 2016-03-11 2017-09-14 オムロン株式会社 マスタースレーブ制御システム、マスタースレーブ制御システムの制御方法、情報処理プログラム、および記録媒体

Also Published As

Publication number Publication date
JP3046710B2 (ja) 2000-05-29

Similar Documents

Publication Publication Date Title
US6550052B1 (en) Software development framework for constructing embedded vehicle controller software
US5202996A (en) Software structuring system and method by data table translation
Moore Piton: a mechanically verified assembly-level language
US7197743B2 (en) Method for generating computer software for embedded systems
US6317873B1 (en) Assembly language translator
JP3248433B2 (ja) プログラムリンケージ検証方式
US20050049736A1 (en) Microcomputer resource utilization estimation program, microcomputer resource utilization estimation apparaus, and program development method
US7593791B2 (en) Method and device for adaptation of functions for controlling operating sequences
JPH07104977A (ja) プログラム作成装置
EP0218258A2 (en) Software structuring system and method by data table translation
US20100070951A1 (en) Generic assembler
US6343378B1 (en) Method of making link directive file and tool for making link directive file
JPH0766342B2 (ja) プログラムテスト装置
JP4939007B2 (ja) システム設計支援プログラム
JP2989971B2 (ja) リンク方法
JP2864955B2 (ja) コンパイルドコードオブジェクトのパッチ処理方式
EP0194822A2 (en) Methods of and apparatus for compiling high-level language statements into low-level language instruction sets
US20080256522A1 (en) Automobile Controller, Software Generation Method and Software Generation System Thereof
GB2336224A (en) Hardware register access and database
CN121143811A (zh) 一种基于SystemRDL的ISA指令格式拼装方法
JPH06274312A (ja) 汎用デ−タ変換装置
JPH10254710A (ja) アセンブルリスト生成方式
JPH04230523A (ja) プログラム作成装置
JPH02205930A (ja) インタフェースチェック処理方法
Odani et al. The ILSP Behavioral Description Language and its Graph Representation for Behavioral Synthesis

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000307

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090317

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090317

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100317

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110317

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110317

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120317

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120317

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130317

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130317

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140317

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140317

Year of fee payment: 14

EXPY Cancellation because of completion of term