JP5275087B2 - Program generating apparatus and block diagram generating apparatus - Google Patents

Program generating apparatus and block diagram generating apparatus Download PDF

Info

Publication number
JP5275087B2
JP5275087B2 JP2009048455A JP2009048455A JP5275087B2 JP 5275087 B2 JP5275087 B2 JP 5275087B2 JP 2009048455 A JP2009048455 A JP 2009048455A JP 2009048455 A JP2009048455 A JP 2009048455A JP 5275087 B2 JP5275087 B2 JP 5275087B2
Authority
JP
Japan
Prior art keywords
block diagram
block
branch point
branch
program
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.)
Active
Application number
JP2009048455A
Other languages
Japanese (ja)
Other versions
JP2010204855A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2009048455A priority Critical patent/JP5275087B2/en
Publication of JP2010204855A publication Critical patent/JP2010204855A/en
Application granted granted Critical
Publication of JP5275087B2 publication Critical patent/JP5275087B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a program generation device and a block diagram generation device, for generating a program so as not to unnecessarily increasing the number of program instructions even in the case of a block diagram having a multiple branch, and maintaining original visual representation of the block diagram as a figure for restoration. <P>SOLUTION: The program generation device includes: a means reading a block diagram having at least two branch points; a means dividing the block diagram at each branch point to generate a plurality of block diagram pieces; a means generating structure information of the plurality of block diagram pieces; a means generating program instructions for processing a plurality of first block diagram pieces; and a program generation means arranging each program instruction, describing the structure information of each first block diagram piece in a comment line of the program instruction corresponding to each first block diagram piece, and describing the structure information of a second block diagram piece in any comment line of the program instructions to generate the program. <P>COPYRIGHT: (C)2010,JPO&amp;INPIT

Description

本発明はたとえばモデルベース開発ツールに利用可能なプログラム生成装置およびブロック線図生成装置に関する。   The present invention relates to a program generation apparatus and a block diagram generation apparatus that can be used for a model-based development tool, for example.

ソフトウェアの開発においてモデルベース設計/開発と呼ばれる手法が存在する。モデルベース設計/開発とはモデルを用いてソフトウェアの設計を行い、そのモデルに基づいてソフトウェアの開発を行う方法のことである。   There is a technique called model-based design / development in software development. Model-based design / development is a method of designing software using a model and developing software based on the model.

中でも、制御系ソフトウェアのモデルベース設計とはブロック線図を用いて制御系設計およびシミュレーションを行い、ソフトウェアの開発を行う方法をいう。制御ソフトウェアのモデルベース設計/開発を支援するためにブロック線図からソフトウェアのソースコードを生成するツールがいくつか知られている(たとえば非特許文献1、2を参照)。   In particular, model-based design of control system software refers to a method of developing software by performing control system design and simulation using a block diagram. Several tools are known that generate software source code from a block diagram to support model-based design / development of control software (see, for example, Non-Patent Documents 1 and 2).

制御系ソフトウェアの開発においてはソースコードの再利用が一般的に行われる。ブロック線図を用いたモデルベース設計/開発においてソースコードの再利用を行う場合,ソースコードとは別にモデル(ブロック線図)も管理しておく必要があった。   In the development of control system software, the reuse of source code is generally performed. When reusing source code in model-based design / development using block diagrams, it was necessary to manage the model (block diagram) separately from the source code.

http://www.cybernet.co.jp/matlab/products/product_listing/rtwembedded/http://www.cybernet.co.jp/matlab/products/product_listing/rtwembedded/ http://www.dspace.jp/ww/ja/jap/home/products/sw/pcgs/targetli.cfmhttp://www.dspace.jp/ww/ja/jap/home/products/sw/pcgs/targetli.cfm

本件出願人により以前に出願された特願2008-021342号では、ブロック線図からソースコードを生成する際にブロック線図の構造情報をコメントとしてソースコードに付加するプログラム生成装置と、その構造情報を用いてブロック線図を生成(復元)するブロック線図生成装置とが示され、これによりモデルとソースコードの一元管理が実現されている。この方法においては、ブロック線図を分岐点で入力側片と出力側片とに分割し、各分割片(入力側片および出力側片)に対応してプログラム命令をそれぞれ生成し、各プログラム命令のコメント行に各分岐片の構造情報を記述し、これによりプログラムを生成する。構造情報は、分岐片に含まれるブロック要素およびその属性、ならびにブロック要素間のデータ線による接続関係を含む。ブロック線図生成の際は、プログラムのコメント行から、構造情報を読み出し、読み出した構造情報に基づきブロック線図を復元する。   In Japanese Patent Application No. 2008-021342 previously filed by the applicant of the present application, when generating source code from a block diagram, a program generator for adding the structure information of the block diagram to the source code as a comment, and its structure information A block diagram generating device that generates (restores) a block diagram using the above is shown, and thereby unified management of models and source codes is realized. In this method, the block diagram is divided into an input side piece and an output side piece at a branch point, and program instructions are generated for each divided piece (input side piece and output side piece). In the comment line, the structure information of each branch piece is described, thereby generating a program. The structure information includes block elements included in the branch piece and their attributes, and connection relationships between the block elements by data lines. When generating the block diagram, the structure information is read from the comment line of the program, and the block diagram is restored based on the read structure information.

しかし、上記方法では、2つ以上の連続した分岐点によってデータ線が3つ以上に分岐される多重分岐を含むブロック線図からプログラムを生成する場合、不必要にプログラム命令数が多くなる問題がある。すなわち、多重分岐を含むブロック線図の場合、2つの分岐点と、当該2つの分岐点間を接続するデータ線とを含む分岐片が生成されるが、この分岐片に対応するプログラム命令は、単に変数の入替えを行うのみであるため、処理効率の低下につながる。   However, in the above method, there is a problem that the number of program instructions is unnecessarily increased when a program is generated from a block diagram including multiple branches in which data lines are branched into three or more by two or more consecutive branch points. is there. That is, in the case of a block diagram including multiple branches, a branch piece including two branch points and a data line connecting the two branch points is generated. A program instruction corresponding to the branch piece is Since only variable substitution is performed, processing efficiency is reduced.

また、上記方法では、多重分岐のブロック線図の場合、各ブロック要素の位置およびデータ線の折れ曲がる位置等の座標情報、ならびに連続した分岐点における分岐の順序等の情報は復元されない。そのため、構造情報から復元されたブロック線図は元のブロック線図と論理的には同一のモデルであっても、図としての表現(視覚的な表現)は異なるものであった。そのため、制御設計者にとって復元されたモデルを直感的に理解することが困難になる等の問題があった。   Further, in the above method, in the case of a multi-branch block diagram, the coordinate information such as the position of each block element and the position where the data line is bent, and the information such as the order of branches at successive branch points are not restored. Therefore, even if the block diagram restored from the structural information is logically the same model as the original block diagram, the representation (visual representation) as a diagram is different. Therefore, there has been a problem that it becomes difficult for the control designer to intuitively understand the restored model.

本発明は、多重分岐をもつブロック線図の場合であってもプログラム命令数が不必要に多くならないようにプログラムを生成し、また、元のブロック線図の図としての表現(視覚的な表現)を維持して復元できるようにした、プログラム生成装置およびブロック線図生成装置を提供する。   The present invention generates a program so that the number of program instructions is not unnecessarily large even in the case of a block diagram having multiple branches, and also represents the original block diagram as a diagram (visual representation). ) Is maintained and restored, and a program generator and a block diagram generator are provided.

本発明の一態様としてのプログラム生成装置は、
入力ブロック要素と、演算ブロック要素と、出力ブロック要素と、前記入力ブロック要素、前記演算ブロック要素および前記出力ブロック要素間のデータの流れを示すデータ線と、前記データ線のうちの1つである第1のデータ線を3つ以上のデータ線に多重分岐する少なくとも2つの分岐点と、を有するブロック線図を読み出すブロック線図読出手段と、
各前記分岐点にそれぞれ一意の識別子を付与する識別子付与手段と、
各前記分岐点で前記ブロック線図を入力側片と1つ以上の出力片側へ分割し、さらに各前記分岐点にそれぞれ接続されていた複数のデータ線の一端に各前記分岐点のそれぞれの識別子をもつ分岐点ブロック要素を接続することにより複数のブロック線図片を生成するブロック線図分割手段と、
前記複数のブロック線図片の構造情報をそれぞれ生成する構造情報生成手段と、
前記複数のブロック線図片のうち、少なくとも入力ブロック要素と、演算ブロック要素と、出力ブロック要素のいずれかをもつブロック線図片である複数の第1のブロック線図片の処理を実現するプログラム命令を、前記複数の第1のブロック線図片において前記多重分岐をなす各前記分岐点から派生した前記分岐点ブロック要素がすべて同一の変数により表されるように生成するプログラム命令生成手段と、
前記多重分岐をなす前記分岐点のうち最も入力側の分岐点での分割により得られた前記入力側片を含む前記第1のブロック線図片から生成されたプログラム命令が、他の残りの前記第1のブロック線図片から生成されたプログラム命令よりも先に実行されるように各前記プログラム命令の実行順序を決定する実行順序決定手段と、
決定された実行順序に従って各前記プログラム命令を配置し、各前記第1のブロック線図片の構造情報を各前記第1のブロック線図片に対応するプログラム命令のコメント行に記述し、前記複数のブロック線図片のうち前記第1のブロック線図片以外の残りのすべてのブロック線図片である、複数の前記分岐点ブロック要素と前記データ線とのみを含む第2のブロック線図片の構造情報を前記プログラム命令のいずれかのコメント行または他の任意のコメント行に記述することにより、前記決定された実行順序に従って各前記プログラム命令を実行するプログラムを生成するプログラム生成手段と、
を備える。
A program generation apparatus as one aspect of the present invention includes:
One of the input block element, the arithmetic block element, the output block element, the data line indicating the data flow between the input block element, the arithmetic block element and the output block element, and the data line. Block diagram reading means for reading a block diagram having at least two branch points for branching the first data line into three or more data lines;
Identifier giving means for giving a unique identifier to each of the branch points;
The block diagram is divided into an input side piece and one or more output pieces at each branch point, and each identifier of each branch point is connected to one end of a plurality of data lines respectively connected to each branch point. A block diagram dividing means for generating a plurality of block diagram pieces by connecting branch point block elements having
Structure information generating means for generating structure information of each of the plurality of block diagram pieces;
A program for realizing processing of a plurality of first block diagram pieces that are block diagram pieces having at least one of an input block element, an operation block element, and an output block element among the plurality of block diagram pieces Program instruction generating means for generating instructions so that the branch point block elements derived from the branch points forming the multiple branches in the plurality of first block diagram pieces are all represented by the same variable;
A program instruction generated from the first block diagram piece including the input side piece obtained by division at the branch point closest to the input side among the branch points forming the multi-branch, Execution order determining means for determining the execution order of the program instructions to be executed before the program instructions generated from the first block diagram piece;
The program instructions are arranged in accordance with the determined execution order, the structure information of each of the first block diagram pieces is described in a comment line of the program instruction corresponding to each of the first block diagram pieces, A second block diagram piece including only the plurality of branch point block elements and the data lines, which are all remaining block diagram pieces other than the first block diagram piece. Program generating means for generating a program for executing each of the program instructions in accordance with the determined execution order by describing the structural information in any comment line or any other comment line of the program instructions;
Is provided.

本発明の一態様としてのブロック線図生成装置は、
それぞれ入力ブロック要素、演算ブロック要素、出力ブロック要素および分岐点ブロック要素のうちのいずれかでありそれぞれ識別子が設定された複数のブロック要素の接続関係を記述した複数の構造情報をプログラムのコメント行から読み出すデータ読出手段と、
前記複数の構造情報のそれぞれに記述された前記接続関係に従って前記複数のブロック要素をデータ線で接続することにより複数のブロック線図片を生成するブロック線図片生成手段と、
各前記ブロック線図片間で同一の識別子を持つ複数の分岐点ブロック要素を1つの分岐点へ統合するように各前記ブロック線図片を合成してブロック線図を生成するブロック線図片合成手段と、を備え、
各前記構造情報において、前記入力ブロック要素と前記演算ブロック要素と前記出力ブロック要素にはそれぞれ座標情報が設定され、また、前記同一の識別子を持つ複数の分岐点ブロック要素のうちのいずれかには前記複数の分岐点ブロック要素が統合されるべき前記分岐点の座標情報が設定され、
前記ブロック線図片合成手段は、
各前記ブロック線図片における前記入力ブロック要素と前記演算ブロック要素と前記出力ブロック要素とをそれぞれの座標情報に応じた位置に配置し、
前記同一の識別子を持つ複数の分岐点ブロック要素を統合した前記分岐点を、前記複数の分岐点ブロック要素のうちのいずれかに設定されている座標情報に応じた位置に配置する
ことを特徴とする。
A block diagram generation apparatus as one aspect of the present invention includes:
From the comment line of the program, multiple pieces of structural information describing the connection relationships of multiple block elements, each of which is one of an input block element, an operation block element, an output block element, and a branch point block element, each set with an identifier Data reading means for reading;
Block diagram piece generating means for generating a plurality of block diagram pieces by connecting the plurality of block elements with data lines according to the connection relationship described in each of the plurality of structure information;
A block diagram piece composition for generating a block diagram by synthesizing each block diagram piece so as to integrate a plurality of branch point block elements having the same identifier between the block diagram pieces into one branch point Means, and
In each of the structural information, coordinate information is set for each of the input block element, the calculation block element, and the output block element, and any one of the plurality of branch point block elements having the same identifier is provided. The coordinate information of the branch point where the plurality of branch point block elements are to be integrated is set,
The block diagram piece combining means is:
The input block element, the arithmetic block element, and the output block element in each block diagram piece are arranged at positions corresponding to the respective coordinate information,
The branch point obtained by integrating a plurality of branch point block elements having the same identifier is arranged at a position corresponding to coordinate information set in any of the plurality of branch point block elements. To do.

本発明により、多重分岐をもつブロック線図の場合であってもプログラム命令数が不必要に多くならないようにプログラムを生成でき、また、元のブロック線図の図としての表現(視覚的な表現)を維持して復元できる。   According to the present invention, even in the case of a block diagram having multiple branches, a program can be generated so that the number of program instructions does not become unnecessarily large, and the representation (visual representation) of the original block diagram ) Can be restored.

実施例1によるブロック線図−プログラム相互変換システムの構成を示す図。1 is a block diagram-configuration of a program mutual conversion system according to a first embodiment. 実施例1に係り、ブロック線図10の一例101を示す図。FIG. 11 is a diagram illustrating an example 101 of a block diagram 10 according to the first embodiment. 実施例1に係り、ブロック線図101をプログラム生成装置20もしくはブロック線図生成装置40内で扱う際のデータ構造の一例102を示す図。FIG. 11 is a diagram illustrating an example of a data structure when the block diagram 101 is handled in the program generation device 20 or the block diagram generation device 40 according to the first embodiment. 実施例1に係り、データ構造102を表すファイルの一例を示す図。FIG. 6 is a diagram illustrating an example of a file representing a data structure according to the first embodiment. 実施例1に係り、実行順生成処理部が備える識別子付与手段で行う処理の流れ図。The flowchart of the process which concerns on Example 1 and is performed by the identifier provision means with which an execution order production | generation process part is provided. 実施例1に係り、データ構造102`を示す図。The figure which concerns on Example 1 and shows data structure 102`. 実施例1に係り、ブロック線図片の集合201を示す図。FIG. 6 is a diagram illustrating a set 201 of block diagram pieces according to the first embodiment. 実施例1に係り、ブロック線図片の集合201を圧縮して得たブロック線図片の集合202を示す図。FIG. 6 is a diagram illustrating a block diagram piece set 202 obtained by compressing a block diagram piece set 201 according to the first embodiment. 実施例1に係り、実行順情報の一例203を示す図。FIG. 10 is a diagram illustrating an example 203 of execution order information according to the first embodiment. 実施例1に係り、実行順生成処理部21が備えるブロック線図分割手段の処理の流れ図。FIG. 6 is a flowchart of processing of a block diagram dividing unit included in the execution order generation processing unit 21 according to the first embodiment. 実施例1に係り、プログラム生成処理部23の処理で出力されるプログラムの一例301を示す図。The figure which shows the example 301 of the program which concerns on Example 1 and is output by the process of the program generation process part 23. FIG. 実施例1に係り、プログラム生成処理部23の処理の流れ図。10 is a flowchart of processing of a program generation processing unit 23 according to the first embodiment. 実施例1に係り、プログラム生成処理部23の処理の最中のスタックの状態を示す図。FIG. 9 is a diagram illustrating a stack state during the processing of the program generation processing unit 23 according to the first embodiment. 実施例1に係り、実行順情報204をテキスト形式で表現した図。The figure which expressed execution order information 204 in the text format concerning Example 1. FIG. 実施例1に係り、図11のプログラム301に図14の実行順情報204をコメントとして挿入したものの例302を示す図。FIG. 15 is a diagram illustrating an example 302 in which execution order information 204 of FIG. 14 is inserted as a comment in the program 301 of FIG. 11 according to the first embodiment. 実施例1に係り、ブロック線図生成処理部42により生成されるデータ構造102``の例を示す図。FIG. 6 is a diagram illustrating an example of a data structure 102`` generated by a block diagram generation processing unit 42 according to the first embodiment. 実施例1に係り、ブロック線図生成処理部42の処理の流れ図。FIG. 4 is a flowchart of processing of a block diagram generation processing unit according to the first embodiment. 実施例1に係り、プログラム生成処理部23の処理の流れ図。10 is a flowchart of processing of a program generation processing unit 23 according to the first embodiment. 実施例1に係り、ブロック線図生成処理部42の処理の流れ図。FIG. 4 is a flowchart of processing of a block diagram generation processing unit according to the first embodiment. 実施例2に係る実行順生成処理部21が備えるブロック線図分割手段の処理の流れ図。10 is a flowchart of processing of a block diagram dividing unit included in the execution order generation processing unit 21 according to the second embodiment. 実施例2に係り、ブロック線図生成処理部42の処理の流れ図(図17に対応)。FIG. 18 is a flowchart of processing of the block diagram generation processing unit 42 according to the second embodiment (corresponding to FIG. 17). 実施例2に係り、図20に示す処理を、図2のブロック線図101に対して行った際に生成されるブロック線図片の集合202`を示す図。FIG. 21 is a diagram showing a block diagram piece set 202 ′ generated when the process shown in FIG. 20 is performed on the block diagram 101 in FIG. 2 according to the second embodiment. 実施例2に係り、図22に示すブロック線図片の集合202`を表すデータ構造203`を示す図。FIG. 23 is a diagram illustrating a data structure 203 ′ that represents a set 202 ′ of block diagram pieces illustrated in FIG. 22 according to the second embodiment. 実施例3に係り、実施例1と同一のブロック線図から生成したブロック線図片の集合202``を示す図。FIG. 20 is a diagram illustrating a block diagram piece set 202 ″ generated from the same block diagram as that of the first embodiment according to the third embodiment. 実施例3に係り、図24のブロック線図片の集合202``を表すデータ構造203``を示す図。FIG. 25 is a diagram illustrating a data structure 203`` representing the set 202`` of block diagram pieces in FIG. 24 according to the third embodiment. 実施例3に係り、ブロック線図生成処理部42の処理の流れ図(図18に対応)。FIG. 19 is a flowchart of processing performed by the block diagram generation processing unit according to the third embodiment (corresponding to FIG. 18). 実施例3に係り、ブロック線図生成処理部42の処理の流れ図(図19に対応)。FIG. 20 is a flowchart of processing of a block diagram generation processing unit according to the third embodiment (corresponding to FIG. 19).

以下、図面を参照しながら本発明の実施例を説明する.
(実施例1)
図1は本発明の実施例1によるブロック線図−プログラム相互変換システムの構成を示す図である。図1において10はプログラム生成装置20の入力となるブロック線図、20はプログラム生成装置、30はプログラム生成装置20によって生成されたプログラム(ソースコード)である。ブロック線図生成装置40はプログラム30を入力としてブロック線図10を生成し、生成したブロック線図10を出力する。プログラム生成装置20およびブロック線図生成装置40は例えばパーソナルコンピュータ(PC:Personal Computer)に実装されたCPU等の演算装置により実行されるプログラムとして実現される。このプログラムはコンピュータに内蔵あるいは外付けされたメモリ、ハードディスク、あるいは、CD−ROM,CD−R等の記憶媒体に適宜格納してコンピュータにより読み出して実行することも可能である。
Embodiments of the present invention will be described below with reference to the drawings.
(Example 1)
FIG. 1 is a diagram showing a configuration of a block diagram-program mutual conversion system according to Embodiment 1 of the present invention. In FIG. 1, 10 is a block diagram as an input to the program generation device 20, 20 is a program generation device, and 30 is a program (source code) generated by the program generation device 20. The block diagram generation device 40 receives the program 30 as an input, generates a block diagram 10, and outputs the generated block diagram 10. The program generation device 20 and the block diagram generation device 40 are realized as programs executed by an arithmetic device such as a CPU mounted on a personal computer (PC), for example. This program can be appropriately stored in a storage medium such as a memory, a hard disk, a CD-ROM, or a CD-R built in or externally attached to the computer, read out by the computer, and executed.

以下ではまず図1のブロック線図−プログラム相互変換システムの概要について説明し、その後、本システムの詳細を具体的に説明する。   In the following, the outline of the block diagram-program mutual conversion system in FIG. 1 will be described first, and then the details of the system will be specifically described.

プログラム生成装置20はブロック線図10から実行順情報22を生成する実行順生成処理部21と、実行順情報22からプログラム30を生成するプログラム生成処理部23からなる。   The program generation apparatus 20 includes an execution order generation processing unit 21 that generates execution order information 22 from the block diagram 10, and a program generation processing unit 23 that generates a program 30 from the execution order information 22.

実行順生成処理部21は、図示しない記憶部からブロック線図10(後述する図2参照)を読み出す。すなわち、実行順生成処理部21は、ブロック線図を読み出す“ブロック線図読出手段”を備える。ブロック線図は、入力ブロック要素と、演算ブロック要素と、出力ブロック要素と、入力ブロック要素、演算ブロック要素および出力ブロック要素間のデータの流れを示すデータ線と、データ線のうちの1つである第1のデータ線を3つ以上のデータ線に段階分岐する少なくとも2つの分岐点とを有する。   The execution order generation processing unit 21 reads a block diagram 10 (see FIG. 2 described later) from a storage unit (not shown). That is, the execution order generation processing unit 21 includes “block diagram reading means” for reading a block diagram. The block diagram is an input block element, an arithmetic block element, an output block element, a data line indicating the flow of data between the input block element, the arithmetic block element and the output block element, and one of the data lines. And having at least two branch points for branching a first data line into three or more data lines.

入力ブロック要素はブロックの種類ごとに定められた処理を行い処理された信号を出力するブロック、出力ブロック要素は自身へ入力された信号に対してブロックの種類ごとに定められた処理を行うブロック、演算ブロック要素は、自身へ入力された信号に対してブロックの種類ごとに定められた処理を行い処理された信号を出力するブロックである。   An input block element performs a process defined for each block type and outputs a processed signal, and an output block element performs a process defined for each block type for a signal input to itself, The calculation block element is a block that performs a process determined for each block type on a signal input to itself and outputs a processed signal.

ここで、読み出したブロック線図10において、入力ブロック要素、演算ブロック要素、出力ブロック要素および各分岐点にはそれぞれ座標情報が設定されている。データ線が屈曲しているときは屈曲点の座標情報がさらに設定されていてもよい。   Here, in the read block diagram 10, coordinate information is set for each of the input block element, the calculation block element, the output block element, and each branch point. When the data line is bent, coordinate information of the bending point may be further set.

実行順生成処理部21は、ブロック線図10において多重分岐を構成する各分岐点のそれぞれに一意の識別子を付与する。これは本発明の“識別子付与手段”の処理に相当し、実行順生成処理部21は識別子付与手段を含む。   The execution order generation processing unit 21 assigns a unique identifier to each branch point constituting a multi-branch in the block diagram 10. This corresponds to the processing of the “identifier assigning means” of the present invention, and the execution order generation processing unit 21 includes an identifier assigning means.

実行順生成処理部21は、多重分岐をなす各分岐点でブロック線図を入力側片と出力側片へ分割し、各分岐点にそれぞれ接続されていた複数のデータ線の一端に各分岐点のそれぞれの識別子をもつ分岐点ブロック要素を接続する。これにより、複数のブロック線図片(後述する図7参照)を生成する。したがって、各ブロック線図片は、各分岐点の入力側片および出力側片のうちのいずれかと、少なくとも1つの分岐点ブロック要素を含む。実行生成処理部21は、分割の際、各分岐点のそれぞれから派生した複数の分岐点ブロック要素のうちの少なくともいずれかに各分岐点のそれぞれの座標情報を付与する。すなわち、同じ分岐点から派生した各分岐点ブロック要素のうちのいずれかには当該分岐点の座標情報を設定する。また実行順生成処理部21は、分割の際、分岐点から出力側への分岐が複数あり、かつこれらの分岐が再度結合しないときは各分岐に応じてそれぞれ出力側片を生成し、再度結合するときは各分岐に対応して1つの出力側片を生成する。本段落で述べた処理は、本発明の“ブロック線図分割手段”の処理に相当し、実行順生成処理部21は、ブロック線図分割手段を備える。   The execution sequence generation processing unit 21 divides the block diagram into an input side piece and an output side piece at each branch point forming multiple branches, and each branch point is connected to one end of a plurality of data lines connected to each branch point. The branch point block elements having respective identifiers are connected. As a result, a plurality of block diagram pieces (see FIG. 7 described later) are generated. Therefore, each block diagram piece includes one of the input side piece and the output side piece of each branch point, and at least one branch point block element. The execution generation processing unit 21 assigns the coordinate information of each branch point to at least one of a plurality of branch point block elements derived from each branch point at the time of division. That is, the coordinate information of the branch point is set in any one of the branch point block elements derived from the same branch point. The execution order generation processing unit 21 generates multiple output-side pieces according to each branch when there are multiple branches from the branch point to the output side and these branches do not recombine. When doing so, one output side piece is generated corresponding to each branch. The process described in this paragraph corresponds to the process of the “block diagram dividing unit” of the present invention, and the execution order generation processing unit 21 includes a block diagram dividing unit.

実行順生成処理部21のブロック線図分割手段によって生成されたブロック線図片のうち、少なくとも入力ブロック要素と、演算ブロック要素と、出力ブロック要素のいずれかをもつブロック線図片は、第1のブロック線図片と称される。また、複数のブロック線図片のうち第1のブロック線図片以外の残りのすべてのブロック線図片、すなわち、複数(たとえば2つ)の分岐点ブロック要素と分岐点ブロック要素間を接続するデータ線とのみを含むブロック線図片は、第2のブロック線図片と称される。   Of the block diagram pieces generated by the block diagram dividing means of the execution order generation processing unit 21, a block diagram piece having at least one of an input block element, an operation block element, and an output block element is It is called a block diagram piece. Further, all the remaining block diagram pieces other than the first block diagram piece among the plurality of block diagram pieces, that is, a plurality of (for example, two) branch point block elements and the branch point block elements are connected. A block diagram piece including only data lines is referred to as a second block diagram piece.

実行順生成処理部21は、ブロック線図分割手段によって生成されたブロック線図片(各第1および第2のブロック線図片)のそれぞれの構造情報を生成する。各構造情報は、それぞれ対応する対応するブロック線図片に含まれる各ブロック要素間の接続関係(各ブロック要素に備えられる入力端子/出力端子間の接続関係)、およびブロック要素の詳細情報を含む。実行順生成処理部21は、第2のブロック線図片の構造情報を、各第1のブロック線図片のうちいずれかに含まれる分岐点ブロック要素に、当該分岐点ブロック要素の属性として付加する(詳細は後述)。実行順生成処理部21は、ブロック線図分割手段によって生成されたブロック線図片(各第1および第2のブロック線図片)の構造情報をそれぞれ生成する“構造情報生成手段”を備える。   The execution order generation processing unit 21 generates the structure information of each block diagram piece (each first and second block diagram piece) generated by the block diagram dividing unit. Each structure information includes a connection relationship between each block element included in the corresponding block diagram piece (a connection relationship between input terminals / output terminals provided in each block element) and detailed information on the block elements. . The execution order generation processing unit 21 adds the structure information of the second block diagram piece to the branch point block element included in any one of the first block diagram pieces as an attribute of the branch point block element. (Details will be described later). The execution order generation processing unit 21 includes “structure information generation means” for generating the structure information of the block diagram pieces (the first and second block diagram pieces) generated by the block diagram dividing means.

実行順生成処理部21は、各第1のブロック線図片の処理を実現するプログラム命令(後述のプログラム生成処理部23により生成される)の実行順序を決定する。より詳細には、多重分岐を形成する各分岐点の最初の分岐点の入力側に対応するプログラム命令が、当該最初の分岐点の出力側に対応するプログラム命令よりも先に実行されるように、各プログラム命令の実行順序を決定する。つまり、各分岐点のうち最も入力側の分岐点で分割された入力側片を含む第1のブロック線図片から生成されたプログラム命令が、他の残りの第1のブロック線図片から生成されたプログラム命令よりも先に実行されるように各プログラム命令の実行順序を決定する。このように実行順生成処理部21は、各プログラム命令の実行順序を決定する“実行順序決定手段”を備える。   The execution order generation processing unit 21 determines the execution order of program instructions (generated by a program generation processing unit 23 described later) that realize the processing of each first block diagram piece. More specifically, the program instruction corresponding to the input side of the first branch point of each branch point forming the multiple branch is executed before the program instruction corresponding to the output side of the first branch point. The execution order of each program instruction is determined. That is, the program instruction generated from the first block diagram piece including the input side piece divided at the most input-side branch point among the branch points is generated from the other remaining first block diagram pieces. The execution order of each program instruction is determined so as to be executed before the programmed program instruction. As described above, the execution order generation processing unit 21 includes “execution order determination means” that determines the execution order of each program instruction.

ここでブロック線図10における少なくとも1つのデータ線が途中で屈曲している場合は、実行順生成処理部21は、上記で説明した処理に加えて、以下の処理を追加的に行ってもよい。すなわち、実行順生成処理部21が備えるブロック線図分割手段は、屈曲点の座標情報を、当該屈曲点を含むデータ線の直前または直後のブロック要素のうちの一方にその属性として設定する。そして実行順生成処理部21が備える構造情報生成手段は、当該一方のブロック要素に設定された屈曲点の座標情報を含むように、当該一方のブロック要素を含むブロック線図片(第1または第2のブロック線図片)の構造情報を生成する。   Here, when at least one data line in the block diagram 10 is bent halfway, the execution sequence generation processing unit 21 may additionally perform the following processing in addition to the processing described above. . That is, the block diagram dividing means included in the execution order generation processing unit 21 sets the coordinate information of the bending point as an attribute of one of the block elements immediately before or immediately after the data line including the bending point. Then, the structure information generation means included in the execution order generation processing unit 21 includes a block diagram piece (first or second) including the one block element so as to include the coordinate information of the bending point set in the one block element. 2) is generated.

実行順生成処理部21が備える構造情報生成手段により生成された各ブロック線図片の構造情報と、実行順生成処理部21が備える実行順序決定手段により決定された各プログラム命令の実行順序とを併せ持った情報は実行順情報22に相当する。この実行順情報22が実行順生成処理部21の出力となる。後述するように本実施例では実行順情報22は木構造を有している。   The structure information of each block diagram piece generated by the structure information generation means provided in the execution order generation processing unit 21 and the execution order of each program instruction determined by the execution order determination means provided in the execution order generation processing unit 21 The combined information corresponds to the execution order information 22. This execution order information 22 becomes the output of the execution order generation processing unit 21. As will be described later, in this embodiment, the execution order information 22 has a tree structure.

プログラム生成処理部23は、各第1のブロック線図片の処理を実現するプログラム命令(後述する図11参照)を生成する。この際、各第1のブロック線図片に含まれるすべての分岐点ブロック要素を同一の変数により表すようにする。ただしプログラム生成処理部23は、分岐点ブロック要素とデータ線とのみを含む第2のブロック線図片の処理を実現するプログラム命令は生成しない。このようにして本実施例では不必要にプログラム命令数が多く生成されるのを阻止できる。   The program generation processing unit 23 generates a program instruction (see FIG. 11 described later) that realizes processing of each first block diagram piece. At this time, all branch point block elements included in each first block diagram piece are represented by the same variable. However, the program generation processing unit 23 does not generate a program instruction that realizes processing of the second block diagram piece including only the branch point block element and the data line. In this way, in this embodiment, it is possible to prevent an unnecessarily large number of program instructions from being generated.

プログラム生成処理部23は、各プログラム命令を、実行順情報22に示される実行順序にしたがって配置し、さらに各第1ブロック線図片の構造情報をそれぞれ対応するプログラム命令のコメント行に記述することによりプログラム30(後述する図15参照)を生成する。ここでは、第2のブロック線図片の構造情報は、任意の第1のブロック線図片内の分岐点ブロック要素にその属性として付加することで、間接的にコメント行に記述されたが、第2のブロック線図片の構造情報を、上記分岐点ブロック要素の属性に付加せずに、各プログラム命令のいずれかに対応するコメント行に直接記述するようにしてもよい。あるいは、第2のブロック線図片の構造情報を、各プログラム命令に対応するコメント行と異なる他の任意のコメント行に記述してもよい。   The program generation processing unit 23 arranges each program instruction according to the execution order indicated by the execution order information 22, and further describes the structure information of each first block diagram piece in the comment line of the corresponding program instruction. Thus, a program 30 (see FIG. 15 described later) is generated. Here, the structure information of the second block diagram piece is indirectly described in the comment line by adding it as an attribute to the branch point block element in the arbitrary first block diagram piece. The structure information of the second block diagram piece may be directly described in a comment line corresponding to one of the program instructions without being added to the attribute of the branch point block element. Alternatively, the structure information of the second block diagram piece may be described in any other comment line different from the comment line corresponding to each program instruction.

このように、プログラム生成処理部23は、各第1のブロック線図片の処理を実現するプログラム命令を生成する “プログラム命令生成手段”を備える。またプログラム生成処理部23は、各生成されたプログラム命令を上記実行順情報22に示される実行順序に従って配置し、各第1のブロック線図片の構造情報をそれぞれ対応するプログラム命令のコメント行に記述し、第2のブロック線図片の構造情報を各プログラム命令のいずれかのコメント行または他の任意のコメント行に記述することによりプログラムを生成する“プログラム生成手段”を備える。   As described above, the program generation processing unit 23 includes “program instruction generation means” that generates a program instruction for realizing the processing of each first block diagram piece. The program generation processing unit 23 arranges each generated program instruction in accordance with the execution order indicated by the execution order information 22, and sets the structure information of each first block diagram piece in the comment line of the corresponding program instruction. “Program generation means” is provided for generating a program by describing and describing the structure information of the second block diagram piece in any comment line or any other comment line of each program instruction.

ブロック線図生成装置40はプログラム30から実行順情報22を抽出する実行順抽出処理部41と、実行順情報22からブロック線図10を生成するブロック線図生成処理部42からなる。   The block diagram generation device 40 includes an execution order extraction processing unit 41 that extracts the execution order information 22 from the program 30, and a block diagram generation processing unit 42 that generates the block diagram 10 from the execution order information 22.

実行順抽出処理部41は、プログラム30から実行順情報22を抽出する。すなわち、プログラム30における各プログラム命令のコメント行から構造情報を、各プログラム命令の実行順序と関連づけて読み出す。構造情報は、それぞれ複数のブロック要素の接続関係を記述し、複数のブロック要素のそれぞれは入力ブロック要素、演算ブロック要素、出力ブロック要素または分岐点ブロック要素である。実行順抽出処理部41は、プログラム30における各プログラム命令のコメント行から構造情報を読み出す“データ読出手段”を備える。   The execution order extraction processing unit 41 extracts the execution order information 22 from the program 30. That is, the structure information is read from the comment line of each program instruction in the program 30 in association with the execution order of each program instruction. The structure information describes connection relations between a plurality of block elements, and each of the plurality of block elements is an input block element, an operation block element, an output block element, or a branch point block element. The execution order extraction processing unit 41 includes “data reading means” that reads structure information from a comment line of each program instruction in the program 30.

ブロック線図生成処理部42は、実行順情報22に含まれる各構造情報のそれぞれに記述された接続関係に従って複数のブロック要素をデータ線で接続する(各ブロック要素の入力端子/出力端子間をデータ線で接続する)ことにより複数のブロック線図片を生成する。この際、生成されたブロック線図片における分岐点ブロック要素にその属性として、ブロック線図片(第2のブロック線図片)の構造情報が付加されているときは、この構造情報に対応するブロック線図片も生成する。これらの処理は、本発明の“ブロック線図片生成手段”の処理に相当し、ブロック線図生成処理部42は、ブロック線図片生成手段を含む。   The block diagram generation processing unit 42 connects a plurality of block elements with data lines in accordance with the connection relationship described in each structural information included in the execution order information 22 (between the input terminal / output terminal of each block element). A plurality of block diagram pieces are generated by connecting with data lines. At this time, when the structure information of the block diagram piece (second block diagram piece) is added as an attribute to the branch point block element in the generated block diagram piece, this corresponds to the structure information. A block diagram piece is also generated. These processes correspond to the process of the “block diagram piece generating unit” of the present invention, and the block diagram generation processing unit 42 includes a block diagram piece generating unit.

さらに、ブロック線図生成処理部42は、各ブロック線図片(第1および第2のブロック線図片)間で同一の識別子を持つ分岐点ブロック要素を1つの分岐点へ統合するように各ブロック線図片を合成し、これによりブロック線図10を生成(復元)する。これは本発明の“ブロック線図片合成手段”の処理に相当し、ブロック線図生成処理部42はブロック線図片合成手段を含む。   Further, the block diagram generation processing unit 42 integrates the branch point block elements having the same identifier between the block diagram pieces (first and second block diagram pieces) into one branch point. The block diagram pieces are synthesized, and thereby the block diagram 10 is generated (restored). This corresponds to the processing of the “block diagram piece synthesizing means” of the present invention, and the block diagram generation processing unit 42 includes block diagram piece synthesizing means.

ここで、プログラム生成装置20の説明で述べたように、入力ブロック要素と演算ブロック要素と出力ブロック要素にはそれぞれ座標情報が設定され、また、前記同一のブロック識別子を持つ複数の分岐点ブロック要素のうちのいずれかには、これら複数の分岐点ブロック要素が分岐された分岐点の座標情報が設定されている。   Here, as described in the description of the program generation device 20, coordinate information is set for each of the input block element, the calculation block element, and the output block element, and a plurality of branch point block elements having the same block identifier. Is set with coordinate information of a branch point where the plurality of branch point block elements are branched.

そこで、ブロック線図生成処理部42が備える上記ブロック線図合成手段は、各ブロック線図片における入力ブロック要素と演算ブロック要素と出力ブロック要素とをそれぞれの座標情報に応じた位置に配置し、また、同一のブロック識別子を持つ複数の分岐点ブロック要素が統合された分岐点をその座標情報に応じた位置に配置する。これにより元のブロック線図(プログラム生成装置20に入力されたブロック線図)の図としての表現(視覚的な表現)を損なわずに、元のブロック線図が復元される。ここでいずれかのブロック要素(入力ブロック要素、演算ブロック要素、出力ブロック要素、分岐点ブロック要素)にデータ線の屈曲点の座標情報が設定されているときは、当該ブロック要素の直前および直後のデータ線のうちあらかじめ定められた一方を、当該屈曲点の座標情報に応じた位置で屈曲(通過)するようにデータ線を配置する(詳細は後述)。これにより元のブロック線図の屈曲も含めて、元のブロック線図を復元できる。すなわち各ブロック要素の位置ならびに各ブロック要素の入力端子および出力端子の位置は定まっており、または上記分岐点の位置も上記のように定まっているため、上記屈曲点の位置を通過するようにデータ線を配置することで元の屈曲が復元できる。   Therefore, the block diagram synthesizing means provided in the block diagram generation processing unit 42 arranges the input block element, the calculation block element, and the output block element in each block diagram piece at positions corresponding to the respective coordinate information, Further, a branch point in which a plurality of branch point block elements having the same block identifier are integrated is arranged at a position corresponding to the coordinate information. Thus, the original block diagram is restored without impairing the representation (visual representation) of the original block diagram (the block diagram input to the program generation device 20). Here, when the coordinate information of the inflection point of the data line is set in any block element (input block element, operation block element, output block element, branch point block element), the data immediately before and after the block element The data line is arranged so that one of the predetermined data lines is bent (passed) at a position corresponding to the coordinate information of the bending point (details will be described later). Thereby, the original block diagram including the bending of the original block diagram can be restored. That is, the position of each block element and the position of the input terminal and output terminal of each block element are determined, or the position of the branch point is also determined as described above, so that the data passes through the position of the bending point. The original bend can be restored by placing the line.

以下、図1のブロック線図−プログラム相互変換システムについてさらに詳細に説明する。   Hereinafter, the block diagram-program mutual conversion system of FIG. 1 will be described in more detail.

図2にブロック線図10の一例101を示す。1001は入力ブロック要素in1、1002、1003、1004、1005は出力ブロック要素out1、out2、out3、out4、1006、1007、1008、1009、1010は演算ブロック要素a、b、c、d、eであり、1011〜1016は信号線(本発明のデータ線に相当する)、1017〜1019は分岐点であり、1017〜1019によって信号線1012が4つに多重分岐されている。図中のIn、Out、A、B、C、D、Eはブロック要素の種類であり、in1、a、b、c、d、e、out1、out2、out3、out4、はブロック要素を識別する名前であり、ア、ウ、オは分岐点の座標、イ、エ、カは信号線の屈曲点の座標である。ブロック線図101は、入力ブロック要素1001から入力された信号に処理A、処理Bを順に施した信号を出力ブロック要素1002から出力し、入力ブロック要素1001から入力された信号に処理A、処理Cを順に施した信号を出力ブロック要素1003から出力し、入力ブロック要素1001から入力された信号に処理A、処理Dを順に施した信号を出力ブロック要素1004から出力し、入力ブロック要素1001から入力された信号に処理A、処理Eを順に施した信号を出力ブロック要素1005から出力することを表している。図2の例では3つの分岐点によりデータ線が4つに分岐される例が示されるが、本発明はこれに限定されず、少なくとも2つの分岐点により3つ以上にデータ線が分岐されるブロック線図であれば適用可能である。   FIG. 2 shows an example 101 of the block diagram 10. 1001 is an input block element in1, 1002, 1003, 1004, 1005 is an output block element out1, out2, out3, out4, 1006, 1007, 1008, 1009, 1010 are operation block elements a, b, c, d, e , 1011 to 1016 are signal lines (corresponding to the data lines of the present invention), 1017 to 1019 are branch points, and 1017 to 1019 divide the signal line 1012 into four branches. In, Out, A, B, C, D, E in the figure are block element types, and in1, a, b, c, d, e, out1, out2, out3, out4, identify block elements Names are a, b, and o are the coordinates of the branch points, and b, a, and f are the coordinates of the bend points of the signal lines. A block diagram 101 is a signal obtained by performing processing A and processing B on a signal input from the input block element 1001 in order, and outputs the signal from the output block element 1002, and processing signals A and C are input to the signal input from the input block element 1001. Is output from the output block element 1003, and the signal input from the input block element 1001 is processed A and D in sequence, output from the output block element 1004, and input from the input block element 1001. The output block element 1005 outputs a signal obtained by performing processing A and processing E in order on the received signal. In the example of FIG. 2, an example in which the data line is branched into four by three branch points is shown, but the present invention is not limited to this, and the data line is branched into three or more by at least two branch points. Any block diagram can be applied.

ブロック線図101をプログラム生成装置20もしくはブロック線図生成装置40内で扱う際のデータ構造の一例102を図3に示す。1101〜1110がブロック要素1001〜1010を表し、1111〜1116が信号線を表す。   FIG. 3 shows an example of a data structure 102 when the block diagram 101 is handled in the program generation device 20 or the block diagram generation device 40. Reference numerals 1101 to 1110 denote block elements 1001 to 1010, and reference numerals 1111 to 1116 denote signal lines.

ブロック要素は種類属性、名前属性、ブロック線図上におけるブロック要素の位置を表す座標属性を有し、さらに、ブロックの種類毎に定められた属性、およびブロック要素の持つ入力端子の数等の属性を持つ。ブロック要素の種類毎に定められた属性としては、定数倍する機能を持つブロック要素の場合における定数、正弦波を発生する機能を持つブロック要素の場合における振幅と振動数といったものがある。定数等のブロックの種類毎に定められた属性については実行順情報を生成する際には利用しないためここでは表示していない。また、ブロック要素の位置を表す座標属性に関してもここでは表記の簡単のため表示していない。更に、ブロック線図101では演算ブロック要素及び出力ブロック要素の入力端子はすべて1個(入力ブロック要素の入力端子は0個)であるのでここでは表示していない。   A block element has a type attribute, a name attribute, a coordinate attribute that represents the position of the block element on the block diagram, and further attributes such as attributes defined for each block type and the number of input terminals of the block element. have. Attributes determined for each type of block element include a constant in the case of a block element having a function of multiplying by a constant, and an amplitude and a frequency in the case of a block element having a function of generating a sine wave. Attributes defined for each block type, such as constants, are not displayed here because they are not used when generating execution order information. Also, the coordinate attribute representing the position of the block element is not shown here for simplicity of description. Further, in the block diagram 101, since there are only one input terminal for the operation block element and the output block element (the number of input terminals of the input block element is 0), they are not shown here.

信号線は、始点と終点のブロック要素の名前および端子番号と、屈曲点の座標と、分岐点の座標とを属性として持つが、上述のようにここでは端子番号は省略する。またデータ線の分岐はたとえば1112,1112aの組のように、始点属性のみを持つ信号線要素と終点属性のみを持つ分岐線要素との組によって表現する。また分岐線の分岐(多重分岐)は、1118,1119の関係のように分岐線要素の子要素に分岐線要素を持たせることによって表現する。   The signal line has as attributes the names and terminal numbers of the block elements at the start and end points, the coordinates of the bending points, and the coordinates of the branch points, but the terminal numbers are omitted here as described above. The branch of the data line is expressed by a set of a signal line element having only the start point attribute and a branch line element having only the end point attribute, such as a set of 1112 and 1112a. A branch of a branch line (multiple branch) is expressed by having a branch line element as a child element of the branch line element as in the relationship of 1118 and 1119.

ブロック線図101はたとえばデータ構造102を表すテキストファイルの形式でプログラム生成装置20に入力される。データ構造102を表すファイルの一例を図4に示す。   The block diagram 101 is input to the program generation device 20 in the form of a text file representing the data structure 102, for example. An example of a file representing the data structure 102 is shown in FIG.

実行順生成処理部21の識別子付与手段は1118、1119の2つの分岐点(分岐線の分岐点)に識別子を付与する。データ構造102で表わした場合、分岐線要素(図中のBranch)のうち、子要素として分岐線要素を持つものに相当する。以下、実行順生成処理部21の識別子付与手段の処理の概要について、図5に示す流れ図を参照して説明する。識別子付与手段への入力がブロック線図101を表すデータ構造102、識別子付与手段の出力が、識別子が付与されたブロック線図のデータ構造102`(図6を参照)である例を元に説明を行う。   The identifier assigning means of the execution order generation processing unit 21 assigns identifiers to two branch points 1118 and 1119 (branch points of branch lines). When represented by the data structure 102, it corresponds to a branch line element (Branch in the figure) having a branch line element as a child element. Hereinafter, an outline of the processing of the identifier assigning means of the execution order generation processing unit 21 will be described with reference to the flowchart shown in FIG. Explanation is based on an example in which the input to the identifier assigning means is the data structure 102 representing the block diagram 101, and the output of the identifier assigning means is the data structure 102` of the block diagram to which the identifier is assigned (see FIG. 6). I do.

識別子付与手段ではブロック線図上のすべての信号線要素に対して図5に示す流れ図の処理を行う。データ構造102は1111〜1116の6個の信号線要素を有する。まず、1111に対して図5に示す処理4001を行うが、1111以下には分岐線要素は存在しないため、処理4001で作成される一覧は何も要素を含まず,処理は終了する。信号線要素1112以下には1112a、1118、1118a、1119、1119a、1119bの6つの分岐線要素が存在する。それらに対し、ループ4002内の処理を順次行う。1112a、1118a、1119a、1119bは、分岐線の子要素を持たないため判断4003がNoとなり処理が終了する。1118は、分岐線の子要素を持つため判断4003がYesとなる。分岐線要素に一意の名前を付ける方法として、処理4004では信号線名に番号を付加する方法をとる。ここでは、信号線1112には名前属性がないため、始点ブロック名に_outを付けたものを信号線名として用い、この信号線名に_b0、_b1…と順次番号を付加していくこととする。1118には処理4004によって名前属性a_out_b0が付加され1118`となる。同様に1119には処理4004によって名前属性a_out_b1が付加され1119`となる(図6参照)。   The identifier assigning means performs the processing of the flowchart shown in FIG. 5 for all signal line elements on the block diagram. The data structure 102 has six signal line elements 1111-1116. First, the processing 4001 shown in FIG. 5 is performed on 1111. Since there are no branch line elements below 1111, the list created in the processing 4001 does not include any elements, and the processing ends. Below the signal line element 1112, there are six branch line elements 1112a, 1118, 1118a, 1119, 1119a, and 1119b. For these, the processing in the loop 4002 is sequentially performed. Since 1112a, 1118a, 1119a, and 1119b have no branch line child elements, the determination 4003 is No and the processing ends. Since 1118 has a branch line child element, the determination 4003 is Yes. As a method of assigning a unique name to the branch line element, a process 4004 uses a method of adding a number to the signal line name. Here, since the signal line 1112 does not have a name attribute, the name of the starting block with _out added is used as the signal line name, and _b0, _b1... Are sequentially added to the signal line name. And A name attribute a_out_b0 is added to 1118 by processing 4004 to become 1118`. Similarly, a name attribute a_out_b1 is added to 1119 by processing 4004 to become 1119` (see FIG. 6).

実行順生成処理部21の識別子付与手段の出力102`(図6参照)に、実行順生成処理部21が備えるブロック線図分割手段の処理を行った後のブロック線図片の集合201を図7に示す。分岐点1017から派生した分岐点ブロック要素は2020、2021、2022であり、分岐点1018から派生した分岐点ブロック要素は2027、2023、2024であり、分岐点1019から派生した分岐点ブロック要素は2028、2025、2026である。分岐点の座標ア、ウ、オは、当該分岐点から派生した分岐点ブロック要素のうちその分岐点の入力側のデータ線に接続された分岐点ブロック要素2020、2027、2028に当該分岐点ブロック要素の属性として付加され、屈曲点の座標イ、エ、カは、当該屈曲点を含むデータ線の出力に接続されるブロック要素2027、2028、2010に、当該ブロック要素の属性として付加される。   A set of block diagram pieces 201 after the processing of the block diagram segmentation means included in the execution order generation processing unit 21 is illustrated in the output 102` (see FIG. 6) of the identifier assigning unit of the execution order generation processing unit 21. Shown in 7. The branch point block elements derived from the branch point 1017 are 2020, 2021, 2022, the branch point block elements derived from the branch point 1018 are 2027, 2023, and 2024, and the branch point block elements derived from the branch point 1019 are 2028. , 2025, 2026. Coordinates A, U, and O of the branch point are the branch point blocks connected to the data line on the input side of the branch point among the branch point block elements derived from the branch point. The inflection point coordinates a, d, and f are added as attributes of the element to the block elements 2027, 2028, and 2010 connected to the output of the data line including the inflection point.

次に、実行順生成処理部21のブロック線図分割手段は、ブロック線図片の集合201において、分岐点ブロック要素とデータ線のみから構成される第2のブロック線図片の構造情報を、第1のブロック線図片の分岐点ブロック要素にその属性として付加し、当該第2のブロック線図片を削除する(圧縮処理)。この圧縮処理の後のブロック線図片の集合202を図8に示す。図7のブロック線図片2102、2104は分岐点ブロック要素とデータ線のみで構成されるため削除され、2102の情報は属性2020a、2104の情報は属性2020b、として2020`に付加される。ここで属性2020aおよび2020bを付加する分岐点ブロック要素は2021、2023、2025、2026のいずれかでも可能であるが、多重分岐の入力側である2020’に限定することにより、プログラム命令生成手段およびブロック線図生成処理部において、第2のブロック線図片の情報の付加されている分岐点ブロック要素を探索する処理が軽減可能となる。   Next, the block diagram segmentation means of the execution sequence generation processing unit 21 in the block diagram segment set 201 obtains the structure information of the second block diagram segment composed only of the branch point block element and the data line, The attribute is added as an attribute to the branch point block element of the first block diagram piece, and the second block diagram piece is deleted (compression processing). A set 202 of block diagram pieces after this compression processing is shown in FIG. The block diagram pieces 2102 and 2104 in FIG. 7 are deleted because they are composed only of branch point block elements and data lines, and the information 2102 is added to the attribute 2020a as the attribute 2020a and the information 2020b as the attribute 2020b. Here, the branch point block element to which the attributes 2020a and 2020b are added can be any of 2021, 2023, 2025, and 2026, but by limiting to 2020 ′ that is the input side of multiple branches, program instruction generation means and In the block diagram generation processing unit, processing for searching for a branch point block element to which information of the second block diagram piece is added can be reduced.

実行順生成処理部21のブロック線図分割手段は、図8のブロック線図片の集合202から実行順情報22を生成する。生成された実行順情報のデータ構造の一例203を図9に示す。データ構造の一例203は木構造を有し、根2200に直接つながる各部分木が、図8の各ブロック線図片に対応する。データ構造の一例203は、実行順木とも称される。   The block diagram dividing means of the execution sequence generation processing unit 21 generates the execution sequence information 22 from the block diagram piece set 202 of FIG. An example 203 of the data structure of the generated execution order information is shown in FIG. An example data structure 203 has a tree structure, and each subtree directly connected to the root 2200 corresponds to each block diagram piece in FIG. An example data structure 203 is also referred to as an execution order tree.

以上に説明した実行順生成処理部21のブロック線図分割手段の処理は、実際には図10に示す流れ図の処理によって、一括して行われる。これらの処理を、図6のデータ構造102`を入力、図9のデータ構造203を出力として、図10の流れ図を参照して説明する。   The processing of the block diagram dividing means of the execution order generation processing unit 21 described above is actually performed collectively by the processing of the flowchart shown in FIG. These processes will be described with reference to the flowchart of FIG. 10, with the data structure 102 ′ of FIG. 6 as input and the data structure 203 of FIG. 9 as output.

本処理では、まず図6のデータ構造102`の有する各出力ブロック要素を、実行順木203の根に子要素として追加する処理を行い、次にその出力ブロック要素を現在のブロック要素として図10の流れ図に示す処理を行う、ことを繰り返すことにより、実行順情報22(データ構造203)を生成する。以下図10の流れ図の処理について詳細に説明する。   In this process, first, each output block element included in the data structure 102` of FIG. 6 is added as a child element to the root of the execution order tree 203, and then the output block element is set as the current block element. By repeating the process shown in the flowchart, the execution order information 22 (data structure 203) is generated. Hereinafter, the processing of the flowchart of FIG. 10 will be described in detail.

図6のデータ構造102’は1102〜1105の4つの出力ブロック要素を有する。そこでまず、out1出力ブロック要素1102をout1出力ブロック要素2202として実行順木203の根2200の直下に追加し、図10の流れ図の開始4101から処理を行う。out1出力ブロック要素1102を終点とする信号線要素1113は分岐線ではないため、判断4102はNoとなり、処理4113によってout1出力ブロック要素2202の子要素として信号線1113の始点であるブロック要素1107を表すブロック要素2207を登録する。信号線1113は座標属性を持たずまた始点である演算ブロック要素1107は入力ブロック要素ではないため、判断4110、4112ともにNoとなり、ループ4116にすすむ。   The data structure 102 'of FIG. 6 has four output block elements 1102-1105. Therefore, first, the out1 output block element 1102 is added as an out1 output block element 2202 immediately below the root 2200 of the execution order tree 203, and processing is performed from the start 4101 of the flowchart of FIG. Since the signal line element 1113 that ends at the out1 output block element 1102 is not a branch line, the determination 4102 is No, and the processing 4113 represents the block element 1107 that is the start point of the signal line 1113 as a child element of the out1 output block element 2202 A block element 2207 is registered. Since the signal line 1113 does not have a coordinate attribute, and the calculation block element 1107 that is the starting point is not an input block element, both the determinations 4110 and 4112 are No, and the process proceeds to the loop 4116.

次にループ4116の処理を行う。この際、ブロック線図が入力端子が1個以下のブロック要素のみからなる場合、ループ端4116からループ端4119間の処理は、処理4118を1回実行することと等価となる(本実施例では上述のように入力端子の個数は1個以下であるためこれに相当する)。処理4118では信号線1113の始点である演算ブロック要素1107を現在ブロック要素として開始4101から始まる処理を再帰的に呼び出す。   Next, the processing of loop 4116 is performed. At this time, when the block diagram includes only block elements having one or less input terminals, the process between the loop end 4116 and the loop end 4119 is equivalent to executing the process 4118 once (in this embodiment, This corresponds to the number of input terminals being 1 or less as described above). In the process 4118, the process starting from the start 4101 is recursively called with the operation block element 1107 that is the starting point of the signal line 1113 as the current block element.

ブロック要素1107を終点とする信号線は分岐線1112aであるため、判断4102はYesとなり判断4103に進む。分岐線1112aの親要素は信号線1112であり、親が分岐線でない分岐線の始点は、2個目以降の分岐点(多重分岐点)ではないため、判断4103はNoとなり、処理4105に進む。処理4105で現在ブロック要素2207の下に分岐点ブロック要素2221を登録し、判断4121に進む。この際に登録する分岐点ブロック要素の名前属性の決定法としては、ブロック線図上で該当する信号線112に名前がつけられている場合はその名前にする、なければ規則を設定しその規則に従って名前をつけるなどの方法をとることが可能である。ここではブロック線図上で信号線112はブロック要素a(ブロック要素1106)の出力に相当するためa_outという名前属性を設定することとする(a_outは後の説明において便宜上、信号線112の信号線名として扱われることもある)。分岐線1112aは座標属性を持たないため、判断4121はNoとなり判断4106に進む。   Since the signal line whose end point is the block element 1107 is the branch line 1112a, the determination 4102 is Yes and the processing proceeds to the determination 4103. Since the parent element of the branch line 1112a is the signal line 1112 and the start point of the branch line whose parent is not the branch line is not the second or later branch point (multiple branch point), the determination 4103 is No and the processing proceeds to the process 4105. . In processing 4105, the branch point block element 2221 is registered under the current block element 2207, and the process proceeds to decision 4121. As a method for determining the name attribute of the branch point block element to be registered at this time, if a name is assigned to the corresponding signal line 112 on the block diagram, the name is set to that name. Otherwise, a rule is set and the rule is set. It is possible to take a method such as naming according to. Here, since the signal line 112 on the block diagram corresponds to the output of the block element a (block element 1106), the name attribute a_out is set (a_out is a signal line of the signal line 112 for convenience in the following description. May be treated as a name). Since the branch line 1112a does not have a coordinate attribute, the determination 4121 is No and the process proceeds to the determination 4106.

実行順木の根2200の子要素にa_outという名前属性を持つ分岐点ブロック要素は存在しないため判断4106はNoとなり、処理4108によって、分岐点ブロック要素2221と同じ名前をもつ(あるいは信号線と同じ名前をもつ)分岐点ブロック要素2220`が登録される(なお図中の座標属性(Position:ア)は後の処理で付与される)。更に処理4109によって、多重分岐を構成する分岐点間の接続情報が分岐点ブロック要素2220`の属性として付加される。   Since there is no branch point block element with the name attribute a_out in the child element of the root 2200 of the execution order tree, the judgment 4106 is No, and the processing 4108 has the same name as the branch point block element 2221 (or the same name as the signal line) The branch point block element 2220` is registered (the coordinate attribute (Position: a) in the figure is given in a later process). Further, the processing 4109 adds connection information between branch points constituting the multi-branch as an attribute of the branch point block element 2220`.

すなわち、処理4109では、図18に示す流れ図の処理によって多重分岐を表す信号線を表す部分木を探索し、子要素に分岐線要素を持つ分岐線要素と、その親要素である信号線要素もしくは分岐線要素間の接続を、多重分岐の入力側の分岐点要素の属性として付加する。具体的に、信号線1112は1112a、1118`、1118a、1119`、1119a、1119bの6つの分岐線要素を有する。それぞれに対してループ4403の処理を行う。信号線1112の有する6つの分岐線要素のうち子要素も分岐線であるものは1118`、1119`の2つであるので、これらに対してのみ処理4405、4406が行われる。まず、1118`に対して処理4405によって2220`の子要素として1118`の親要素である信号線1112の名前を持つ2220a1が追加され、処理4406によって2220a1の子要素として1118`を表す2220a2が追加される。同様に1119`に対して処理4405によって2220b1、処理4406によって2220b2が追加される。   That is, in the process 4109, a subtree representing a signal line representing multiple branches is searched by the process of the flowchart shown in FIG. 18, and a branch line element having a branch line element as a child element and a signal line element or parent element thereof The connection between the branch line elements is added as an attribute of the branch point element on the input side of the multiple branch. Specifically, the signal line 1112 has six branch line elements 1112a, 1118`, 1118a, 1119`, 1119a, and 1119b. The processing of loop 4403 is performed for each. Of the six branch line elements included in the signal line 1112, the child elements are also two branch lines 1118 ′ and 1119 ′. Therefore, the processes 4405 and 4406 are performed only on these two elements. First, 2210a1 with the name of the signal line 1112 that is the parent element of 1118` is added as a child element of 2210` to process 1405` for 1118`, and 2220a2 that represents 1118` as a child element of 2220a1 is added by process 4406 Is done. Similarly, 2210b1 is added to 1119` by processing 4405 and 2220b2 is added by processing 4406.

図10の処理4113によって信号線1112の始点である演算ブロック要素1106が、ブロック要素2206として、実行順木の分岐点ブロック要素2220`の子要素に登録される。信号線1112は座標属性を有するので判断4110はYesとなり、処理4111によってブロック要素2206の実行順木上での親要素である分岐点ブロック要素2220`に座標属性(Position:ア)が付加される。また、演算ブロック要素2206は入力ブロック要素ではないため判断4112はNoとなり、ループ4116の処理に進む。   The processing block element 1106 that is the starting point of the signal line 1112 is registered as a block element 2206 in the child element of the branch point block element 2220` of the execution order tree by the process 4113 in FIG. Since the signal line 1112 has the coordinate attribute, the determination 4110 is Yes, and the coordinate attribute (Position: a) is added to the branch point block element 2220` which is the parent element on the execution order tree of the block element 2206 by the process 4111. . Further, since the calculation block element 2206 is not an input block element, the determination 4112 is No, and the processing proceeds to the loop 4116.

次に処理4118によってブロック要素1106を現在ブロック要素として開始4101から始まる処理が再帰的に呼び出される。ブロック要素1106を終点とする信号線1111は分岐線ではないため判断4102はNoとなり処理4113によって信号線1111の始点である入力ブロック要素1101を表す入力ブロック要素2201が2206の子要素として追加される。信号線1111は座標属性を持たないため判断4112はNoとなり、入力ブロック要素1111は入力ブロック要素であるため判断4112はYesとなり、終了4114によって処理は呼び出し元に戻る。 Next, the process 4118 recursively calls the process starting from the start 4101 with the block element 1106 as the current block element. Since the signal line 1111 with the block element 1106 as the end point is not a branch line, the judgment 4102 is No, and the processing 4113 adds the input block element 2201 representing the input block element 1101 that is the starting point of the signal line 1111 as a child element of 2206. . Since the signal line 1111 has no coordinate attribute, the determination 4112 is No, the input block element 1111 is an input block element, so the determination 4112 is Yes, and the processing returns to the caller by the end 4114.

呼び出し元は4118であり、終了4120によって処理が呼び出し元に戻ることを2回繰り返し出力ブロック要素1102に対する処理は終了する。   The caller is 4118, and the process returns to the caller by the end 4120, and the process for the output block element 1102 ends twice.

次に、データ構造102が有する2つ目の出力ブロック要素である出力ブロック要素1103をout2出力ブロック要素2203として実行順木203の根2200の直下に追加し、図10の流れ図の開始4101から処理を行う。out2出力ブロック要素1103を終点とする信号線要素1114は分岐線ではないため、判断4102はNoとなる。処理4113に進み、信号線要素1114の始点である演算ブロック要素1108をout2出力ブロック要素2203の子要素2208として登録する。信号線1114は座標属性を持たず、またその始点である演算ブロック要素1108は入力ブロック要素ではない。このため判断4110、4112はNoとなり、ループ4116内の処理4118に進む。   Next, the output block element 1103 which is the second output block element included in the data structure 102 is added as an out2 output block element 2203 immediately below the root 2200 of the execution order tree 203, and processing is started from the start 4101 of the flowchart of FIG. I do. Since the signal line element 1114 whose end point is the out2 output block element 1103 is not a branch line, the determination 4102 is No. Proceeding to processing 4113, the operation block element 1108 that is the starting point of the signal line element 1114 is registered as a child element 2208 of the out2 output block element 2203. The signal line 1114 does not have a coordinate attribute, and the calculation block element 1108 that is the starting point is not an input block element. Therefore, the determinations 4110 and 4112 are No, and the process proceeds to the process 4118 in the loop 4116.

次に処理4118では信号線1114の始点である演算ブロック要素1108を現在ブロック要素として開始4101から始まる処理を再帰的に呼び出す。   Next, in the process 4118, the process starting from the start 4101 is recursively called with the operation block element 1108 that is the starting point of the signal line 1114 as the current block element.

ブロック要素1108を終点とする信号線は分岐線1118aであるため、判断4102はYesとなり判断4103に進む。分岐線1118aの親要素は分岐線1118`であり、親が分岐線である分岐線の始点は、2個目以降の分岐点(多重分岐点)であるため、判断4103はYesとなり、処理4104 に進む。処理4104で現在のブロック要素2208の下に分岐点ブロック要素2223を登録し、判断4121に進む。この際、登録する分岐点名は、分岐線の始点のため、1118aの親要素である1118`の名前属性a_out_b0となる。分岐線1118aは座標属性を有していないため、判断4121はNoとなり判断4106に進む。判断4106では、分岐線名ではなく分岐線の属する信号線名と同じ名前の分岐点ブロック要素の有無を判定する。分岐線1118aの属する信号線名はa_outであり、すでにこの信号線名a_outをもつ分岐点ブロック要素2220’が登録されているため判断4106はYesとなる。このため、終了4107によって処理は呼び出し元に戻り、出力ブロック要素1103に対する処理は終了する。   Since the signal line whose end point is the block element 1108 is the branch line 1118a, the determination 4102 is Yes and the processing proceeds to the determination 4103. Since the parent element of the branch line 1118a is the branch line 1118` and the start point of the branch line whose parent is the branch line is the second or later branch point (multiple branch point), the determination 4103 is Yes, and the process 4104 Proceed to In step 4104, the branch point block element 2223 is registered under the current block element 2208, and the process advances to decision 4121. At this time, the branch point name to be registered is the name attribute a_out_b0 of 1118` which is the parent element of 1118a because it is the start point of the branch line. Since the branch line 1118a does not have a coordinate attribute, the determination 4121 is No and the processing proceeds to the determination 4106. In decision 4106, it is determined whether there is a branch point block element having the same name as the signal line name to which the branch line belongs, not the branch line name. The signal line name to which the branch line 1118a belongs is a_out, and since the branch point block element 2220 'having this signal line name a_out has already been registered, the judgment 4106 becomes Yes. For this reason, the processing returns to the calling source by the end 4107, and the processing for the output block element 1103 is ended.

データ構造102が有する残りの出力ブロック要素である出力ブロック要素1104,1105に対しても同様に図10の流れ図に従って処理を行うことでブロック要素2204、2209、2225およびブロック要素2205、2210、2226が登録される。ここで、分岐線要素1119bが座標属性を有しているため、分岐点ブロック要素2226を実行順木に加えた後、判断4121がYesとなり、ブロック要素2226の実行順木上での親要素であるブロック要素2210に座標属性(Position:カが付加される)。   Similarly, the output block elements 1104 and 1105, which are the remaining output block elements of the data structure 102, are processed in accordance with the flowchart of FIG. 10, so that the block elements 2204, 2209 and 2225 and the block elements 2205, 2210 and 2226 are obtained. be registered. Here, since the branch line element 1119b has a coordinate attribute, after adding the branch point block element 2226 to the execution order tree, the decision 4121 becomes Yes, and the parent element on the execution order tree of the block element 2226 A coordinate attribute (Position: is added) to a certain block element 2210.

上述のアルゴリズムによって実行順木(実行順情報)を生成する場合、ブロック線図片
が生成される順序に関しては、図9に示すように、まず2202、2207、2221からなるブロック線図片が生成され、次に2220’、2206、2201からなるブロック線図片が生成される。ただし実際のプログラム30を生成する際には、分岐点の入力側の演算である2220’、2206、2201からなるブロック線図片のプログラム命令を、分岐点の出力側の演算である残りのブロック線図片のプログラム命令よりも先に計算するようにする必要がある。そこで、実行順木の根2200に直接つながる各部分木(ブロック線図片)の実行順序が以下のようになるようにする。すなわち、根2200に直接つながるブロック要素として分岐点ブロック要素をもつ部分木(ブロック線図片)が、当該分岐点ブロック要素の名前に合致する名前(当該分岐点ブロック要素の派生元の分岐点の名前、または当該派生元の分岐点より後の分岐点の名前)をもつ分岐点ブロック要素を葉としてもつ部分木(ブロック線図片)よりも先に実行されるようにする。そして、このような実行順序の制約をデータ構造203に含める。図9のデータ構造203では先に計算するブロック線図片を左側に書くことでブロック線図片(部分木)間の実行順序を示している。
When the execution order tree (execution order information) is generated by the above algorithm, as shown in FIG. 9, a block diagram piece composed of 2202, 2207, and 2221 is first generated as to the order in which the block diagram pieces are generated. Then, a block diagram piece consisting of 2220 ′, 2206, 2201 is generated. However, when the actual program 30 is generated, the program instruction of the block diagram consisting of 2220 ', 2206, 2201 which is the operation on the input side of the branch point is replaced with the remaining block which is the operation on the output side of the branch point It is necessary to calculate before the program instruction of the diagram piece. Therefore, the execution order of each subtree (block diagram piece) directly connected to the root 2200 of the execution order tree is set as follows. That is, a subtree (block diagram piece) having a branch point block element as a block element directly connected to the root 2200 has a name that matches the name of the branch point block element (the branch point from which the branch point block element is derived). It is executed before a subtree (a block diagram piece) having a branch point block element having a name or a branch point name after the derivation source branch point) as a leaf. Then, such an execution order restriction is included in the data structure 203. In the data structure 203 of FIG. 9, the block diagram pieces to be calculated first are written on the left side to indicate the execution order between the block diagram pieces (subtrees).

次に、プログラム生成処理部23の処理について図9のデータ構造203で表される図8の実行順情報202を入力として説明する。本処理で出力されるプログラムの一例301を図11に示す。実行順情報からプログラムを生成する際には、各ブロック線図片の最後のブロック要素(各部分木において実行順木の根に直接接続されるブロック要素)が、1文のプログラム(1つのプログラム命令)により代入される(数式表現の場合左辺に相当する)値となり、各ブロック線図片の最後のブロック要素の直前のブロック要素が1文のプログラム(1つのプログラム命令)において最後に行われる演算となる。また各ブロック線図片において、直前のブロック要素の出力が、次のブロック要素への入力となる。図8においてブロック要素2001、2006、2020`からなるブロック線図片の場合、ブロック要素2001の出力がブロック要素2006の入力となり、ブロック要素2006の出力がブロック要素2020`に代入される。これをプログラミング言語で表すと図11の3001となる。   Next, the processing of the program generation processing unit 23 will be described with the execution order information 202 of FIG. 8 represented by the data structure 203 of FIG. 9 as an input. An example of a program 301 output in this process is shown in FIG. When generating a program from execution order information, the last block element of each block diagram piece (a block element directly connected to the root of the execution order tree in each subtree) is a one sentence program (one program instruction) The value is assigned by (corresponding to the left side in the case of mathematical expression), and the block element immediately before the last block element of each block diagram piece is the last operation performed in one sentence program (one program instruction) Become. In each block diagram piece, the output of the immediately preceding block element becomes the input to the next block element. In the case of a block diagram piece made up of block elements 2001, 2006, and 2020` in FIG. 8, the output of the block element 2001 becomes the input of the block element 2006, and the output of the block element 2006 is substituted into the block element 2020`. This can be expressed in programming language as 3001 in FIG.

プログラム生成処理部23の処理を図12に示す流れ図を参照して詳細に説明する。本処理では各ブロック線図片に相当する各部分木に対して図12の処理を行う。ここでは一例として、ブロック要素2201、2206、2220`からプログラム命令3001を生成する手順について説明する。以下の説明では、図12に加えて、図13に示すスタックの内容を参照する。処理4202によって部分木の内容をすべてスタックに格納する。この状態を図13の2390に示す。その後、処理4204によって被演算子in1と演算子(関数)Aをスタックから取り出しこれらを用いて処理4206によって式を作成する。作成された式を処理4207によって再びスタックに格納する。この状態を図13の2391に示す。処理4207の後再びループ4203を実行し、スタックの内容が被演算子のみになったら(No)、処理4209によってプログラム命令3001を生成して、処理を終了4210する。これによって1つの部分木に対する処理が終了する。   The processing of the program generation processing unit 23 will be described in detail with reference to the flowchart shown in FIG. In this process, the process of FIG. 12 is performed on each subtree corresponding to each block diagram piece. Here, as an example, a procedure for generating the program instruction 3001 from the block elements 2201, 2206, 2220` will be described. In the following description, the contents of the stack shown in FIG. 13 are referred to in addition to FIG. By processing 4202, all contents of the subtree are stored in the stack. This state is shown by 2390 in FIG. Thereafter, the operand 4 in 1 and the operator (function) A are extracted from the stack by the process 4204, and an expression is created by the process 4206 using them. The created expression is stored in the stack again by processing 4207. This state is shown as 2391 in FIG. After the process 4207, the loop 4203 is executed again. When the stack contains only the operand (No), a program instruction 3001 is generated by the process 4209, and the process ends 4210. This completes the processing for one subtree.

上記と同様にして、ブロック要素2221、2207、2202からなるブロック線図片からプログラム命令3002が生成される。   In the same manner as described above, a program instruction 3002 is generated from a block diagram piece made up of block elements 2221, 2207, and 2202.

また、ブロック要素2223、2208、2203からなるブロック線図片からプログラム命令3003が生成される。ただし、ブロック要素2223は、分岐点の出力側に対応するため、処理4202においてブロック要素2223をスタックに格納する際には、ブロック要素2223を示すa_out_b0を格納するのではなく、ブロック要素2223の名前をBP要素(図9参照)として持つブロック要素2220`を示すa_outを格納する(なおブロック要素2221も分岐点の出力側であるがこれはブロック要素2220`と名前が一致するためこのような変換処理は不要である)。これにより、多重分岐をなす各分岐点から派生したすべて分岐点ブロック要素を同一の変数によって表すようにする。同様にして、ブロック要素2225、2209、2204からなるブロック線図片からプログラム命令3004、ブロック要素2226、2210、2205からなるブロック線図片からプログラム命令3005が生成される。   Further, a program instruction 3003 is generated from a block diagram piece made up of block elements 2223, 2208, and 2203. However, since the block element 2223 corresponds to the output side of the branch point, when storing the block element 2223 in the stack in the process 4202, the name of the block element 2223 is not stored, but a_out_b0 indicating the block element 2223 is not stored. Is stored as a BP element (see Fig. 9), and a_out indicating the block element 2220` is stored (Note that the block element 2221 is also the output side of the branch point, but this is because the name matches the block element 2220`. No processing is required). As a result, all branch point block elements derived from the respective branch points forming multiple branches are represented by the same variable. Similarly, a program instruction 3004 is generated from a block diagram piece including block elements 2225, 2209, and 2204, and a program instruction 3005 is generated from a block diagram piece including block elements 2226, 2210, and 2205.

上記説明では実行順情報203を構文木の形式で示したが、実行順情報204はたとえば図14に示すようにテキスト形式で表現することも可能である。また、実行順情報203はプログラムの1文に対応する単位で区切られているため、プログラムの1文毎に実行順情報をテキスト形式でコメントとして付加することが可能となる。図11のプログラム301に図14の実行順情報204をコメントとして挿入したものの例302を図15に示す。尚、ここで行頭の#はプログラム301の記述言語におけるコメント文を示す。プログラム302においては、その他のコメント文と区別するための方法として実行順情報を表すコメント文については#を行頭に2文字続けることで表している。プログラム生成処理部23は、このようにプログラム301に実行順情報204をコメントとして挿入することによりプログラム302(図1のソースコード30に対応)を生成し、出力する。プログラムに対応するコメントはプログラミング言語におけるコメント文を用いて記述する方法以外に、プログラム命令の1文毎に識別情報をプログラミング言語におけるコメント文として付加するようにし、一方、対応する構造情報は同一の識別情報を付加した上、プログラム命令とは別のファイルに保存する方法によって管理することも可能である。   In the above description, the execution order information 203 is shown in the form of a syntax tree. However, the execution order information 204 can also be expressed in a text form as shown in FIG. 14, for example. Since the execution order information 203 is divided in units corresponding to one sentence of the program, the execution order information can be added as a comment in a text format for each sentence of the program. FIG. 15 shows an example 302 in which the execution order information 204 of FIG. 14 is inserted as a comment in the program 301 of FIG. Here, # at the beginning of the line indicates a comment sentence in the description language of the program 301. In the program 302, as a method for distinguishing from other comment sentences, a comment sentence representing execution order information is represented by continuing two characters at the beginning of the line. The program generation processing unit 23 generates and outputs the program 302 (corresponding to the source code 30 in FIG. 1) by inserting the execution order information 204 as a comment in the program 301 in this way. In addition to the method of using comments in programming languages for comments corresponding to programs, identification information is added as comment text in programming languages for each sentence of program instructions, while the corresponding structural information is the same. It is also possible to manage by a method of adding the identification information and saving it in a file different from the program instruction.

以上プログラム生成装置20について説明した。以下、ブロック線図生成装置40について説明する。   The program generation apparatus 20 has been described above. Hereinafter, the block diagram generation device 40 will be described.

ブロック線図生成装置40には実行順情報を挿入されたプログラム(たとえば図15のプログラム302)が入力される。   The block diagram generating apparatus 40 is input with a program in which execution order information is inserted (for example, the program 302 in FIG. 15).

実行順情報抽出部41においてはプログラム302からコメント部を抽出し、実行順情報204(図14参照)のような実行順情報ファイルを生成する。実行順情報抽出部41の処理は例えばプログラム302を1行ずつ読み込み、その中から行頭に#が2文字続いている行だけを出力ファイルに書き込むなどの方法によって行う。   The execution order information extraction unit 41 extracts the comment part from the program 302 and generates an execution order information file such as the execution order information 204 (see FIG. 14). The processing of the execution order information extraction unit 41 is performed by, for example, a method of reading the program 302 line by line, and writing only the line in which # is continued at the beginning of the line to the output file.

ブロック線図生成処理部42では実行順情報204を入力としてブロック線図10を生成する。ブロック線図生成処理部42では、以下に説明する方法によって、本願発明のブロック線図片生成手段とブロック線図片合成手段との処理を一括して実施する。   The block diagram generation processing unit 42 receives the execution order information 204 and generates the block diagram 10. In the block diagram generation processing unit 42, the processes of the block diagram piece generating means and the block diagram piece synthesizing means of the present invention are collectively performed by the method described below.

