JP2015043140A - ソースコード生成装置 - Google Patents
ソースコード生成装置 Download PDFInfo
- Publication number
- JP2015043140A JP2015043140A JP2013174434A JP2013174434A JP2015043140A JP 2015043140 A JP2015043140 A JP 2015043140A JP 2013174434 A JP2013174434 A JP 2013174434A JP 2013174434 A JP2013174434 A JP 2013174434A JP 2015043140 A JP2015043140 A JP 2015043140A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- candidate
- source code
- description
- candidate selection
- 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
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
図26に示す状態遷移表は、状態がS1とS2とS3の3つ、イベントがE1とE2の2つ、アクションがAction1とAction2とAction3の3つ存在する。状態遷移表では、状態とイベントからアクションと状態の遷移先が決定する。例えば、図26において、状態がS1でイベントE1が発生したとき、Action1が実行され、S3へ遷移する。ここで、状態S2における”/”はアクション或いは状態の遷移先が存在しない、即ち状態が遷移しないことを、状態S3のイベントE2における”×”は、起こりえないこと(この例では、状態S3においてイベントE2が起こりえないこと)を指す。このように、状態とイベントとの組み合わせに対し、アクションと状態の遷移先とをそれぞれ定義することができるため、組込みシステムの設計に広く用いられている。
図1は、この発明の実施の形態1によるソースコード生成装置を示す構成図である。
図1に示すソースコード生成装置は、処理一覧表1とコード生成部2を備えている。
また、図2は、この発明のソースコード生成装置100を実現するためのハードウェア構成図であり、表示装置101と、入力装置102と、CPU103と、主記憶装置104と、補助記憶装置105とを備える。
処理対象記述列10は、各状態において行われうる処理について、処理対象の一覧を格納する列である。図3の例では、処理対象記述列10にVAR1、VAR2、VAR3の3つが格納されている。これは、3つの変数VAR1、VAR2、VAR3が処理の対象であることを示している。
処理候補記述列11は、処理対象記述列10に記述された各々の処理対象に対して、処理の候補を格納する列である。図3の例では、VAR1およびVAR2には候補0と1が、VAR3には候補0と1と2が格納されている。これは、2つの変数VAR1、VAR2のとり得る値が0或いは1の2値であり、VAR3は0と1と2の3値をとり得ることを示している。
処理候補選択シンボル15は、各処理対象の状態ごとの処理候補を決定する。このため、処理候補選択マス14において、2つ以上の処理候補選択シンボル15を記述してはならない。
表情報設定部3は、表走査部4が処理一覧表1を走査するために必要な情報を設定する。図4は、表走査部4が処理一覧表1を走査するときの順序を矢印で示した図である。処理一覧表1の走査は、走査開始位置16から開始して一列ずつ走査していき、走査終端行17に到達すると、次の列へと移り、これをすべての列の走査が完了するまで繰り返す。
処理一覧表1の行数および列数は、開発するシステムに依存する。このため、処理一覧表1を走査するには、以下に示す情報を取得する必要がある。ここで、括弧内の値は、図4の例における行或いは列の値である。
・関数情報記述行13の存在する行 (1、2行)
・走査開始位置16の位置 (3行3列)
・処理対象記述列10の存在する列 (1列)
・処理候補記述列11の存在する列 (2列)
・処理候補選択列12の存在する列の範囲 (3−5列)
・走査終端行17の行 (9行)
処理候補選択列12を一列ずつ走査するとき、処理対象記述列10の存在する列および処理候補記述列11の存在する列の情報から、現在走査中の行における処理対象および候補を取得することができる。一列ずつ走査していき、処理候補選択シンボル15が得られれば、処理候補選択マス14における処理が決定し、処理候補選択シンボル15が得られなければ、走査の対象を次の行へと移す。
ソースコード生成装置では、最初に表情報設定部3がステップST1で処理一覧表1の情報を設定する。ステップST2では、表走査部4が、処理一覧表1において走査していない列が存在するか否か判断し、存在すれば列の走査に移り、存在しなければステップST8で生成されたコードをコード出力部8から出力した後、処理を完了する。ステップST3では、関数名取得部5が上記で示した方法により関数名を取得する。ステップST4では、処理取得部6および候補取得部7が、現在走査中の行が列の最終行であるか否かを判断する。最終行であれば、ステップST7で現在走査中の列に対応する関数の生成を完了し、次の列へ移る。最終行でなければ、ステップST5で処理取得部6および候補取得部7によって処理対象および処理候補を取得して、上記で示した方法により代入文を生成し、ステップST6で次の行へと移る。
なお、これまで処理対象および候補の例として変数への値設定を扱ったが、これは、処理を変数への値設定に限定するものではない。想定される処理には、変数への値設定の他に、関数呼び出しや算術・論理演算が挙げられる。
なお、生成する関数について、局所変数の宣言や引数の指定などの処理が必要であれば、関数情報記述行13へ情報を記述しておき、コード生成部2が参照できるようにすれば良い。
実施の形態1に係るソースコード生成装置では、処理候補選択マス14において処理候補選択シンボル15を1つのみ選択していた。即ち、処理対象1つに対して、1つの状態で選択できる処理候補は1つに限定されていた。これに対し、条件に応じて複数の処理候補を選択して処理することができるようにしてもよく、これを実施の形態2として以下説明する。
最初にステップST11で、表走査部4aは処理候補選択マス14から1行読み取り、条件が存在するか否か判断する。条件が存在しなければ、ステップST15へ移り、存在すれば、ステップST12へ移る。ステップST12では、条件取得部19が、条件の組み合わせ、即ち新条件作成シンボル21が存在するか否か判断する。存在すればステップST13へ移り、存在しなければ、新条件作成シンボル21を展開する必要がないためステップST14へ移る。ステップST13およびステップST14では、上記で示した方法により、条件の組み合わせを展開し、条件管理表18から条件を取得する。ステップST15では、処理候補選択マス14の最後まで走査したか否かを判断し、最後でなければ、ステップST11へと遷移し、最後であればステップST16で、コード出力部8がプログラムを生成し、表走査部4aは現在走査中の処理候補選択マス14の走査を完了する。
実施の形態1または実施の形態2に係るソースコード生成装置では、処理対象記述列10へ処理対象を列挙し、各々の処理対象に対して状態ごとに処理候補選択マス14を持つ。そのため、アクションに抜けが存在する、即ち、処理候補選択シンボル15の存在しない処理候補選択マス14が存在すれば、目視により容易に検出することができた。しかしながら、処理候補選択マス14の個数は、処理対象の数および処理候補選択列12の列数に比例して増加する。そのため、処理対象の数および処理候補選択列12の列数が多いとき、即ち、処理候補選択マス14の個数が多いときは誤りを自動で検出することが望ましい。本実施の形態に係るソースコード生成装置では、表走査部4aが当該誤り検出機能を備える。尚、ソースコード生成装置としての図面上の構成は実施の形態1または実施の形態2と同様であるため、ここでは実施の形態2の構成を例として説明する。
上記各実施の形態では、何れも処理一覧表1(1a)を用いてコード生成部2(2a)がプログラムコード9を生成していた。しかしながら、プログラムコード9を直接生成せず、従来の状態遷移表におけるアクション記述を生成してもよく、これを実施の形態4として以下説明する。
アクション生成部2bは、処理一覧表1bに基づいてアクション記述32を出力するもので、表情報設定部3bと表走査部4bとコード出力部8とを備える。表情報設定部3bは、処理一覧表1bにおけるすべての処理候補選択列12を走査するために必要な処理一覧表1bの情報を設定する。表走査部4bは、処理取得部6と候補取得部7とを備えている。即ち、処理取得部6は、表情報設定部3bが設定した情報に基づいて走査を行い、処理対象記述列10からアクションに対応した処理対象を取得し、候補取得部7は、表情報設定部3bが設定した情報に基づいて走査を行い、処理候補記述列11からアクションに対応した処理の候補を取得する。また、コード出力部8は、表走査部4bが取得したアクションと処理対象と処理の候補とからアクション記述32を生成する。
このようにアクション生成部2bが処理一覧表1bを入力としてアクション記述32を生成し、このアクション記述32と遷移情報34とをソースコード生成ツール33への入力とする。
実施の形態1では、生成されるプログラムコード9を記述するプログラミング言語は一種類に限定されていた。しかしながら、プログラミング言語ごとに記述方法等の情報をさらに備えることで、プログラミング言語を一種類に限定せず、複数の言語から選択できるようになる。本実施の形態に係るソースコード生成装置は、当該機能を備える。
Claims (7)
- 内部に状態を持ち、イベントの発生によって処理を行い、状態を遷移するシステムにおいて、前記処理の対象を処理対象として格納する処理対象記述列と、
前記処理対象に対する処理の候補を格納する処理候補記述列と、
前記状態を記述する関数情報記述行と、
前記関数情報記述行に記述された状態に対し前記処理対象記述列に記述された処理の候補を前記処理候補記述列から選択するための処理候補選択マスと、
前記処理候補選択マスにおいて前記処理候補記述列から選択した候補を示す処理候補選択シンボルからなる処理候補選択列とを有する処理一覧表を用いると共に、
前記処理一覧表の前記処理候補選択列におけるすべての処理候補選択マスを走査するために必要な情報を設定する表情報設定部と、
前記処理一覧表における前記関数情報記述行から生成するソースコードの状態情報を取得する関数名取得部と、
前記表情報設定部が設定した情報に基づいて走査を行い、前記処理一覧表における前記処理対象記述列から前記処理候補選択シンボルで示す処理対象を取得する処理取得部と、
前記表情報設定部が設定した情報に基づいて走査を行い、前記処理一覧表における前記処理候補記述列から前記処理候補選択シンボルで示す前記処理の候補を取得する候補取得部とからなる表走査部と、
前記表走査部が取得したソースコードの状態情報と前記処理対象と前記処理の候補とからソースコードを生成するコード出力部とを備えたことを特徴とするソースコード生成装置。 - 前記処理一覧表は、前記状態に対して与えられる条件成立時の候補を選択するための条件付処理候補選択シンボルを有し、
かつ、
前記条件付処理候補選択シンボルの条件を記述する条件記述列を有する条件管理表を備え、
前記表走査部は、前記条件管理表から条件を取得するための条件取得部を有し、当該条件取得部で取得した条件に一致する条件付処理候補選択シンボルの処理対象と処理の候補とを取得することを特徴とする請求項1記載のソースコード生成装置。 - 前記処理一覧表は、前記条件付処理候補選択シンボルを複数組み合わせて新たな条件を作成する新条件作成シンボルを有し、
前記表走査部は、前記新条件作成シンボルに一致する処理対象と処理の候補とを取得することを特徴とする請求項2記載のソースコード生成装置。 - 表走査部は、1つの処理対象の処理候補選択マス中に存在する処理候補選択シンボルの個数が1以外であった場合は、処理一覧表に誤りがあると判定することを特徴とする請求項1から請求項3のうちのいずれか1項記載のソースコード生成装置。
- 表走査部は、処理一覧表を走査した結果、一度も選択されていない処理の候補が存在する場合は、処理一覧表に誤りがあると判定することを特徴とする請求項1から請求項3のうちのいずれか1項記載のソースコード生成装置。
- 内部に状態を持ち、イベントの発生によって処理を行い、状態を遷移するシステムにおいて、前記処理の対象を処理対象として格納する処理対象記述列と、
前記処理対象記述列に記述された前記処理対象に対する処理の候補を格納する処理候補記述列と、
前記システムのアクションを記述する処理候補選択列とを有する処理一覧表を用いると共に、
前記処理一覧表におけるすべての前記処理候補選択列を走査するために必要な情報を設定する表情報設定部と、
前記表情報設定部が設定した情報に基づいて走査を行い、前記処理対象記述列から前記アクションに対応した処理対象を取得する処理取得部と、
前記表情報設定部が設定した情報に基づいて走査を行い、前記処理候補記述列から前記アクションに対応した処理の候補を取得する候補取得部とからなる表走査部と、
前記表走査部が取得した前記アクションと前記処理対象と前記処理の候補とからアクション記述を生成するコード出力部と、
前記アクション記述と、前記状態および前記イベントを記述した遷移情報とからソースコードを生成するソースコード生成部とを備えたソースコード生成装置。 - プログラミング言語ごとのソースコードの記述方法を保持する言語データベースと、
表走査部が取得した情報に対応して生成するソースコードを記述するプログラミング言語を決定し、当該決定したプログラミング言語で前記ソースコードを記述する際に必要となる情報を言語データベースから取得し、当該取得した情報をコード出力部の入力として出力する言語情報取得部を備えたことを特徴とする請求項1から請求項5のうちのいずれか1項記載のソースコード生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013174434A JP6037976B2 (ja) | 2013-08-26 | 2013-08-26 | ソースコード生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013174434A JP6037976B2 (ja) | 2013-08-26 | 2013-08-26 | ソースコード生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015043140A true JP2015043140A (ja) | 2015-03-05 |
JP6037976B2 JP6037976B2 (ja) | 2016-12-07 |
Family
ID=52696645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013174434A Expired - Fee Related JP6037976B2 (ja) | 2013-08-26 | 2013-08-26 | ソースコード生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6037976B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7208441B1 (ja) * | 2021-12-22 | 2023-01-18 | 三菱電機株式会社 | Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム |
CN115904855A (zh) * | 2023-03-02 | 2023-04-04 | 上海合见工业软件集团有限公司 | 基于信号动态追踪确定目标驱动源码的系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04352029A (ja) * | 1991-05-29 | 1992-12-07 | Hitachi Ltd | ソースプログラム自動生成装置 |
-
2013
- 2013-08-26 JP JP2013174434A patent/JP6037976B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04352029A (ja) * | 1991-05-29 | 1992-12-07 | Hitachi Ltd | ソースプログラム自動生成装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7208441B1 (ja) * | 2021-12-22 | 2023-01-18 | 三菱電機株式会社 | Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム |
CN115904855A (zh) * | 2023-03-02 | 2023-04-04 | 上海合见工业软件集团有限公司 | 基于信号动态追踪确定目标驱动源码的系统 |
Also Published As
Publication number | Publication date |
---|---|
JP6037976B2 (ja) | 2016-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6928552B2 (ja) | 影響分析 | |
US9904524B2 (en) | Method and device for visually implementing software code | |
US10241852B2 (en) | Automated qualification of a safety critical system | |
US8423879B2 (en) | Method and apparatus for test generation from hybrid diagrams with combined data flow and statechart notation | |
US9021440B1 (en) | System and method for automated test script generation | |
JP2020510925A (ja) | テストケースを利用してテストを遂行する方法および装置 | |
US8719745B2 (en) | Method and system for automatically establishing hierarchical parameterized cell (PCELL) debugging environment | |
KR20130135271A (ko) | 코드 복제 통지 및 아키텍처 변경 가시화 | |
Yadav | Improvement in the V-Model | |
US8141082B2 (en) | Node-based representation of multi-threaded computing environment tasks, and node-based data race evaluation | |
JP2017004281A (ja) | コンパイルプログラム、およびコンパイル方法 | |
US20140214396A1 (en) | Specification properties creation for a visual model of a system | |
JP2016115175A (ja) | ソフトウェアテスト装置およびソフトウェアテストプログラム | |
US20210263833A1 (en) | Code Generation Platform with Debugger | |
US20130212565A1 (en) | Application analysis method, analysis system and recording medium | |
US9395977B2 (en) | Locating program code units after software refactoring | |
JP6037976B2 (ja) | ソースコード生成装置 | |
US11188307B2 (en) | Modelizing resources and external data of a program for procedural language coding | |
Kim et al. | A study on test case generation based on state diagram in modeling and simulation environment | |
Gelen et al. | ‘Computation of the number of legal states for Petri net-based deadlock prevention problems | |
Hossain et al. | Autogeneration of simulation network of the design process | |
Yeung et al. | Modelling and model checking suspendible business processes via statechart diagrams and CSP | |
Straszak et al. | Model-driven acceptance test automation based on use cases | |
Kistner et al. | Moonstone: Support for understanding and writing exception handling code | |
CN101336413A (zh) | 编译时可解释代码检错 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151021 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160720 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160726 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160909 |
|
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: 20161004 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161101 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6037976 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |