JP3503962B2 - Automatic program placement device - Google Patents

Automatic program placement device

Info

Publication number
JP3503962B2
JP3503962B2 JP17704893A JP17704893A JP3503962B2 JP 3503962 B2 JP3503962 B2 JP 3503962B2 JP 17704893 A JP17704893 A JP 17704893A JP 17704893 A JP17704893 A JP 17704893A JP 3503962 B2 JP3503962 B2 JP 3503962B2
Authority
JP
Japan
Prior art keywords
program
module
ram
created
data
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.)
Expired - Lifetime
Application number
JP17704893A
Other languages
Japanese (ja)
Other versions
JPH0736676A (en
Inventor
崎偉 ▲葛▼
宏敏 斗納
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 JP17704893A priority Critical patent/JP3503962B2/en
Publication of JPH0736676A publication Critical patent/JPH0736676A/en
Application granted granted Critical
Publication of JP3503962B2 publication Critical patent/JP3503962B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Description

【発明の詳細な説明】 【0001】 【産業上の利用分野】本発明は、モジュール毎に予め作
成したプログラムを組合わせてプログラムを自動的に作
成するプログラム自動配置装置に関する。 【0002】 【従来の技術】従来から、アセンブル・プログラムの作
成においては、モジュール化が行われている。アセンブ
ル・プログラムは、コンピュータの機械語に対応し、一
般にかなり長くなる。プログラムを複数のブロックに分
割して、適度な長さのモジュール毎に動作を確認した後
で、各モジュールを組合わせるようにすれば、プログラ
ムの開発効率が良くなり、動作の信頼性も向上する。 【0003】従来からのモジュール化プログラムは、サ
ブルーチンやマクロなどの形で予めライブラリに登録し
ておき、メインルーチンから読出す形式が多い。 【0004】 【発明が解決しようとする課題】従来からのモジュール
化プログラムは、アセンブラやリンカなどと呼ばれるソ
フトウエアが、機械語のプログラムを生成する際にモジ
ュールを組合わせる。アセンブラなどの処理系への指示
は、ソースプログラムの文中にアセンブラなどの文法に
従って記述する必要がある。 【0005】特定の分野に使用されるアセンブル・プロ
グラム、たとえば自動車のエンジン制御のためのプログ
ラムは、機種毎にデータなどが異なるけれども、プログ
ラムの構成自体はほとんど共通である。このため機種毎
に異なるモジュールについては、複数のモジュールを用
意しておき、全体のアセンブル・プログラムを作成する
際に必要なモジュールを選択する方法を取ることが効率
的である。しかしながら、そのようなモジュールの選択
は、メインルーチンを記述するアセンブル・プログラム
の本文中で行わなければならない。このため新たなプロ
グラムの作成や修正に手間がかかり、さらに自動化する
ことは困難である。 【0006】本発明の目的は、プログラムの本文中で選
択しなくても、モジュール化したプログラムを自動的に
配置することができるプログラムの自動配置装置を提供
することである。 【0007】 【課題を解決するための手段】本発明は、メモリ素子と
してRAMとROMとを備えたコンピュータで動作させ
る、作成すべきプログラムを、モジュール毎に予め作成
したモジュールプログラムを組合わせることによって生
成するプログラム自動配置装置において、前記メモリ素
子の領域を複数に分けたメモリ領域における、どのメモ
リ領域に割付けて配置するかについての属性が付加され
ているモジュールプログラムと、モジュールのレイアウ
トを作成するときに用いる配置関連情報とを、記憶して
いるプログラム記憶手段と、作成すべきプログラムの仕
様書データに基づいて、該プログラム記憶手段から必要
なモジュールプログラムと配置関連情報とを抽出する抽
出手段と、該抽出手段が抽出したモジュールプログラム
を、付加された属性に従ってメモリ領域に割付けて配置
する配置手段とを備え、該モジュールプログラムに付加
された属性としては、前記作成すべきプログラムの動作
を表すプログラムであるプログラム本体と、データの読
出しと書込みとが可能な変数であるRAMとが含まれ、
該配置手段は、該属性がプログラム本体であるモジュー
ルプログラムについては、該配置関連情報に基づいて作
成したモジュールのレイアウトに応じてROMへ割付け
し、該属性がRAMであるモジュールプログラムについ
てはRAMへの割付けを行なうことを特徴とするプログ
ラム自動配置装置である。 【0008】 【0009】 【作用】本発明に従えば、プログラム記憶手段に記憶さ
れているモジュールプログラムは、メモリ素子としてR
AMとROMとを備えたコンピュータで動作させるため
に、各モジュールプログラムをメモリ素子として備えら
れるRAMとROMとのうちのどのメモリ領域に割付け
て配置するかについての属性が付加された状態で予め作
成されている。プログラム記憶手段には、モジュールの
レイアウトを作成するときに用いる配置関連情報も記憶
させている。抽出手段は、作成すべきプログラムの仕様
書データに基づいて、必要なモジュールプログラムと配
置関連情報とをプログラム記憶手段から抽出する。配置
手段は、抽出手段が抽出したモジュールプログラムを、
付加された属性に従ってメモリ領域に割付けて配置す
る。モジュールプログラムに付加された属性には、作成
すべきプログラムの動作を表すプログラムであるプログ
ラム本体と、データの読出しと書込みとが可能な変数で
あるRAMとが含まれる。配置手段は、属性がプログラ
ム本体などのRAMではないモジュールプログラムをR
OMに割付け、属性がRAMであればRAMに割付け
る。仕様書データに基づいて必要なモジュールプログラ
ムが抽出され、モジュールプログラムのメモリ領域の割
付けも行われるので、プログラムの本文中でメモリ領域
を選択しなくても、自動的にROMとRAMとに配置す
ることができる。 【0010】 【0011】 【実施例】図1は、本発明の一実施例の概略的な構成を
示す。プログラム自動配置装置であるエンジニアリング
ワークステーション(以下、「EWS」と略称する)1
は、ソフトウエアによって実現されるプログラム配置手
段2および構成データ入力手段3を有する。プログラム
配置手段2には、仕様書4の内容と、ハードディスクや
光ディスク装置などによって実現されるプログラム記憶
手段5からのデータとが入力される。プログラム配置手
段2は、構成データ入力手段3に入力される構成データ
に従って、RAM領域6、マップ領域7、共通部品領域
8およびプログラム本体9を含む作成プログラム10を
生成する。RAM領域6は、データの読出しと書込みと
が可能な変数または定数が配置される領域である。マッ
プ領域7は、ルックアップ用のマップデータが配置され
る領域である。共通部品領域8は、複数種類のプログラ
ムから共通に使用可能な比較的小規模のプログラムが記
述される領域である。プログラム本体9は、作成プログ
ラム10におけるCPUなどの動作を表すプログラムコ
ードが配置される領域である。 【0012】図2は、作成プログラム10を構成データ
13に従って作成するときの基本的な考え方を示す。作
成プログラム10は、仕様書データ14によって指示さ
れ、図1のプログラム記憶装置5内に構築されるデータ
ベース15から、必要なデータが抽出され、構成データ
13としてまとめられる。構成データ13中の各データ
は、作成プログラム10を複数のプログラム・ブロック
に分割したときの各ブロックの構成を示す。図2に示す
例では、作成プログラム10を12のブロックに分割し
ている。 【0013】図2の作成プログラム10の内容は、次の
表1に示される。 【0014】 【表1】 【0015】表1で、「ユーザ入力」は、プログラム作
成者がキーボードなどからデータを入力すべきことを示
す。「配置」は、メモリ領域を再配置することを示す。
「データ書込み」は、図1に示すマップ領域7などに書
込むべきデータがあることを示す。「システム設定」
は、本自動配置装置が設定することを示す。 【0016】図3は、図2の作成プログラム10のブロ
ック内容とそのメモリ領域への割付け属性の種類との関
係を示す。種類がRAMであれば、プログラムを作成す
る際に、RAMが割付けられる。種類がマップであれ
ば、マップデータが書込まれる。種類が共通部品であれ
ば、予め作成されている共通部品が配置される。種類が
プログラム本体であれば、定数データの書込みとモジュ
ール配置とが行われる。 【0017】図2に示す構成データ13の一例を次の表
2に示す。 【0018】 【表2】【0019】ここで、第5番目のブロック「RAM領域
定義」と、第9番目のブロック「メインルーチン」と
は、対応している。このため参照ファイル名において
も、「ABCDS00AR.MOD」と「ABCD−S
−00−A−R」は対応関係にある。また「XYZS0
30BR.MOD」と「XYZ−S0−30−B−R
(1/3)」〜「XYZ−S0−30−B−R(3/
3)」は対応する。「XYZ…R」は、3つのファイル
に分割されていることを示す。 【0020】図4は、表2に示すような構成データによ
って、仕様書4から作成プログラム10を生成する過程
におけるデータの関連状態を示す。プログラム記憶手段
5内には、モジュールライブラリ16、共通部品17お
よび配置関連情報18が予め記憶される。仕様書4から
は、仕様書抽出データ20が抽出される。仕様書抽出デ
ータ20の「モジュール名」に従って、モジュールライ
ブラリ16から名称が一致するファイルが標準モジュー
ル21として読出される。「モジュール名」からは、配
置関連情報18も参照される。仕様書抽出データ20の
「機種データ」に従って、共通部品17が参照される。
標準モジュール21に指定される「RAM」に記載され
ているデータがRAMテーブル22にまとめられる。R
AMとしては、「フラグ」と「ダイレクト」となどの種
別がある。「フラグ」は、ビットデータの記憶に用い
る。ダイレクトは、メモリのアクセスの仕方を指定す
る。仕様書抽出データ20中「マップ値」と、標準モジ
ュール21中の「マップ・フォーマット」とは、マップ
テーブル23にマップ・データとして集められる。仕様
書抽出データ20の「定数値」と、標準モジュール21
中の「定数書式」とは、作成モジュール24に定数デー
タとして集められる。標準モジュール21中の「ロジッ
ク」は、作成モジュール24中の「ロジック」に集めら
れる。「ロジック」はCPUの動作を表す。共通部品1
7から検索された共通部品は共通部品25として、「共
通定数」や「汎用サブルーチン」としてまとめられる。 【0021】RAMテーブル22の内容に基づいて、R
AM割付け26が行われ、作成プログラム10のRAM
領域6が生成される。マップテーブル23のマップ・デ
ータに基づいて、マップレイアウト27が形成され、作
成プログラム中のマップ領域7が生成される。共通部品
25から共通部品レイアウト28が作成され、作成プロ
グラム10中の共通部品領域8が生成される。作成モジ
ュール24からは、配置関連情報18を参照して、モジ
ュールレイアウト29が作成され、作成プログラム10
中のプログラム本体領域9が生成される。 【0022】図5は、本実施例によるプログラムの作成
過程を示す。ステップa1では、仕様書が与えられて、
プログラムの作成が開始される。ステップa2では、仕
様書からデータ抽出が行われる。ステップa3では、仕
様書データに基づいて、モジュールの作成が行われる。
図4に示されるモジュールライブラリ16にすでに登録
されているモジュールであれば、標準モジュール21と
して抽出する。未登録のモジュールであれば、新たに作
成する。 【0023】ステップa4では、表2に示すような構成
データを作成し、プログラムの生成過程を開始する。構
成データに記載されているブロックは、ブロック名の記
載順に従って処理される。表1の「備考」に相当するデ
ータは、表2の「参照ファイル名」の「.」以下を識別
子として用いることなどによって判別することができ
る。ステップa5では、ユーザ入力が必要か否かが判断
される。ユーザ入力が必要であれば、ステップa6で入
力されたデータを取込む。次のステップa7では、構成
データに基づいて、プログラム自動配置が行われる。 【0024】ステップa8では、自動配置されて作成さ
れたプログラムをアセンブルし、機械語に翻訳する。文
法的なエラーがあったときや、翻訳された機械語によっ
てテスト動作を行った結果から、ステップa9では、プ
ログラムの修正が必要か否かが判断される。修正が必要
と判断されるときには、ステップa10で構成データの
修正が行われ、ステップa5に戻る。ステップa9で修
正が必要でないと判断されるときには、ステップa11
でプログラムの作成を終了する。個々のモジュールにつ
いては、ステップa3のモジュール作成の段階でアセン
ブラの文法エラーなどを除去しておけば、ステップa1
0での文法エラーの修正の必要はなくなる。この場合の
修正は、たとえば実際にエンジンを制御したときの制御
データなどを変更する修正となる。予め複数のデータを
モジュールとして作成しておけば、その指定を切換える
だけでプログラムの修正を行うことができる。 【0025】図4のRAM割付け26は、たとえば表3
のように区分される領域に対して行われる。 【0026】 【表3】 【0027】RAM領域は$00〜$FFの連続したア
ドレスに割付けられるけれども、その領域はたとえば5
つに区分されている。このような区分は、たとえばRA
M領域の一部をバッテリバックアップして、データが揮
発しないようにするときなどに特に有効である。割付け
内容のパターンA〜Eは、それぞれRAM領域の属性を
表す。パターンB,Cは、第2の区分および第4の区分
に割付けることができる。 【0028】図6は、表3のようなRAM領域区分にR
AMを割付ける方法を示す。ステップb1から割付けを
開始し、ステップb2では、割付けるべきRAMを1つ
とる。ステップb3でそのRAMがすでに他のブロック
で割付けが終了しているか否が判断される。同一の名称
のRAMがすでに割付けられていないときには、ステッ
プb4で、そのパターンがBまたはC以外であるか否か
が判断される。パターンB,C以外であると判断される
ときには、ステップb5で所定の区分に割付けられる。
ステップb4でパターンB,Cであると判断されるとき
には、ステップb6で、まず2番目の区分から割付けが
行われる。2番目の区分に空所があれば、さらに2番目
の区分に割付けられる。2番目の区分に空所がなけれ
ば、4番目の区分に割付けられる。 【0029】割付けが終了すると、ステップb7で、他
にまだ割付けられていないRAMがあるか否かが判断さ
れる。未割付けのRAMがあるときには、ステップb2
に戻る。全てのRAMの割付けが終了すると、ステップ
b8で割付け処理を終了する。 【0030】以上のようにして、RAMを重複すること
なく、しかも連続して効率的にメモリに割付けることが
できる。本実施例では、作成すべきプログラムを12の
ブロックに分割し、メモリ領域の属性を4種類に分けて
いるけれども、それぞれ他の数であってもよいことは勿
論である。 【0031】 【発明の効果】以上のように本発明によれば、仕様書デ
ータに応じて、必要なモジュールプログラムを抽出し、
抽出したモジュールプログラムを、メモリ素子としてR
AMとROMとを備えるコンピュータに対し、自動的に
配置してプログラムを作成することができる。仕様書デ
ータを変更すれば、生成されるプログラムを容易に修正
することができる。 【0032】また本発明によれば、モジュールプログラ
ムに付加されている属性に基づいて、ROMとRAMと
のメモリ領域に分けて配置することができ、翻訳手段に
よって、割当てられるプログラムをアセンブルすること
ができる。
Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an automatic program arranging apparatus for automatically creating a program by combining programs created in advance for each module. 2. Description of the Related Art Conventionally, modularization has been performed in creating an assembling program. Assembled programs correspond to computer machine language and are generally quite long. Dividing the program into multiple blocks, checking the operation of each module of a suitable length, and then combining each module improves the program development efficiency and improves the operation reliability. . Conventional modularized programs are often registered in a library in advance in the form of subroutines or macros, and read out from a main routine. [0004] In a conventional modularized program, software called an assembler or a linker combines modules when generating a machine language program. Instructions to the processing system such as the assembler must be described in the source program according to the grammar of the assembler. An assembling program used in a specific field, for example, a program for controlling an engine of an automobile has different data and the like for each model, but the configuration itself of the program is almost common. For this reason, it is efficient to prepare a plurality of modules for different modules for each model, and to select a module necessary for creating an entire assembling program. However, the choice of such a module must be made in the body of the assembling program describing the main routine. For this reason, it takes time and effort to create or modify a new program, and it is difficult to further automate it. An object of the present invention is to provide an automatic program arrangement device which can automatically arrange a modularized program without selecting it in the text of the program. According to the present invention, a program to be created, which is operated by a computer having a RAM and a ROM as memory elements, is combined with a module program created in advance for each module. In the automatic program placement apparatus for generating, when creating a module program to which an attribute about which memory area is to be allocated and arranged in a memory area obtained by dividing the memory element area into a plurality of areas, and a module layout A storage means for storing the arrangement-related information used for, and an extraction means for extracting necessary module programs and arrangement-related information from the program storage means based on specification data of a program to be created, The module program extracted by the extracting means is Arranging means for allocating and allocating to the memory area in accordance with the added attribute, wherein the attribute added to the module program includes a program main body which is a program representing the operation of the program to be created, and data reading and writing And RAM, which is a possible variable,
The allocating means allocates, to a ROM, a module program whose attribute is a program main body in accordance with a layout of a module created based on the layout-related information, and allocates a module program whose attribute is a RAM to a RAM. An automatic program placement device characterized by performing assignment. According to the present invention, the module program stored in the program storage means has an R
In order to be operated by a computer having an AM and a ROM, each module program is created in advance with an attribute of which memory area of a RAM or a ROM provided as a memory element is allocated and arranged. Have been. The program storage means also stores arrangement-related information used when creating a module layout. The extracting means extracts necessary module programs and arrangement related information from the program storage means based on the specification data of the program to be created. The arranging means includes the module program extracted by the extracting means,
Allocate and allocate to the memory area according to the added attribute. The attributes added to the module program include a program body that is a program representing the operation of the program to be created and a RAM that is a variable from which data can be read and written. The arranging means stores the module program whose attribute is not RAM such as the program
OM, and if the attribute is RAM, it is assigned to RAM. The necessary module program is extracted based on the specification data, and the memory area of the module program is also allocated. Therefore, even if the memory area is not selected in the text of the program, the module program is automatically arranged in the ROM and the RAM. be able to. FIG. 1 shows a schematic configuration of an embodiment of the present invention. Engineering workstation (hereinafter abbreviated as "EWS") 1 which is an automatic program placement device
Has a program arrangement means 2 and a configuration data input means 3 realized by software. The contents of the specification 4 and data from the program storage means 5 realized by a hard disk, an optical disk device, or the like are input to the program arrangement means 2. The program arranging means 2 generates a creation program 10 including a RAM area 6, a map area 7, a common parts area 8 and a program body 9 according to the configuration data input to the configuration data input means 3. The RAM area 6 is an area where variables or constants from which data can be read and to which data can be written are arranged. The map area 7 is an area where map data for lookup is arranged. The common component area 8 is an area in which a relatively small-scale program that can be commonly used by a plurality of types of programs is described. The program body 9 is an area where program codes representing operations of the CPU and the like in the creation program 10 are arranged. FIG. 2 shows the basic concept when creating the creation program 10 in accordance with the configuration data 13. The creation program 10 is instructed by the specification data 14, and necessary data is extracted from a database 15 constructed in the program storage device 5 of FIG. Each data in the configuration data 13 indicates the configuration of each block when the creation program 10 is divided into a plurality of program blocks. In the example shown in FIG. 2, the creation program 10 is divided into twelve blocks. The contents of the creation program 10 shown in FIG. 2 are shown in Table 1 below. [Table 1] In Table 1, "user input" indicates that the program creator should input data from a keyboard or the like. "Arrangement" indicates that the memory area is rearranged.
“Data writing” indicates that there is data to be written in the map area 7 shown in FIG. "System setting"
Indicates that the present automatic arrangement device sets. FIG. 3 shows the relationship between the block contents of the creation program 10 of FIG. 2 and the types of attributes assigned to the memory area. If the type is RAM, the RAM is allocated when a program is created. If the type is map, map data is written. If the type is a common component, a common component created in advance is arranged. If the type is a program body, writing of constant data and module arrangement are performed. An example of the configuration data 13 shown in FIG. 2 is shown in Table 2 below. [Table 2] Here, the fifth block “RAM area definition” corresponds to the ninth block “main routine”. Therefore, even in the reference file name, “ABCDS00AR.MOD” and “ABCDS-S
"-00-AR" are in a corresponding relationship. Also, "XYZS0
30BR. MOD "and" XYZ-S0-30-BR "
(1/3) "to" XYZ-S0-30-BR (3 /
3) "corresponds. "XYZ ... R" indicates that the file is divided into three files. FIG. 4 shows a relation state of data in the process of generating the creation program 10 from the specification 4 based on the configuration data shown in Table 2. In the program storage unit 5, a module library 16, a common component 17, and arrangement-related information 18 are stored in advance. From the specification sheet 4, specification sheet extraction data 20 is extracted. According to the “module name” of the specification extraction data 20, a file having a matching name is read from the module library 16 as the standard module 21. The “module name” also refers to the arrangement-related information 18. The common component 17 is referred to according to the “model data” of the specification extraction data 20.
Data described in “RAM” specified in the standard module 21 is collected in the RAM table 22. R
AM includes types such as "flag" and "direct". The “flag” is used for storing bit data. Direct specifies how to access the memory. The “map value” in the specification extraction data 20 and the “map format” in the standard module 21 are collected in a map table 23 as map data. The "constant value" of the specification extraction data 20 and the standard module 21
The “constant format” therein is collected in the creation module 24 as constant data. “Logic” in the standard module 21 is collected into “logic” in the creation module 24. “Logic” indicates the operation of the CPU. Common parts 1
The common parts retrieved from 7 are collected as a common part 25 as a “common constant” or a “general-purpose subroutine”. Based on the contents of the RAM table 22, R
AM allocation 26 is performed, and the RAM of the
Region 6 is generated. The map layout 27 is formed based on the map data of the map table 23, and the map area 7 in the creation program is generated. The common component layout 28 is created from the common component 25, and the common component area 8 in the creation program 10 is created. The module layout 29 is created from the creation module 24 with reference to the arrangement-related information 18.
A program body area 9 is generated. FIG. 5 shows a process of creating a program according to this embodiment. In step a1, a specification is given,
Program creation starts. In step a2, data is extracted from the specification. In step a3, a module is created based on the specification data.
If the module is already registered in the module library 16 shown in FIG. If the module has not been registered, a new module is created. In step a4, configuration data as shown in Table 2 is created, and a program generation process is started. The blocks described in the configuration data are processed according to the description order of the block names. Data corresponding to “remarks” in Table 1 can be determined by using “.” Or less of “reference file name” in Table 2 as an identifier or the like. In step a5, it is determined whether a user input is necessary. If a user input is required, the data input in step a6 is taken. In the next step a7, automatic program placement is performed based on the configuration data. In step a8, the program automatically arranged and created is assembled and translated into a machine language. At step a9, it is determined whether or not the program needs to be corrected, based on the result of the grammatical error or the result of the test operation performed by using the translated machine language. When it is determined that correction is necessary, the configuration data is corrected in step a10, and the process returns to step a5. If it is determined in step a9 that no correction is necessary, step a11
To end program creation. For each module, if any syntax errors of the assembler are removed at the module creation stage in step a3, step a1
There is no need to correct grammatical errors at zero. The modification in this case is, for example, a modification that changes control data when the engine is actually controlled. If a plurality of data are created in advance as a module, the program can be modified only by switching the designation. The RAM allocation 26 in FIG.
Is performed for an area that is divided as follows. [Table 3] Although the RAM area is allocated to consecutive addresses of $ 00 to $ FF, the area is, for example, 5
It is divided into two. Such a division is, for example, RA
This is particularly effective when a part of the M area is backed up by a battery to prevent data from being volatilized. The patterns A to E of the assignment contents respectively represent the attributes of the RAM area. Patterns B and C can be assigned to the second section and the fourth section. FIG. 6 shows that the RAM areas are divided into R as shown in Table 3.
The method for allocating the AM will be described. The allocation is started from step b1, and in step b2, one RAM to be allocated is taken. At step b3, it is determined whether or not the RAM has already been allocated to another block. If a RAM having the same name has not been allocated, it is determined in step b4 whether the pattern is other than B or C. If it is determined that the pattern is other than the patterns B and C, it is assigned to a predetermined section in step b5.
When it is determined in Step b4 that the patterns are B and C, in Step b6, first, the assignment is performed from the second section. If there is a space in the second section, it is further assigned to the second section. If there is no empty space in the second section, it is assigned to the fourth section. When the assignment is completed, it is determined in step b7 whether or not there is any other unassigned RAM. If there is an unallocated RAM, step b2
Return to When the assignment of all the RAMs is completed, the assignment process ends in step b8. As described above, the RAM can be efficiently allocated to the memory continuously without overlapping. In this embodiment, the program to be created is divided into twelve blocks, and the attributes of the memory area are divided into four types. However, it is needless to say that other numbers may be used. As described above, according to the present invention, a necessary module program is extracted according to specification data,
Using the extracted module program as a memory element, R
A program can be created by automatically arranging the program in a computer having an AM and a ROM. If the specification data is changed, the generated program can be easily modified. Further, according to the present invention, it is possible to arrange the ROM and the RAM separately based on the attribute added to the module program, and to assemble the assigned program by the translation means. it can.

【図面の簡単な説明】 【図1】本発明の一実施例の概略的な電気的構成を示す
ブロック図である。 【図2】図1に示す実施例の基本的な考え方を示すブロ
ック図である。 【図3】図2に示す作成プログラム10を構成するブロ
ックの内容を示す図である。 【図4】図2に示す処理におけるデータの関連状態を示
すブロック図である。 【図5】図2に示す動作の処理過程を示すフローチャー
トである。 【図6】図4のRAM割付け26の処理内容を示すフロ
ーチャートである。 【符号の説明】 1 EWS 2 プログラム配置手段 3 構成データ入力手段 4 仕様書 5 プログラム記憶手段 6 RAM領域 7 マップ領域 8 共通部品領域 9 プログラム本体領域 10 作成プログラム 13 構成データ 14 仕様書データ 15 データベース 16 モジュールライブラリ 17 共通部品 18 配置関連情報 22 RAMテーブル 26 RAM割付け
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram showing a schematic electrical configuration of an embodiment of the present invention. FIG. 2 is a block diagram showing a basic concept of the embodiment shown in FIG. FIG. 3 is a diagram showing the contents of blocks constituting the creation program 10 shown in FIG. 2; FIG. 4 is a block diagram showing a data related state in the processing shown in FIG. 2; FIG. 5 is a flowchart showing a process of the operation shown in FIG. 2; FIG. 6 is a flowchart showing processing contents of a RAM allocation 26 in FIG. 4; [Description of Signs] 1 EWS 2 Program placement means 3 Configuration data input means 4 Specifications 5 Program storage means 6 RAM area 7 Map area 8 Common parts area 9 Program body area 10 Creation program 13 Configuration data 14 Specification data 15 Database 16 Module library 17 Common parts 18 Arrangement related information 22 RAM table 26 RAM allocation

フロントページの続き (56)参考文献 特開 平3−125223(JP,A) 特開 昭57−141756(JP,A) 特開 平4−169935(JP,A) 特開 平4−324526(JP,A) 田中 他,「リレーショナルデータベ ースを用いたプログラム自動合成の実 現」,OMRON TECHNiCS, Vol.32,No.2(通巻102号), 1992年,pp.19〜22 野口,「ロケータを用いたROM 化」,CMAGAZINE,Vol. 2,No.11,1990年 ソフトバンク, pp.63〜69 (58)調査した分野(Int.Cl.7,DB名) G06F 9/06 G06F 9/44 Continuation of front page (56) References JP-A-3-125223 (JP, A) JP-A-57-141756 (JP, A) JP-A-4-169935 (JP, A) JP-A-4-324526 (JP) A) Tanaka et al., "Realization of Automatic Program Synthesis Using Relational Database", OMRON TECHNiCS, Vol. 32, No. 2 (Vol. 102), 1992, pp. 19-22 Noguchi, "ROMization Using Locator", CMAGAZINE, Vol. 11, 1990 SoftBank, pp. 63-69 (58) Field surveyed (Int.Cl. 7 , DB name) G06F 9/06 G06F 9/44

Claims (1)

(57)【特許請求の範囲】 【請求項1】 メモリ素子としてRAMとROMとを備
えたコンピュータで動作させる、作成すべきプログラム
を、モジュール毎に予め作成したモジュールプログラム
を組合わせることによって生成するプログラム自動配置
装置において、 前記メモリ素子の領域を複数に分けたメモリ領域におけ
る、どのメモリ領域に割付けて配置するかについての属
性が付加されているモジュールプログラムと、モジュー
ルのレイアウトを作成するときに用いる配置関連情報と
を、記憶しているプログラム記憶手段と、 作成すべきプログラムの仕様書データに基づいて、該プ
ログラム記憶手段から必要なモジュールプログラムと配
置関連情報とを抽出する抽出手段と、 該抽出手段が抽出したモジュールプログラムを、付加さ
れた属性に従ってメモリ領域に割付けて配置する配置手
段とを備え、 該モジュールプログラムに付加された属性としては、前
記作成すべきプログラムの動作を表すプログラムである
プログラム本体と、データの読出しと書込みとが可能な
変数であるRAMとが含まれ、 該配置手段は、該属性がプログラム本体であるモジュー
ルプログラムについては、該配置関連情報に基づいて作
成したモジュールのレイアウトに応じてROMへ割付け
し、該属性がRAMであるモジュールプログラムについ
てはRAMへの割付けを行なうことを特徴とするプログ
ラム自動配置装置。
(57) [Claim 1] A program to be created, which is operated by a computer having a RAM and a ROM as memory elements, is generated by combining module programs created in advance for each module. In the automatic program placement device, a module program to which an attribute of which memory area is to be allocated and arranged in a memory area obtained by dividing the memory element area into a plurality of areas, and a module layout are used. Program storage means for storing location-related information; extracting means for extracting necessary module programs and location-related information from the program storage means based on specification data of a program to be created; The attribute added to the module program extracted by the means Therefore, there is provided arranging means for allocating and allocating to the memory area. As attributes added to the module program, a program main body, which is a program representing the operation of the program to be created, and data reading and writing are possible. The layout means allocates a module program whose attribute is a program body to a ROM according to a layout of a module created based on the layout-related information, and the attribute is stored in the RAM. An automatic program placement device, wherein a module program is allocated to a RAM.
JP17704893A 1993-07-16 1993-07-16 Automatic program placement device Expired - Lifetime JP3503962B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17704893A JP3503962B2 (en) 1993-07-16 1993-07-16 Automatic program placement device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17704893A JP3503962B2 (en) 1993-07-16 1993-07-16 Automatic program placement device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2003366035A Division JP3996114B2 (en) 2003-10-27 2003-10-27 How to place the program

Publications (2)

Publication Number Publication Date
JPH0736676A JPH0736676A (en) 1995-02-07
JP3503962B2 true JP3503962B2 (en) 2004-03-08

Family

ID=16024232

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17704893A Expired - Lifetime JP3503962B2 (en) 1993-07-16 1993-07-16 Automatic program placement device

Country Status (1)

Country Link
JP (1) JP3503962B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8684943B2 (en) 2006-06-26 2014-04-01 Acarix A/S Multi parametric classfication of cardiovascular sound

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
田中 他,「リレーショナルデータベースを用いたプログラム自動合成の実現」,OMRON TECHNiCS,Vol.32,No.2(通巻102号),1992年,pp.19〜22
野口,「ロケータを用いたROM化」,CMAGAZINE,Vol.2,No.11,1990年 ソフトバンク,pp.63〜69

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8684943B2 (en) 2006-06-26 2014-04-01 Acarix A/S Multi parametric classfication of cardiovascular sound

Also Published As

Publication number Publication date
JPH0736676A (en) 1995-02-07

Similar Documents

Publication Publication Date Title
US6678885B2 (en) System and method for common code generation
US5903859A (en) Dynamic multi-lingual software module system
EP0230279A2 (en) Method of controlling database access
JPH0640302B2 (en) Schematic / source program automatic generation method
KR101567455B1 (en) Defining an interactive user interface
EP2246786A1 (en) Managing a shared memory region
CN100527131C (en) Interdynamic access method and tool of IMS data base
JP3503962B2 (en) Automatic program placement device
EP1002270A1 (en) Software optimization system
JP3996114B2 (en) How to place the program
US7240301B2 (en) System and method to insert new pages with a schematic capture tool
JPH06110733A (en) Test case generating device of program
US20070113236A1 (en) Program flow method and method for expanding a program component system
WO1990004227A1 (en) Software manufacturing system
JP2669387B2 (en) Database driven automatic program generation system
JPH09288686A (en) Layout pattern design reference/verification rule preparation supporting method and system therefor
JPS6310239A (en) Patch production system for high-level language
JPH04172529A (en) Automatic program generating system by data oriented software parts
JP3192177B2 (en) Object processing device
JP2692196B2 (en) Test data editing method
KR100229567B1 (en) Coordination and text value generation method
JP4601144B2 (en) Program development system, recording medium and method
JP2982725B2 (en) Automatic program generator
JPH0390931A (en) Generation of rom transformation program
CN116009832A (en) Method for generating software architecture code based on Excel file

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20020219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20031209

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

Free format text: PAYMENT UNTIL: 20071219

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20081219

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20091219

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101219

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20131219

Year of fee payment: 10

EXPY Cancellation because of completion of term