ブロック線図生成処理部42の処理の流れを、実行順情報のデータ構造203(図9参照)から図16に示すブロック線図のデータ構造102``へ変換する例をもとに説明する。ブロック線図生成装置40ではまず、図19に示す流れ図の処理により、入力された図9の実行順情報203において分岐点ブロック要素を探索し、分岐を持つ信号線要素(図16の1112参照)と、当該信号線要素の分岐線要素のうち子要素として分岐線要素を持つもの(1118`、1119`参照)とを生成する。次に、入力された実行順情報(データ構造)203の根の子要素すべてに対して順に図17に示す流れ図の処理を行う。これにより、ブロック線図を生成する。以下、本処理について詳細に説明する。   The processing flow of the block diagram generation processing unit 42 will be described based on an example of conversion from the data structure 203 (see FIG. 9) of the execution order information to the data structure 102`` of the block diagram shown in FIG. First, the block diagram generation device 40 searches for the branch point block element in the input execution order information 203 of FIG. 9 by the processing of the flowchart shown in FIG. 19, and a signal line element having a branch (see 1112 in FIG. 16). And a branch line element of the signal line element having a branch line element as a child element (see 1118`, 1119`) is generated. Next, the processing of the flowchart shown in FIG. 17 is sequentially performed on all the root child elements of the input execution order information (data structure) 203. Thereby, a block diagram is generated. Hereinafter, this process will be described in detail.

まず、データ構造203(図9参照)に対して、図19に示す流れ図の処理を行う。データ構造203において分岐点の入力側を表す分岐点ブロック要素は2220`のみであるので、2220`に対してループ4503内の処理を1度行う。まず、処理4504により、データ構造102``上に信号線要素1112が生成される。この時点では、1112は名前属性のみを持ち、始点および座標属性は持たない(後ほど図17に示す流れ図の処理によって付加される)。次に、分岐点ブロック要素2220`は子要素としてBP要素を持つため、判断4505はYesとなる。分岐点ブロック要素2220`の直接の子要素であるBP要素は2220a1、2220b1の2個であるため、ループ4506の処理は2度繰り返される。1周目の処理では、処理4507によって現在のブロック要素である1112と同じ名前を持つBP要素である2220a1が発見される。次に、処理4508によって2220a1の子要素である2220a2が1112の子要素1118`としてブロック線図に追加される。ここでは、子要素の名前のみでなく座標属性もブロック線図に追加するため、1118`は座標属性を持つ。2周目の処理では処理4507によって1118`と同じ名前を持つBP要素である2220b1が発見され、処理4508によって1119`がブロック線図に追加される。   First, the processing of the flowchart shown in FIG. 19 is performed on the data structure 203 (see FIG. 9). Since the branch point block element representing the branch point input side in the data structure 203 is only 2220`, the processing in the loop 4503 is performed once for 2220`. First, the processing 4504 generates a signal line element 1112 on the data structure 102``. At this point, 1112 has only a name attribute and no start point and coordinate attributes (which will be added later by the processing of the flowchart shown in FIG. 17). Next, since the branch point block element 2220` has a BP element as a child element, the determination 4505 is Yes. Since there are two BP elements 2220a1 and 2220b1 which are direct child elements of the branch point block element 2220`, the processing of the loop 4506 is repeated twice. In the process of the first round, the process 4507 finds the BP element 2220a1 having the same name as the current block element 1112. Next, 2220a2 which is a child element of 2220a1 is added to the block diagram as a child element 1118` of 1112 by processing 4508. Here, since not only the name of the child element but also the coordinate attribute is added to the block diagram, 1118` has the coordinate attribute. In the process of the second round, the process 4507 finds 2220b1, which is a BP element having the same name as 1118`, and the process 4508 adds 1119` to the block diagram.

次に、次に入力された図9の実行順情報203 の根の子要素すべてに対して順に図17に示す流れ図の処理を行う。データ構造203の根2200は、2220`、2202、2203、2204、2205の5つの子要素を有する。   Next, the processing of the flowchart shown in FIG. 17 is sequentially performed on all the root child elements of the execution order information 203 of FIG. 9 input next. The root 2200 of the data structure 203 has five child elements 2220`, 2202, 2203, 2204, and 2205.

ここではまず、2220`から処理を行う。2220`は分岐点ブロック要素かつ実行順木の根2200の子要素であるので、分岐点の入力側の分岐点ブロック要素となり判断4302はYesとなる。処理4303によって現在のブロック要素の子要素であるブロック要素2206の名前と種類とを取得する。   Here, first, processing is performed from 2220`. Since 2220` is a branch point block element and a child element of the root 2200 of the execution order tree, it becomes a branch point block element on the input side of the branch point, and the judgment 4302 becomes Yes. By processing 4303, the name and type of the block element 2206 which is a child element of the current block element are obtained.

処理4304によって現在のブロック要素と一致する名前(a_out)を持つ信号線1112の始点(src)属性として、子要素2206を示すaが付加される。ブロック要素2220`は座標属性(ここでは分岐点の位置を表す座標属性または屈曲点の位置を表す座標属性)を持つため、判断4305はYesとなり、処理4306によって信号線1112の属性として座標属性(<Position>ア)が付加される。次に、処理4317によってブロック要素2206を現在のブロック要素として用いて、4301から始まる処理を再帰的に呼び出す。   In process 4304, a indicating the child element 2206 is added as the start point (src) attribute of the signal line 1112 having the name (a_out) that matches the current block element. Since the block element 2220` has a coordinate attribute (in this case, a coordinate attribute representing the position of the branch point or a coordinate attribute representing the position of the bending point), the determination 4305 is Yes, and the process 4306 causes the coordinate attribute ( <Position> a) is added. Next, a process starting from 4301 is recursively called by the process 4317 using the block element 2206 as the current block element.

ブロック要素2206は演算ブロック要素であるため判断4302はNoとなり処理4307によってブロック要素2206がブロック要素1106としてデータ構造102``に追加される。ブロック要素2206は座標属性(ここでは分岐点の位置を表す座標属性または屈曲点の位置を表す座標属性)を持たないため判断4315はNo、演算ブロック要素であるため判断4308もNoとなりループ4310の処理に進む。実行順情報のデータ構造203におけるすべてのブロック要素の子要素はそれぞれ1個以下であるため、本実施例ではループ端4310と4318で挟まれるループはすべて1度ずつのみ実行する。   Since the block element 2206 is an operation block element, the determination 4302 is No, and the block element 2206 is added as the block element 1106 to the data structure 102`` by the process 4307. Since the block element 2206 has no coordinate attribute (in this case, the coordinate attribute indicating the position of the branch point or the coordinate attribute indicating the position of the bending point), the determination 4315 is No, and the determination 4308 is also No since it is an operation block element. Proceed to processing. Since the number of child elements of all the block elements in the data structure 203 of the execution order information is one or less, all loops sandwiched between the loop ends 4310 and 4318 are executed only once.

ブロック要素2206の子要素は入力ブロック要素2201であるため判断4311はNoとなり処理4314によってブロック要素2201を始点、ブロック要素2206を終点とする信号線1111が生成される。入力ブロック要素2201を現在ブロック要素として用いて4301からはじまる処理が再び呼び出される。   Since the child element of the block element 2206 is the input block element 2201, the judgment 4311 is No, and a signal line 1111 having the block element 2201 as the start point and the block element 2206 as the end point is generated by the process 4314. The process starting from 4301 is called again using the input block element 2201 as the current block element.

判断4302はNoとなるため処理4307によって入力ブロック要素2201が入力ブロック要素1101としてデータ構造102``に追加される。入力ブロック要素2201は座標属性(ここでは分岐点の位置を表す座標属性または屈曲点の位置を表す座標属性)を有していないため判断4315はNoとなり、また入力ブロック要素2201は入力ブロック要素であるため判断4308はYesとなり、処理は呼び出し元に戻る。   Since the determination 4302 is No, the process 4307 adds the input block element 2201 as the input block element 1101 to the data structure 102``. Since the input block element 2201 does not have a coordinate attribute (here, a coordinate attribute indicating the position of a branch point or a coordinate attribute indicating the position of a bending point), the determination 4315 is No, and the input block element 2201 is an input block element. As a result, the determination 4308 is Yes and the process returns to the caller.

呼び出し元でも終了4319によって処理が終了され、データ構造の根の子要素(分岐点ブロック要素)2220`に対する処理は終了する。   Even the caller ends the processing at the end 4319, and the processing for the root child element (branch point block element) 2220` of the data structure ends.

次に、データ構造の根の子要素2202に対しても図17の流れ図の処理を行う。2202は出力ブロック要素であるため判断4302はNoとなり、処理4307によって出力ブロック要素1102がブロック線図に追加される。判断4315 、判断4308、判断4311のいずれもNoとなるため処理4314によりブロック要素2202を終点、その子要素2207を始点とする信号線1113がブロック線図に追加される。処理4317 によってブロック要素2207を現在のブロック要素として4301からはじまる処理が再び呼び出される。ブロック要素2207は演算ブロック要素であるため判断4302はNoとなり処理4307によってブロック要素1107としてブロック線図に追加される。判断4315、判断4308はNoとなり判断4311に進む。ブロック要素2207の子要素2221は分岐点でありかつ同子要素2221は分岐点の出力側となるため(すなわち子要素2221は実行順木の葉に相当するため分岐点の出力側になる)、判断4311はYesとなる。子要素の名前a_outは信号線1112の名前属性と一致するため、信号線1112の直下にブロック要素2207を終点とする分岐線1112aを追加する。処理4313により処理は呼び出し元に戻り、呼び出し元においても終了4319によって処理が終了される。   Next, the process shown in the flowchart of FIG. 17 is also performed for the root child element 2202 of the data structure. Since 2202 is an output block element, the judgment 4302 is No, and the process 4307 adds the output block element 1102 to the block diagram. Since all of judgment 4315, judgment 4308, and judgment 4311 are No, processing 4314 adds a signal line 1113 having the block element 2202 as the end point and its child element 2207 as the start point to the block diagram. By the process 4317, the process starting from 4301 with the block element 2207 as the current block element is called again. Since the block element 2207 is an operation block element, the determination 4302 is No, and is added to the block diagram as the block element 1107 by the process 4307. The judgments 4315 and 4308 are No and the process proceeds to judgment 4311. Since the child element 2221 of the block element 2207 is a branch point and the child element 2221 is the output side of the branch point (that is, the child element 2221 corresponds to the leaf of the execution sequence tree, it becomes the output side of the branch point), so judgment 4311 Becomes Yes. Since the child element name a_out matches the name attribute of the signal line 1112, a branch line 1112 a having the block element 2207 as an end point is added immediately below the signal line 1112. The process returns to the caller by the process 4313, and the process is also terminated by the end 4319 at the caller.

次に、データ構造の根の子要素2203に対しても図17の流れ図の処理を行う。2203は出力ブロック要素であるため判断4302はNoとなり、処理4307によって出力ブロック要素1103がブロック線図に追加される。判断4315、判断4308、判断4311のいずれもNoとなり、処理4314によってブロック要素2203を終点、その子要素2208を始点とする信号線1114がブロック線図に追加される。ブロック要素2208を現在のブロック要素として用いて4301からはじまる処理が再び呼び出される。   Next, the process shown in the flowchart of FIG. 17 is also performed on the root child element 2203 of the data structure. Since 2203 is an output block element, the determination 4302 is No, and the process 4307 adds the output block element 1103 to the block diagram. Any of the determination 4315, the determination 4308, and the determination 4311 is No, and a signal line 1114 having the block element 2203 as the end point and the child element 2208 as the start point is added to the block diagram by the process 4314. The process starting from 4301 is called again using the block element 2208 as the current block element.

ブロック要素2208は演算ブロック要素であるため判断4302はNoとなり処理4307によってブロック要素1108としてブロック線図に追加される。   Since the block element 2208 is an operation block element, the judgment 4302 is No and is added to the block diagram as a block element 1108 by the process 4307.

判断4315、判断4308はNoとなり判断4311に進む。ブロック要素2208の子要素2223は分岐点でありかつ分岐点の出力側となるため、判断4311はYesとなる。子要素の名前a_out_b0は信号線1112のもつ分岐線1118`の名前属性と一致するため、信号線1112のもつ分岐線1118`以下にブロック要素2208を終点とする分岐線1118aを追加する。処理4313により処理は呼び出し元に戻り、呼び出し元においても終了4319によって処理が終了される。   The judgments 4315 and 4308 are No and the process proceeds to judgment 4311. Since the child element 2223 of the block element 2208 is a branch point and is on the output side of the branch point, the determination 4311 is Yes. Since the child element name a_out_b0 matches the name attribute of the branch line 1118` of the signal line 1112, a branch line 1118a having the block element 2208 as an end point is added below the branch line 1118` of the signal line 1112. The process returns to the caller by the process 4313, and the process is also terminated by the end 4319 at the caller.

次にデータ構造の根の子要素2204に対しても図17の流れ図の処理を行う。要素2204に対する処理の流れは要素2203に対する処理の流れと同様になり、出力ブロック要素1104、信号線1115、演算ブロック要素1109、分岐線1119aの順でブロック線図の要素が生成される。   Next, the processing of the flowchart of FIG. 17 is also performed on the root child element 2204 of the data structure. The process flow for the element 2204 is similar to the process flow for the element 2203, and block diagram elements are generated in the order of the output block element 1104, the signal line 1115, the operation block element 1109, and the branch line 1119a.

最後にデータ構造の根の子要素2205に対しても図17の流れ図の処理を行うことで同様に、出力ブロック要素1105、信号線1116、演算ブロック要素1110、分岐線1119bの順でブロック線図の要素が生成される。この際、ブロック要素2210が屈曲点の位置を表す座標属性を有するため、処理4307でブロック要素2210をブロック線図に追加した後の判断4315がYesとなり、処理4316が行われる。処理4316ではブロック要素2210を終点とする信号線もしくは分岐線要素に座標属性を付加するが、ブロック要素2210を終点とする分岐線要素1119bはこの時点ではまだ生成されていないため、終点ブロック要素名と座標属性を記憶装置に記憶しておき、分岐線要素1119bの生成後に座標属性を付加する処理を行う。   Finally, the processing of the flowchart of FIG. 17 is also performed on the child element 2205 of the root of the data structure, and similarly, the block diagram in the order of the output block element 1105, the signal line 1116, the calculation block element 1110, and the branch line 1119b. Elements are generated. At this time, since the block element 2210 has a coordinate attribute representing the position of the bending point, the determination 4315 after adding the block element 2210 to the block diagram in the process 4307 is Yes, and the process 4316 is performed. In the process 4316, a coordinate attribute is added to the signal line or branch line element having the block element 2210 as the end point. However, since the branch line element 1119b having the block element 2210 as the end point has not yet been generated, the end block element name And the coordinate attribute are stored in the storage device, and the process of adding the coordinate attribute is performed after the branch line element 1119b is generated.

以上により図16に示すブロック線図102``が生成される。   Thus, the block diagram 102 ″ shown in FIG. 16 is generated.

以上のように本実施例によれば、ブロック線図を各分岐点で分割して得たブロック線図片(第1および第2のブロック線図片)の構造情報を分岐点の座標および屈曲点の座標も含めてプログラム内の対応するコメント行にコメント文として挿入したことにより、ブロック線図の復元時にプログラム内のコメント文として挿入した構造情報を利用することで、プログラムからブロック線図を図としての表現(多重分岐における分岐の順序、データ線の折れ曲がる位置等)を含めて復元することが可能となる。つまり、ソフトウェアの再利用の際にソースコード中にコメントとして挿入された構造情報からモデルをブロック線図として復元し、モデルベースで制御系の再設計を行うことが可能となる。   As described above, according to the present embodiment, the structure information of the block diagram pieces (first and second block diagram pieces) obtained by dividing the block diagram at each branch point is obtained from the coordinates of the branch points and the bending. By inserting the block diagram from the program by using the structure information inserted as a comment statement in the program when restoring the block diagram by inserting it as a comment statement in the corresponding comment line in the program including the coordinates of the points. It is possible to restore the image including the representation (the order of branches in multiple branches, the position where the data line is bent, etc.). That is, the model can be restored as a block diagram from the structure information inserted as a comment in the source code when the software is reused, and the control system can be redesigned on a model basis.

また、本実施例によれば、ブロック線図を各分岐点で分割して得たブロック線図片(第1および第2のブロック線図片)のうち、各第1のブロック線図片を表すプログラム命令を、分岐点ブロック要素をすべて同一変数で表すように生成するとともに、第2のブロック線図片についてはプログラム命令を生成しないようにしたため、全体のプログラム命令数を少なく抑えつつ、ブロック線図に対応するプログラムを生成することができる。   Moreover, according to the present embodiment, among the block diagram pieces (first and second block diagram pieces) obtained by dividing the block diagram at each branch point, each first block diagram piece is The program instruction to be expressed is generated so that all branch point block elements are represented by the same variable, and the program instruction is not generated for the second block diagram piece. A program corresponding to the diagram can be generated.

(実施例2)
本実施例では、実施例1と同一のブロック線図に対して処理を行うが、実施例1での図10の流れ図の処理を図20の流れ図、図17の流れ図の処理を図21の流れ図に置き換える。
(Example 2)
In the present embodiment, processing is performed on the same block diagram as in the first embodiment, but the processing of the flowchart of FIG. 10 in the first embodiment is the flowchart of FIG. 20, and the processing of the flowchart of FIG. 17 is the flowchart of FIG. Replace with

図10と図20の相違点は、処理4122が4122`、4111が4111`に変わっている点である。これにより、信号線・分岐線が座標属性を有していた場合に、図10では登録したブロック要素の親要素の属性として当該座標属性が付加されていたが、図20では登録したブロック要素の属性として当該座標属性が付加される。これは、信号線または分岐線の屈曲点の座標を屈曲点の後ろ側のブロック要素ではなく前側のブロック要素に付加することに、また分岐点の座標を分岐点の入力側分岐点ブロック要素ではなく分岐点の前のブロック要素に付加することに相当する。この変更により、座標属性を付加する際に親要素を探索する必要がなくなり、処理が軽減される。このことにより、図20に示す処理を、図2のブロック線図101に対して行った際に生成されるブロック線図片の集合は、図22に示す202`になる。座標属性カの付加される位置が屈曲点の後側のブロック要素2010から前側のブロック要素2026に、座標属性アの付加される位置が入力側分岐点ブロック要素2020`から分岐点の前の位置するブロック要素2006に変わっている。図22に示すブロック線図片の集合202`を表すデータ構造203`を図23に示す。   The difference between FIG. 10 and FIG. 20 is that the process 4122 is changed to 4122` and 4111 is changed to 4111`. As a result, when the signal line / branch line has the coordinate attribute, the coordinate attribute is added as the parent element attribute of the registered block element in FIG. 10, but in FIG. The coordinate attribute is added as an attribute. This means that the coordinates of the inflection point of the signal line or branch line are added to the front block element instead of the block element behind the inflection point, and the branch point coordinates are added to the input branch point block element of the branch point. This corresponds to adding to the block element before the branch point. This change eliminates the need to search for a parent element when adding a coordinate attribute, thus reducing processing. As a result, a set of block diagram pieces generated when the processing shown in FIG. 20 is performed on the block diagram 101 in FIG. 2 becomes 202 ′ shown in FIG. The position where the coordinate attribute is added is from the block element 2010 behind the bending point to the front block element 2026, and the position where the coordinate attribute is added is the position before the branch point from the input side branch point block element 2020`. The block element has changed to 2006. FIG. 23 shows a data structure 203` representing the set of block diagram pieces 202` shown in FIG.

図17と図21の相違点は、判断4305および処理4306が削除され判断4320および処理4321が付加された点、処理4316が4316`に変更された点である。   The difference between FIG. 17 and FIG. 21 is that judgment 4305 and processing 4306 are deleted, judgment 4320 and processing 4321 are added, and processing 4316 is changed to 4316`.

判断4305および処理4306が判断4320および処理4321に変更されたのは、図17の流れ図が図20に変更されたことに対応するものである。すなわち、変更後の図20においては、上述のように信号線または分岐線の屈曲点の座標を屈曲点の後ろ側のブロック要素ではなく前側のブロック要素に、また分岐点の座標を分岐点の入力側ブロック要素ではなく分岐点の前のブロック要素に付加される。このため、分岐点の入力側分岐点ブロック要素が座標属性を有している可能性がなくなり、代わりに分岐点の出力側分岐点ブロック要素が座標属性を有している可能性があることとなる。そこで、これに対応して判断4305および処理4306が、判断4320および処理4321に変更された。   The determination 4305 and the process 4306 are changed to the determination 4320 and the process 4321 in correspondence with the flowchart of FIG. 17 being changed to FIG. That is, in FIG. 20 after the change, as described above, the coordinates of the bending point of the signal line or the branch line are set to the front block element instead of the block element behind the bending point, and the branch point coordinates are set to the branch point. It is added not to the input side block element but to the block element before the branch point. For this reason, there is no possibility that the input side branch point block element of the branch point has the coordinate attribute, and there is a possibility that the output side branch point block element of the branch point may have the coordinate attribute instead. Become. Accordingly, the determination 4305 and the process 4306 are changed to the determination 4320 and the process 4321 correspondingly.

また、処理4316から4316`への変更も同様に、図17から図20への変更により、屈曲点または分岐点の座標が後ろ側のブロック要素ではなく前側のブロック要素に付加されるようになったことによるものである。図17の処理では処理4316が行われる時点では、「そのブロック要素を終点とする信号線」は生成されていないため、「そのブロック要素を終点とする信号線」が生成されるまで座標属性を記憶しておく必要があった。一方図20では4316から4316`への変更により、「そのブロック要素を終点とする信号線」が「そのブロック要素を始点とする信号線」へ変更される。処理4316`の時点で「そのブロック要素を始点とする信号線」であれば座標情報が生成されているため、座標情報を記憶しておく必要がなくなり、記憶装置の容量および記憶処理の演算を削減することが可能となる。   Similarly, the change from the process 4316 to 4316` also causes the inflection point or branch point coordinates to be added to the front block element instead of the rear block element by the change from FIG. 17 to FIG. It is because of that. In the process of FIG. 17, since the “signal line having the block element as the end point” is not generated at the time when the process 4316 is performed, the coordinate attribute is set until the “signal line having the block element as the end point” is generated. I had to remember it. On the other hand, in FIG. 20, the change from 4316 to 4316` changes the "signal line with the block element as the end point" to the "signal line with the block element as the start point". Since the coordinate information is generated if it is “the signal line starting from the block element” at the time of the process 4316`, it is not necessary to store the coordinate information, and the capacity of the storage device and the calculation of the storage process are calculated. It becomes possible to reduce.

(実施例3)
本実施例では、実施例1よりも実行順情報の情報量を削減する方法を提供する。
(Example 3)
The present embodiment provides a method for reducing the information amount of execution order information compared to the first embodiment.

図24は、実施例1と同一のブロック線図に対して、実施例1と同一の方法で識別子付与、ブロック線図分割、座標情報付加を行ったものに、本実施例で説明する方法を用いて生成したブロック線図片の集合202``、図25は図24のブロック線図片の集合202``から生成したデータ構造203``を示す。   FIG. 24 shows a block diagram identical to that in the first embodiment, in which identifier assignment, block diagram segmentation, and coordinate information addition are performed in the same manner as in the first embodiment. FIG. 25 shows a data structure 203`` generated from the block diagram piece set 202`` of FIG. 24.

実施例1のブロック線図片202(図8参照)およびデータ構造203(図9参照)では多重分岐を構成する分岐点間の接続情報は、2つの分岐点間の接続関係を表す要素を複数個並列に並べることで表された。たとえば図8では<BP></BP>の組を2つ並べ(2020aと2020b参照)、図9では、2つの部分木を並列に並べた(2220a2と2220b2参照)。   In the block diagram piece 202 (see FIG. 8) and the data structure 203 (see FIG. 9) of the first embodiment, the connection information between the branch points constituting the multi-branch includes a plurality of elements representing the connection relationship between the two branch points. It was expressed by arranging them in parallel. For example, in FIG. 8, two sets of <BP> </ BP> are arranged (see 2020a and 2020b), and in FIG. 9, two subtrees are arranged in parallel (see 2220a2 and 2220b2).

これに対し本実施例では、図24の202``、図25の203``に示すように複数の分岐点間の接続関係を1つの木構造で表す。この方法を用いることにより、実行順情報の情報量を削減することが可能となる。   On the other hand, in this embodiment, as shown by 202`` in FIG. 24 and 203`` in FIG. 25, the connection relationship between a plurality of branch points is represented by one tree structure. By using this method, it is possible to reduce the amount of execution order information.

本実施例では、図18および図19の処理を、図26および図27の処理に変更する。   In the present embodiment, the processing in FIGS. 18 and 19 is changed to the processing in FIGS.

図26に示す流れ図に従い、データ構造102`(図6参照)中の信号線要素1112から、図25の203``に示すように分岐点情報を付加する方法について説明する。分岐点情報を付加する際には、信号線要素を現在の要素として、開始4601から処理を行う。   A method of adding branch point information as indicated by 203 ″ in FIG. 25 from the signal line element 1112 in the data structure 102 ′ (see FIG. 6) will be described according to the flowchart shown in FIG. When adding branch point information, processing is performed from the start 4601 using the signal line element as the current element.

まず、処理4602によって信号線要素1112の子要素一覧を作成する。作成される子要素一覧は1112aと1118`を含む。判断4604で、各子要素が分岐線要素でありかつ子要素として分岐線要素を有するか否かを判断する。子要素1112aは子要素として分岐線要素を持たないため、Noとなり、1112aに対するループ4603内の処理として、処理4607へ進み、何も行われない。一方、子要素1118`は分岐線要素かつ子要素として分岐線要素(1118a、1119`)を有するので判断4604はYesとなり、ループ4604内の処理として、処理4605によって実行順木上の分岐点ブロック要素2220`の子要素としてBP要素2220a’を追加する。次に、処理4606によって1118`を現在のブロック要素として処理4602が再帰的に呼び出される。   First, a child element list of the signal line element 1112 is created by processing 4602. The list of child elements created includes 1112a and 1118`. In decision 4604, it is determined whether each child element is a branch line element and has a branch line element as a child element. Since the child element 1112a does not have a branch line element as a child element, the result is No, and the processing in the loop 4603 for 1112a proceeds to processing 4607, and nothing is performed. On the other hand, since the child element 1118` has the branch line element (1118a, 1119`) as the branch line element and the child element, the determination 4604 becomes Yes, and the process in the loop 4604 is performed by the process 4605 as a branch point block element on the execution order tree. BP element 2220a 'is added as a child element of 2220`. Next, the processing 4606 recursively calls the processing 4602 with 1118` as the current block element.

処理4602によって作成される子要素一覧は1118a、1119`を含む。1118aは子要素を持たないため、判断4604はNoとなり、1118aに対する処理は行われない(処理4607)。一方、子要素1119`は分岐線要素かつ子要素として分岐線要素(1119a、1119b)を有するので判断4604はYesとなり、処理4605によって実行順木上の分岐点ブロック要素2220a’の子要素としてBP要素2220b’が付加される。次に、処理4606によって1119`を現在のブロック要素として処理4602が再帰的に呼び出される。1119’は1119a、1119bの2つの子要素を有するがそれらはいずれも子要素を持たないため、判断4604がNoとなり、終了4609によって処理は終了する。   The child element list created by the process 4602 includes 1118a and 1119`. Since 1118a has no child elements, the determination 4604 is No, and the process for 1118a is not performed (process 4607). On the other hand, since the child element 1119` has the branch line element (1119a, 1119b) as the branch line element and the child element, the determination 4604 becomes Yes, and the processing 4605 causes the BP element as the child element of the branch point block element 2220a 'on the execution order tree. 2220b 'is added. Next, the process 4606 recursively calls the process 4602 with 1119` as the current block element. 1119 'has two child elements 1119a and 1119b, but none of them has a child element. Therefore, the determination 4604 becomes No, and the processing is ended by the end 4609.

図25のデータ構造203``から、図16に示すブロック線図のデータ構造102``を生成する際に、分岐点を持つ信号線要素と、多重分岐を表す信号線要素の分岐線要素のうち子要素として分岐線を持つものと、を予め生成する方法を図27に示す流れ図を用いて説明する。   When generating the data structure 102`` of the block diagram shown in FIG. 16 from the data structure 203`` of FIG. 25, the signal line element having the branch point and the branch line element of the signal line element representing the multi-branch are A method for generating in advance one having a branch line as a child element will be described with reference to the flowchart shown in FIG.

データ構造203``が有する分岐点の入力側ブロック要素は2220`のみであるため処理4702では2220’のみを含む一覧が作成され、ループ4703の処理は2220`に対してのみ行われる。まず、処理4704により、102``上に信号線要素1112が生成される。この時点では、1112は名前属性のみを持ち、始点および座標属性は持たない(上述したように後に図17に示す流れ図の処理によって付加される)。   Since the input side block element of the branch point included in the data structure 203`` is only 2220`, a list including only 2220 'is created in the process 4702, and the process of the loop 4703 is performed only for 2220`. First, a signal line element 1112 is generated on 102 ″ by the process 4704. At this time, 1112 has only a name attribute, and does not have a start point and a coordinate attribute (as described above, added later by the processing of the flowchart shown in FIG. 17).

次に、処理4705により2220`の子要素の一覧を作成する。本例では2206と2220a’のみを含む一覧が作成される。ループ4706内に入り、2206はBP要素ではないため判断4707はNoとなり、何も行わない(処理4707)。一方、2220a’はBP要素であるため判断4707はYesとなり、処理4708によってブロック線図上の信号線要素1112の子要素1118`としてブロック線図に追加される。ここでは、子要素の名前のみでなく座標属性もブロック線図に追加するため、1118`は座標属性を持つ。次に、処理4709により、BP要素2220a`を現在のブロック要素として処理4705が再帰的に呼び出される。   Next, a list of child elements of 2220` is created by processing 4705. In this example, a list including only 2206 and 2220a 'is created. The process enters the loop 4706. Since 2206 is not a BP element, the determination 4707 is No and nothing is performed (process 4707). On the other hand, since 2220a 'is a BP element, the determination 4707 is Yes and is added to the block diagram as a child element 1118` of the signal line element 1112 on the block diagram by processing 4708. Here, since not only the name of the child element but also the coordinate attribute is added to the block diagram, 1118` has the coordinate attribute. Next, the process 4709 recursively calls the process 4705 using the BP element 2220a` as the current block element.

2220a`の持つ子要素は2220bのみであるため、ループ4706は2220b`に対してのみ実行される。2220b`はBP要素であるため判断4707はYesとなり、処理4708によってブロック線図上の分岐線要素1118`の子要素1119`としてブロック線図に追加される。ここでは、子要素の名前のみでなく座標属性もブロック線図に追加するため、1119`は座標属性を持つ。次に、処理4709により、BP要素2220b`を現在のブロック要素として処理4705が再帰的に呼び出されるが、2220b`は子要素を持たないため、ここで図27に示す流れ図の処理は終了する。 Since 2220a` has only the child element 2220b, the loop 4706 is executed only for 2220b`. Since 2220b` is a BP element, the judgment 4707 is Yes and is added to the block diagram as a child element 1119` of the branch line element 1118` on the block diagram by the process 4708. Here, since not only the name of the child element but also the coordinate attribute is added to the block diagram, 1119` has the coordinate attribute. Next, the process 4709 recursively calls the process 4705 using the BP element 2220b` as the current block element by the process 4709. However, since the 2220b` has no child elements, the process of the flowchart shown in FIG. 27 ends here.

また、木構造のデータを木構造のままコピー可能な処理系も存在する。   There are also processing systems that can copy tree-structured data as it is.

たとえば、データ構造102`、データ構造203``等がXML(Extensible Markup Language)を用いて表わされている場合、木構造上の要素を指定することによってその要素以下の木構造を、その構造をすべて維持したまま複製することが容易に実現できる。   For example, when data structure 102`, data structure 203``, etc. are expressed using XML (Extensible Markup Language), the tree structure below that element can be specified by specifying an element on the tree structure. It is possible to easily replicate while maintaining all of the above.

Java(登録商標)言語を用いてXMLで表わされたデータ構造を扱う処理を記述する場合であれば、org.w3c.dom.DocumentインタフェースのcloneNodeメソッドを用い、引数としてtrueを指定することで木構造の複製が実現可能である。   If you want to describe processing that handles data structures expressed in XML using the Java (registered trademark) language, use the cloneNode method of the org.w3c.dom.Document interface and specify true as an argument. Duplication of the tree structure is feasible.

この場合、203``上の2220a`を指定して複製を行うだけで図27に示す処理が実現可能となるため、本実施例に示す方法を用いることにより、実施例1および実施例2と比較して、処理量を削減することが可能となる。   In this case, since the process shown in FIG. 27 can be realized simply by specifying 2220a` on 203`` and performing the method shown in this example, the method shown in FIG. In comparison, the processing amount can be reduced.

本実施例によれば、実施例1よりも実行順情報の情報量を少なくすることが可能となる。したがって、ソフトウェアの再利用の際にソースコード中にコメントとして挿入されたより少ない実行順情報からモデルをブロック線図として復元し、モデルベースで制御系の再設計を行うことが可能となる。   According to the present embodiment, it is possible to reduce the amount of execution order information as compared with the first embodiment. Therefore, the model can be restored as a block diagram from less execution order information inserted as a comment in the source code when the software is reused, and the control system can be redesigned on a model basis.

本実施例では実施例1をベースとして説明を行ったが本実施例の方法は、同様に実施例2に適用することも可能である。   Although the present embodiment has been described based on the first embodiment, the method of the present embodiment can also be applied to the second embodiment.

10:ブロック線図
20:プログラム生成装置
21:実行順生成処理部(ブロック線図読出手段、識別子付与手段、ブロック線図分割手段、構造情報生成手段)
22:実行順情報
23:プログラム生成処理部(プログラム命令生成手段、実行順序決定手段、プログラム生成手段)
30:プログラム
41:実行順抽出処理部(データ読出手段)
42:ブロック線図生成処理部(ブロック線図片生成手段、ブロック線図辺合成手段)
10: Block diagram
20: Program generator
21: Execution order generation processing unit (block diagram reading unit, identifier assigning unit, block diagram dividing unit, structure information generating unit)
22: Execution order information
23: Program generation processing unit (program command generation means, execution order determination means, program generation means)
30: Program
41: Execution order extraction processing unit (data reading means)
42: Block diagram generation processing unit (block diagram piece generation means, block diagram edge synthesis means)

Claims (5)

入力ブロック要素と、演算ブロック要素と、出力ブロック要素と、前記入力ブロック要素、前記演算ブロック要素および前記出力ブロック要素間のデータの流れを示すデータ線と、前記データ線のうちの1つである第1のデータ線を3つ以上のデータ線に多重分岐する少なくとも2つの分岐点と、を有するブロック線図を読み出すブロック線図読出手段と、
各前記分岐点にそれぞれ一意の識別子を付与する識別子付与手段と、
各前記分岐点で前記ブロック線図を入力側片と1つ以上の出力片側へ分割し、さらに各前記分岐点にそれぞれ接続されていた複数のデータ線の一端に各前記分岐点のそれぞれの識別子をもつ分岐点ブロック要素を接続することにより複数のブロック線図片を生成するブロック線図分割手段と、
前記複数のブロック線図片の構造情報をそれぞれ生成する構造情報生成手段と、
前記複数のブロック線図片のうち、少なくとも入力ブロック要素と、演算ブロック要素と、出力ブロック要素のいずれかをもつブロック線図片である複数の第1のブロック線図片の処理を実現するプログラム命令を、前記複数の第1のブロック線図片において前記多重分岐をなす各前記分岐点から派生した前記分岐点ブロック要素がすべて同一の変数により表されるように生成するプログラム命令生成手段と、
前記多重分岐をなす前記分岐点のうち最も入力側の分岐点での分割により得られた前記入力側片を含む前記第1のブロック線図片から生成されたプログラム命令が、他の残りの前記第1のブロック線図片から生成されたプログラム命令よりも先に実行されるように各前記プログラム命令の実行順序を決定する実行順序決定手段と、
決定された実行順序に従って各前記プログラム命令を配置し、各前記第1のブロック線図片の構造情報を各前記第1のブロック線図片に対応するプログラム命令のコメント行に記述し、前記複数のブロック線図片のうち前記第1のブロック線図片以外の残りのすべてのブロック線図片である、複数の前記分岐点ブロック要素と前記データ線とのみを含む第2のブロック線図片の構造情報を前記プログラム命令のいずれかのコメント行または他の任意のコメント行に記述することにより、前記決定された実行順序に従って各前記プログラム命令を実行するプログラムを生成するプログラム生成手段と、
を備えたプログラム生成装置。
One of the input block element, the arithmetic block element, the output block element, the data line indicating the data flow between the input block element, the arithmetic block element and the output block element, and the data line. Block diagram reading means for reading a block diagram having at least two branch points for branching the first data line into three or more data lines;
Identifier giving means for giving a unique identifier to each of the branch points;
The block diagram is divided into an input side piece and one or more output pieces at each branch point, and each identifier of each branch point is connected to one end of a plurality of data lines respectively connected to each branch point. A block diagram dividing means for generating a plurality of block diagram pieces by connecting branch point block elements having
Structure information generating means for generating structure information of each of the plurality of block diagram pieces;
A program for realizing processing of a plurality of first block diagram pieces that are block diagram pieces having at least one of an input block element, an operation block element, and an output block element among the plurality of block diagram pieces Program instruction generating means for generating instructions so that the branch point block elements derived from the branch points forming the multiple branches in the plurality of first block diagram pieces are all represented by the same variable;
A program instruction generated from the first block diagram piece including the input side piece obtained by division at the branch point closest to the input side among the branch points forming the multi-branch, Execution order determining means for determining the execution order of the program instructions to be executed before the program instructions generated from the first block diagram piece;
The program instructions are arranged in accordance with the determined execution order, the structure information of each of the first block diagram pieces is described in a comment line of the program instruction corresponding to each of the first block diagram pieces, A second block diagram piece including only the plurality of branch point block elements and the data lines, which are all remaining block diagram pieces other than the first block diagram piece. Program generating means for generating a program for executing each of the program instructions in accordance with the determined execution order by describing the structural information in any comment line or any other comment line of the program instructions;
A program generation apparatus comprising:
前記ブロック線図において、前記入力ブロック要素、前記演算ブロック要素、前記出力ブロック要素および前記複数の分岐点にはそれぞれ座標情報が設定され、
前記ブロック線図分割手段は、各前記分岐点のそれぞれから派生した複数の分岐点ブロック要素のうちの少なくともいずれかに前記分岐点の座標情報を設定し、
各前記第1および第2のブロック図片の構造情報は、各前記第1および第2のブロック線図片に含まれる、前記入力ブロック要素、前記演算ブロック要素、前記出力ブロック要素および前記分岐点ブロック要素に設定された座標情報を含む
ことを特徴とする請求項1に記載のプログラム生成装置。
In the block diagram, coordinate information is set for each of the input block element, the calculation block element, the output block element, and the plurality of branch points,
The block diagram dividing means sets the coordinate information of the branch point in at least one of a plurality of branch point block elements derived from each of the branch points,
Structure information of each of the first and second block diagram pieces is included in each of the first and second block diagram pieces, the input block element, the operation block element, the output block element, and the branch point. The program generation device according to claim 1, comprising coordinate information set in a block element.
少なくとも1つのデータ線は途中で屈曲されており、
前記ブロック線図は、前記少なくとも1つのデータ線の屈曲点の座標情報を含み、
前記ブロック線図分割手段は、前記屈曲点の座標情報を、前記少なくとも1つのデータ線の直前および直後のブロック要素のうちあらかじめ定められた一方のブロック要素に設定し、
前記構造情報生成手段は、前記一方のブロック要素に設定された屈曲点の座標情報を含むように、前記一方のブロック要素を含む第1または第2のブロック線図片の前記構造情報を生成する
ことを特徴とする請求項2に記載のプログラム生成装置。
At least one data line is bent halfway,
The block diagram includes coordinate information of a bending point of the at least one data line;
The block diagram dividing means sets the coordinate information of the bending point to a predetermined one of the block elements immediately before and after the at least one data line;
The structure information generating unit generates the structure information of the first or second block diagram piece including the one block element so as to include the coordinate information of the bending point set in the one block element. The program generation device according to claim 2.
それぞれ入力ブロック要素、演算ブロック要素、出力ブロック要素および分岐点ブロック要素のうちのいずれかでありそれぞれ識別子が設定された複数のブロック要素の接続関係を記述した複数の構造情報をプログラムのコメント行から読み出すデータ読出手段と、
前記複数の構造情報のそれぞれに記述された前記接続関係に従って前記複数のブロック要素をデータ線で接続することにより複数のブロック線図片を生成するブロック線図片生成手段と、
各前記ブロック線図片間で同一の識別子を持つ複数の分岐点ブロック要素を1つの分岐点へ統合するように各前記ブロック線図片を合成してブロック線図を生成するブロック線図片合成手段と、を備え、
各前記構造情報において、前記入力ブロック要素と前記演算ブロック要素と前記出力ブロック要素にはそれぞれ座標情報が設定され、また、前記同一の識別子を持つ複数の分岐点ブロック要素のうちのいずれかには前記複数の分岐点ブロック要素が統合されるべき前記分岐点の座標情報が設定され、
前記ブロック線図片合成手段は、
各前記ブロック線図片における前記入力ブロック要素と前記演算ブロック要素と前記出力ブロック要素とをそれぞれの座標情報に応じた位置に配置し、
前記同一の識別子を持つ複数の分岐点ブロック要素を統合した前記分岐点を、前記複数の分岐点ブロック要素のうちのいずれかに設定されている座標情報に応じた位置に配置する
ことを特徴とするブロック線図生成装置。
From the comment line of the program, multiple pieces of structural information describing the connection relationships of multiple block elements, each of which is one of an input block element, an operation block element, an output block element, and a branch point block element, each set with an identifier Data reading means for reading;
Block diagram piece generating means for generating a plurality of block diagram pieces by connecting the plurality of block elements with data lines according to the connection relationship described in each of the plurality of structure information;
A block diagram piece composition for generating a block diagram by synthesizing each block diagram piece so as to integrate a plurality of branch point block elements having the same identifier between the block diagram pieces into one branch point Means, and
In each of the structural information, coordinate information is set for each of the input block element, the calculation block element, and the output block element, and any one of the plurality of branch point block elements having the same identifier is provided. The coordinate information of the branch point where the plurality of branch point block elements are to be integrated is set,
The block diagram piece combining means is:
The input block element, the arithmetic block element, and the output block element in each block diagram piece are arranged at positions corresponding to the respective coordinate information,
The branch point obtained by integrating a plurality of branch point block elements having the same identifier is arranged at a position corresponding to coordinate information set in any of the plurality of branch point block elements. A block diagram generation device.
前記複数の構造情報はそれぞれ各前記ブロック要素の入力端子および出力端子の位置を記述し、
前記複数の構造情報のうちの1つの構造情報は、前記1つの構造情報における前記複数のブロック要素の少なくとも1つに関連づけられて設定された、データ線の屈曲点の座標情報を記述し、
前記ブロック線図片生成手段は、各前記ブロック要素の前記入力端子および出力端子間を接続し、
前記ブロック線図片合成手段は、前記屈曲点の座標情報が関連づけられたブロック要素の直前および直後のデータ線のうちの一方が、前記屈曲点の座標情報に応じた位置で屈曲するように、前記一方のデータ線を配置する
ことを特徴とする請求項4に記載のブロック線図生成装置。
The plurality of structural information respectively describe the positions of the input terminals and output terminals of the block elements,
One structure information of the plurality of structure information describes coordinate information of a bending point of a data line set in association with at least one of the plurality of block elements in the one structure information,
The block diagram piece generating means connects between the input terminal and the output terminal of each block element,
The block diagram piece synthesizing means is configured so that one of the data lines immediately before and after the block element associated with the coordinate information of the bending point is bent at a position corresponding to the coordinate information of the bending point. The block diagram generation device according to claim 4, wherein the one data line is arranged.
JP2009048455A 2009-03-02 2009-03-02 Program generating apparatus and block diagram generating apparatus Active JP5275087B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009048455A JP5275087B2 (en) 2009-03-02 2009-03-02 Program generating apparatus and block diagram generating apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009048455A JP5275087B2 (en) 2009-03-02 2009-03-02 Program generating apparatus and block diagram generating apparatus

Publications (2)

Publication Number Publication Date
JP2010204855A JP2010204855A (en) 2010-09-16
JP5275087B2 true JP5275087B2 (en) 2013-08-28

Family

ID=42966288

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009048455A Active JP5275087B2 (en) 2009-03-02 2009-03-02 Program generating apparatus and block diagram generating apparatus

Country Status (1)

Country Link
JP (1) JP5275087B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5831385B2 (en) * 2012-07-25 2015-12-09 株式会社デンソー Model comparison device and model comparison tool
KR101597780B1 (en) * 2014-05-22 2016-02-25 황수진 Method and apparatus for visually implementing software code
JP6486574B2 (en) * 2016-11-17 2019-03-20 三菱電機株式会社 Program code generating apparatus, program code generating method, and program code generating program

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0635685A (en) * 1992-07-14 1994-02-10 Nec Corp Program structure specification managing device
JPH08179938A (en) * 1994-12-22 1996-07-12 Gaio Technol Kk Device and method for generating automatic specification
JPH09198236A (en) * 1996-01-19 1997-07-31 Honda Motor Co Ltd Method for determining instruction order and device therefor
JPH11212776A (en) * 1998-01-27 1999-08-06 Nec Commun Syst Ltd System specification description language/program code coversion system and record medium
JP2005222221A (en) * 2004-02-04 2005-08-18 Hitachi Ltd Integrated controller development tool, integrated controller and integrated controller development process

Also Published As

Publication number Publication date
JP2010204855A (en) 2010-09-16

Similar Documents

Publication Publication Date Title
AU2013290313B2 (en) Method and system for automated improvement of parallelism in program compilation
CN110968325B (en) Applet conversion method and device
US8387014B2 (en) Synchronization of concurrently modified interdependent semi-derived artifacts
CN1195278C (en) XML-robot
CN106648662B (en) Report generation device and method based on project cost calculation description language BCL
JP5005510B2 (en) Software design support method, design support apparatus, and design support program
CN101276278B (en) Code conversion apparatus
CN104020994B (en) Stream process definition device and stream process based on streaming system define method
JP2011060277A (en) Integration environment generator
JP6479184B2 (en) Computer-executable model reverse engineering method and apparatus
JP2009181446A (en) Program generating device and block diagram generating apparatus
JPS6267634A (en) Generation of object code for making input data coincide with output data structure
CN112069456A (en) Model file generation method and device, electronic equipment and storage medium
JP5275087B2 (en) Program generating apparatus and block diagram generating apparatus
JP2008225898A (en) Conversion device, conversion program, and conversion method
JP2005234959A (en) Device, program and method for preparing template
JP5041990B2 (en) Software component extraction support device
JP6175306B2 (en) Control program dividing apparatus, control program dividing method and recording medium therefor
JP3759630B2 (en) Development support system for spiral object-oriented software
JP7059757B2 (en) API processing method, terminal, API processing program
JP2009211143A (en) Information processor and information processing program
WO2011090032A1 (en) Parallel processing program generation method, parallel processing program generation program, and parallel processing program generation apparatus
JP2013148953A (en) Program template automatic generation program and program template automatic generation device
JP7375835B2 (en) Program generation device, program generation method, and program
Chen et al. Navigation Flow Modeling as a Basis for the Automatic Generation of Android APPs.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110916

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121130

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: 20130423

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130515

R151 Written notification of patent or utility model registration

Ref document number: 5275087

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151