JP2007213402A - プログラムコード生成装置 - Google Patents
プログラムコード生成装置 Download PDFInfo
- Publication number
- JP2007213402A JP2007213402A JP2006033875A JP2006033875A JP2007213402A JP 2007213402 A JP2007213402 A JP 2007213402A JP 2006033875 A JP2006033875 A JP 2006033875A JP 2006033875 A JP2006033875 A JP 2006033875A JP 2007213402 A JP2007213402 A JP 2007213402A
- Authority
- JP
- Japan
- Prior art keywords
- program code
- calculation
- input
- warning
- code generation
- 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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
【解決手段】プログラムコード生成装置1においては、演算ブロックにおいて各種演算の演算順序を入力する各種設定入力部52により入力された演算順序を、プログラムコード生成装置1の記憶装置が各種パラメータに関連付けて記憶する。そして、記述された制御モデル20に対応するプログラムコードを各種パラメータの入力順に生成するコード生成処理部12は、プログラムコード生成装置1の記憶装置に記憶された演算順序を入力順として、プログラムコードを生成する。
【選択図】図1
Description
即ち、変数Aおよび定数Bは、この演算ブロックにおいて、この演算ブロックへの入力順(つまり上から順)に使用され、図12(a)に示すように、「rtB.Product = 1.0 / rtb#DataStoreReadA * rtP.ConstantB#Value(「解」=1.0/「変数A」*「定数B」)」というプログラムコードとして出力される。
特に、浮動小数点演算を行う場合には、演算後の数値(解)の桁数が大きく変化すると、実質的に使用する桁数が減少してしまい、演算精度の悪化が発生するが、請求項4に記載の発明では、加減算ブロックにて加減算する前後で各種パラメータの値のレンジの差を監視するので、演算精度の悪化を防止することができる。
また、請求項3または請求項4に記載のプログラムコード生成装置が浮動小数点演算を実施する場合には、請求項6に記載のように、浮動小数点演算が単精度で実施されるか倍精度で実施されるかを判定し、判定結果に応じて予め設定された閾値を各警告手段が参照する閾値として設定する閾値設定手段を備えていてもよい。
また、請求項3〜請求項7の何れかに記載のプログラムコード生成装置においては、請求項8に記載のように、警告手段が加減算ブロックでの演算精度の悪化を警告した場合に、演算順序記憶手段に記憶された演算順序を予め設定された規則に基づいて変更する演算順序変更手段を備えていてもよい。また特に、演算順序変更手段は、請求項9に記載のように、演算ブロックに入力される各種パラメータ同士の大小関係に基づいて演算順序記憶手段に記憶された演算順序を変更するよう構成されていてもよい。
また、演算順序を自動的に設定することができるので、プログラムコードを生成するための工数を削減することができる。
また、演算ブロックを集約することにより、演算順序を変更する際の自由度を高くすることができるので、より演算精度を向上させることができる。
本実施例では、車両制御用のプログラム作成を目的としており、プログラム仕様を示す制御モデル20(以下「制御モデル20」という。)から、コード生成ツール100がプログラムコードを生成する。ここでいうプログラムコードはソースコードであり、コンパイラ・リンカ31によってオブジェクトコードに変換されて、電子制御装置(以下「ECU」という)のフラッシュROM32に書き込まれる。
このときコード生成処理部12は生成ルールを参照するが、この参照される生成ルールを格納しているのが、ROMやハードディスク装置の一部として構成された生成ルール記憶部14である。なお、生成ルール記憶部14には、抽出エンジン11にて抽出された演算順序が一時保持される。従って、コード生成処理部12は、演算順序を含む生成ルールに基づいてプログラムコードを生成することになる。
制御モデル20は、抽象化言語で記述されたものであり、例えば、図3等に示すように、各制御間のパラメータの動きを示したものである。この制御モデル20には、図1や図3等に示すように、変数28や定数29等のパラメータに対して各種演算を対応付けた加減算ブロック21、乗除算ブロック22、三角関数ブロック23等が記述される。
なお、図2はプログラムコード生成作業の手順を示す説明図である。
そして、これらの条件が入力されたか否かを判定する(S240)。これらの条件が入力されていなければ(S240:NO)、S240の処理を繰り返し、これらの条件が入力されていれば(S240:YES)、制御モデル20に記述された演算ブロックのうちの1つを選択する(S250)。
まだ演算順序を設定していない演算ブロックがあれば(S290:NO)、演算順序を選択していないブロックの1つを選択し(S300)、S260に戻る。
そして、この演算ブロックに関する演算内容と演算順序とを抽出エンジン11に抽出させ、この演算順序を含む生成ルールに従って、この演算ブロックに関する演算を実施する(S320)。
この演算判定処理については、図6を用いて詳しく説明する。なお、図6(a)は演算ブロックと演算ブロックに入力される各種数値との対応関係を示す模式図、図6(b)はシミュレーション処理部13が実行する精度判定処理を示すフローチャートである。
次いで、k=n−1であるか否かを判定する(S580)。k=n−1であれば(S580:YES)、演算精度判定処理を終了し、k=n−1でなければ(S580:NO)、kをインクリメントし(S590)、S550の処理に戻る。
この演算順序変更処理は、a(k+1)で演算精度判定で警告が発生した場合に、このa(k+1)の演算順序を演算精度判定で警告が発生しないa(j)の演算順序と入れ替えて、演算精度の向上を図る処理である。
そして、k=nであるか否かを判定する(S720)。k=nであれば(S720:YES)、演算順序変更処理を終了する。
|b(k)+a(j)| / MAX(|b(k)|:|a(j)|) < βでなければ(S750:NO)、a(k+1)とa(j)との演算順序を入れ替える(S790)。なお、S790の処理が実行されると、演算ブロックに対応して記憶されている演算順序が変更される。その後、b(k+1) に b(k) + a(k+1) を設定し(S80 0)、kをインクリメントし(S810)、S720に戻る。
一方、全ての演算ブロックを選択していれば(S380:YES)、シミュレーション処理の結果を表示し(S400)、当該シミュレーション処理を終了する。
そして、プログラムコード生成処理が終了すると、コード生成処理部12は、生成したプログラムコードをコンパイラ・リンカ31を介してECUのフラッシュROM32に記録し(S160)、プログラムコード作成作業は終了する。
また、本実施形態のプログラムコード生成装置1においては、各種設定入力部52を介して精度悪化の警告の表示形態を予め設定された選択肢の中から設定可能に構成され、プログラムコード生成装置1の記憶装置には各種設定入力部52により入力された設定内容を記憶可能に構成されている。そして、プログラムコード生成装置1は、シミュレーション処理のS400にて、記憶装置に記憶された設定内容に基づいて精度悪化の警告を出力する。
さらに、プログラムコード生成装置1においては、シミュレーション処理の作動前に最適化処理(S120)を実行し、この最適化処理にて、制御モデル20に同じ種類の演算ブロックが連続して記述されているか否かを判定し、同じ種類の演算ブロックが連続して記述されていれば、これらの演算ブロックを1つの演算ブロックとして集約して記述し直す。
なお、本発明の実施の形態は、上記の実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。
続いて、a(1)〜a(n)の各パラメータのうち、「正」に分類されたものを絶対値の小さなものから順に加算したSpを算出する(S930)。
次いで、Spの絶対値(|Sp|)がSmの絶対値(|Sm|)以上であるかを判定する(S950)。|Sp|≧|Sm|であれば(S950:YES)、「正」に分類されたものを絶対値の小さなものから並べ、その後、「負」に分類されたものを絶対値の大きなものから並べた演算順序を設定する(S960)。一方、|Sp|<|Sm|であれば(S950:NO)、「負」に分類されたものを絶対値の小さなものから並べ、その後、「正」に分類されたものを絶対値の大きなものから並べた演算順序を設定する(S970)。そして、当該演算順序変更処理を終了する。
Claims (12)
- 各種パラメータを入力し該各種パラメータの入力順に該各種パラメータに対応する各種演算を行うよう設定された演算ブロックを含む制御モデルが記述されると、電子制御装置に搭載される制御プログラムに用いられるプログラムコードを生成するための生成ルールに基づいて、前記記述された制御モデルに対応するプログラムコードを前記各種パラメータの入力順に生成する生成手段を備えたプログラムコード生成装置であって、
前記演算ブロックにおいて前記各種演算の演算順序を入力するための演算順序入力手段と、
前記演算順序入力手段により入力された演算順序を前記各種パラメータに関連付けて記憶する演算順序記憶手段と、
を備え、
前記生成手段は、前記演算順序記憶手段に記憶された演算順序を前記入力順として、プログラムコードを生成すること
を特徴とするプログラムコード生成装置。 - 前記生成手段の作動前に、前記演算順序記憶手段に記憶された演算順序に従って、前記生成手段により生成されるプログラムコードの内容を検証するシミュレーション手段を備えたこと
を特徴とする請求項1に記載のプログラムコード生成装置。 - 前記演算ブロックには、入力されたパラメータ同士を加減算する加減算ブロックを備え、
前記シミュレーション手段が前記加減算ブロックにて加減算するパラメータ同士のレンジの差が、予め設定された閾値よりも大きい場合に、前記加減算ブロックでの演算精度の悪化を警告する第1警告手段を備えたこと
を特徴とする請求項2に記載のプログラムコード生成装置。 - 前記演算ブロックには、入力された数値同士を加減算する加減算ブロックを備え、
前記シミュレーション手段が前記加減算ブロックにて加減算する前後で前記各種パラメータの値のレンジの差が、予め設定された閾値よりも大きく変化した場合に、この加減算ブロックでの演算精度の悪化を警告する第2警告手段を備えたこと
を特徴とする請求項2に記載のプログラムコード生成装置。 - 前記閾値を入力するための閾値入力手段と、
前記閾値入力手段を介して入力された閾値を記憶する閾値記憶手段と、
を備え、
前記各警告手段は、前記閾値記憶手段に記憶された閾値を参照して演算精度の悪化の判定を行うこと
を特徴とする請求項3または請求項4に記載のプログラムコード生成装置。 - 当該プログラムコード生成装置は、浮動小数点演算を実施するとともに、
浮動小数点演算が単精度で実施されるか倍精度で実施されるかを判定し、判定結果に応じて予め設定された閾値を前記各警告手段が参照する閾値として設定する閾値設定手段を備えたこと
を特徴とする請求項3または請求項4に記載のプログラムコード生成装置。 - 前記各警告手段による精度悪化の警告の表示形態を予め設定された選択肢の中から設定するための警告内容設定入力手段と、
前記警告内容設定入力手段により入力された設定内容を記憶する警告内容設定記憶手段と、
前記警告内容設定記憶手段に記憶された設定内容に基づいて精度悪化の警告を出力する警告出力手段と、
を備えたことを特徴とする請求項3〜請求項6の何れかに記載のプログラムコード生成装置。 - 前記警告手段が加減算ブロックでの演算精度の悪化を警告した場合に、前記演算順序記憶手段に記憶された演算順序を予め設定された規則に基づいて変更する演算順序変更手段を備えたこと
を特徴とする請求項3〜請求項7の何れかに記載のプログラムコード生成装置。 - 前記演算順序変更手段は、前記演算ブロックに入力される各種パラメータ同士の大小関係に基づいて前記演算順序記憶手段に記憶された演算順序を変更すること
を特徴とする請求項8に記載のプログラムコード生成装置。 - 前記シミュレーション手段の作動前に、前記制御モデルに同じ種類の演算ブロックが連続して記述されているか否かを判定し、同じ種類の演算ブロックが連続して記述されていれば、これらの演算ブロックを1つの演算ブロックとして集約して記述し直す集約手段を備えたこと
を特徴とする請求項2〜請求項9の何れかに記載のプログラムコード生成装置。 - 電子制御装置に搭載される制御プログラムを生成するために用いられ、少なくとも入力されたパラメータ同士を加減算するための加減算ブロックを含む制御モデルが入力されると、プログラムコード生成のための生成ルールを用いて前記入力された制御モデルに対応するプログラムコードを生成する生成手段を備えたプログラムコード生成装置であって、
前記生成手段の作動前に、前記生成手段により生成されるプログラムコードの内容を検証するシミュレーション手段と、
前記シミュレーション手段が前記加減算ブロックにて加減算するパラメータ同士のレンジの差が、予め設定された閾値よりも大きい場合には、前記加減算ブロックでの演算精度の悪化を警告する第1警告手段と、
を備えたことを特徴とするプログラムコード生成装置。 - 電子制御装置に搭載される制御プログラムを生成するために用いられ、少なくとも入力されたパラメータ同士を加減算するための加減算ブロックを含む制御モデルが入力されると、プログラムコード生成のための生成ルールを用いて前記入力された制御モデルに対応するプログラムコードを生成する生成手段を備えたプログラムコード生成装置であって、
前記生成手段の作動前に、前記生成手段により生成されるプログラムコードの内容を検証するシミュレーション手段と、
前記シミュレーション手段が前記加減算ブロックにて加減算する前後で前記各種パラメータの値のレンジの差が、予め設定された閾値よりも大きく変化した場合には、この加減算ブロックでの演算精度の悪化を警告する第2警告手段と、
を備えたことを特徴とするプログラムコード生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006033875A JP4887814B2 (ja) | 2006-02-10 | 2006-02-10 | プログラムコード生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006033875A JP4887814B2 (ja) | 2006-02-10 | 2006-02-10 | プログラムコード生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007213402A true JP2007213402A (ja) | 2007-08-23 |
JP4887814B2 JP4887814B2 (ja) | 2012-02-29 |
Family
ID=38491765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006033875A Expired - Fee Related JP4887814B2 (ja) | 2006-02-10 | 2006-02-10 | プログラムコード生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4887814B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011209839A (ja) * | 2010-03-29 | 2011-10-20 | Fuji Electric Co Ltd | プログラム自動生成装置 |
US9513875B2 (en) | 2011-11-22 | 2016-12-06 | International Business Machines Corporation | Processing instruction information |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5848141A (ja) * | 1981-09-16 | 1983-03-22 | Fujitsu Ltd | 桁落ち自動検出方式 |
JPH0357001A (ja) * | 1989-07-25 | 1991-03-12 | Yaskawa Electric Mfg Co Ltd | プログラミング方式 |
JPH04229324A (ja) * | 1990-12-27 | 1992-08-18 | Nec Corp | 誤差評価プログラム生成実行方式 |
JPH10124115A (ja) * | 1996-10-15 | 1998-05-15 | Shimadzu Corp | プログラム作成支援装置およびプログラム作成支援用プログラムを記録した記憶媒体 |
JP2005250955A (ja) * | 2004-03-05 | 2005-09-15 | Mitsubishi Heavy Ind Ltd | プログラム変更方法 |
-
2006
- 2006-02-10 JP JP2006033875A patent/JP4887814B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5848141A (ja) * | 1981-09-16 | 1983-03-22 | Fujitsu Ltd | 桁落ち自動検出方式 |
JPH0357001A (ja) * | 1989-07-25 | 1991-03-12 | Yaskawa Electric Mfg Co Ltd | プログラミング方式 |
JPH04229324A (ja) * | 1990-12-27 | 1992-08-18 | Nec Corp | 誤差評価プログラム生成実行方式 |
JPH10124115A (ja) * | 1996-10-15 | 1998-05-15 | Shimadzu Corp | プログラム作成支援装置およびプログラム作成支援用プログラムを記録した記憶媒体 |
JP2005250955A (ja) * | 2004-03-05 | 2005-09-15 | Mitsubishi Heavy Ind Ltd | プログラム変更方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011209839A (ja) * | 2010-03-29 | 2011-10-20 | Fuji Electric Co Ltd | プログラム自動生成装置 |
US9513875B2 (en) | 2011-11-22 | 2016-12-06 | International Business Machines Corporation | Processing instruction information |
Also Published As
Publication number | Publication date |
---|---|
JP4887814B2 (ja) | 2012-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10318290B2 (en) | Merged floating point operation using a modebit | |
US9146901B2 (en) | Vector floating point argument reduction | |
JPWO2019241428A5 (ja) | ||
JP4345772B2 (ja) | 文書編集装置、プログラムおよび記憶媒体 | |
JP6756379B2 (ja) | ログ分析方法、システムおよびプログラム | |
WO2020136859A1 (ja) | 推定装置、推定方法、及びコンピュータ読み取り可能な記録媒体 | |
JP4887814B2 (ja) | プログラムコード生成装置 | |
JP5589919B2 (ja) | 設計支援装置、設計支援プログラム | |
CN107808336B (zh) | 一种财务指标的计算方法及装置 | |
WO2020148838A1 (ja) | 推定装置、推定方法、及びコンピュータ読み取り可能な記録媒体 | |
US10438093B2 (en) | Software development test platform and associated method for evaluating visual output generated by execution of computer software | |
CN110516333A (zh) | 一种pcb中的器件布局方法、装置、设备及可读存储介质 | |
JP2015005228A (ja) | カーソル移動制御装置、そのプログラム | |
JP2008009869A (ja) | プログラムコード生成装置 | |
KR20110106114A (ko) | 레지스터, 프로세서 및 프로세서 제어 방법 | |
JP7192914B2 (ja) | 計算装置、計算支援方法及びプログラム | |
JP5530417B2 (ja) | コントローラ開発ツール | |
JP2020077218A (ja) | 解析モデル生成装置及びプログラム | |
JP5602273B1 (ja) | 電力系統シミュレータならびに電力系統のシミュレーションプログラムおよびシミュレーション方法 | |
JP2007219586A (ja) | ソースコード解析装置 | |
JP2016115189A (ja) | コード生成装置、コード生成プログラムおよびコード生成方法 | |
JP2014130627A (ja) | コントローラ開発ツールとそれを利用して開発したモータドライブシステムを有する機器 | |
US11036503B2 (en) | Predicate indicator generation for vector processing operations | |
JP2009187492A (ja) | 演算機能を備えた電子装置および演算処理プログラム | |
JP2016081331A (ja) | 検算機能付き電子式計算機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080408 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110330 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110830 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111018 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111115 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111128 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4887814 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141222 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |