JPS62267842A - Program checking system - Google Patents

Program checking system

Info

Publication number
JPS62267842A
JPS62267842A JP61111705A JP11170586A JPS62267842A JP S62267842 A JPS62267842 A JP S62267842A JP 61111705 A JP61111705 A JP 61111705A JP 11170586 A JP11170586 A JP 11170586A JP S62267842 A JPS62267842 A JP S62267842A
Authority
JP
Japan
Prior art keywords
data
module
modules
flow
software
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.)
Pending
Application number
JP61111705A
Other languages
Japanese (ja)
Inventor
Hideki Chigira
千吉良 英毅
Yoshiaki Nagai
義明 永井
Noriko Otaki
大滝 紀子
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP61111705A priority Critical patent/JPS62267842A/en
Publication of JPS62267842A publication Critical patent/JPS62267842A/en
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

PURPOSE:To improve the synthesizing performance and efficiency of a program of a data type reasoning system by using a chart produced in response to the pattern of a data flow to produce the structure of a each module. CONSTITUTION:A data flow 92 of the data 89 is checked and the data 88 written to the flow 92 is read. Then the types of both data 89 and 88 are checked. A data flow 91 of the input data 87 is checked for an instruction 83 using the data 88 as an output and the data 86 is read. Then the types of both data 87 and 86 are checked together with the types of both data 85 and 84. If an unmatched part is detected, the data flow is traced like a check mode of data types. Thus the unmatched part is successively corrected. These check and correction actions are repeated until no unmatched part exist any more. Thus a complete program is obtained.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、プログラムチェック方式に関し、特にプログ
ラム開発において、複雑なデータフローのパターンに応
じた構造体を図表を使用して表現し、データ型の推論や
データフローの解析を行うのに好適なプログラムチェッ
ク方式に関するものである。
[Detailed Description of the Invention] [Industrial Application Field] The present invention relates to a program check method, and in particular, in program development, the present invention uses diagrams to express structures corresponding to complex data flow patterns, and data types. The present invention relates to a program checking method suitable for performing inference and data flow analysis.

〔従来の技術〕[Conventional technology]

今日、ソフトウェア作成に要するコストの増大が問題と
され、それを解決する手段としてプログラムの自動生成
の様々な手法が研究されるようになっている。一方、プ
ログラム開発において、かなりの工数を投じて作成され
たソフトウェアの量も増加の傾向にあり、それらのソフ
トウェアを再利用する研究も進められている。
BACKGROUND ART Today, the increasing cost required for software creation is considered a problem, and various methods for automatically generating programs are being researched as a means to solve this problem. On the other hand, the amount of software that requires a considerable amount of man-hours to create in program development is also increasing, and research into reusing such software is also underway.

このようなプログラムの自動作成やソフトウェア再利用
においては、データ型の整合性が重要である。ダイブ付
言語では、データ型が不整合の場合にはプログラムの実
行が行えず、またLISPやPROLOG等の記号処理
言語では、データ型の整合性はそれほど問題とならない
が、データ型の情報を利用してプログラミングエラー等
を検出することが可能となる。したがって、データ型を
プログラムの字面から推論する試みやデータフローを直
接にたどりながら解析する方式が提案されている。
In such automatic program creation and software reuse, data type consistency is important. In languages with dives, if the data types are inconsistent, the program cannot be executed, and in symbolic processing languages such as LISP and PROLOG, data type consistency is not so much of an issue, but data type information cannot be used. This makes it possible to detect programming errors and the like. Therefore, attempts have been made to infer the data type from the font of the program, and methods to analyze the data while directly tracing the data flow have been proposed.

この点に関しては、例えば、予稿集[論理言語における
タイプインタフェースとそのタイプチェックへの応用」
情報処理学会第26回(昭和58年前期)全国大会など
に見られる通りである。
In this regard, see, for example, the Proceedings of ``Type Interfaces in Logic Languages and Their Application to Type Checking''.
This can be seen at the 26th National Convention of the Information Processing Society of Japan (first half of 1981).

〔発明が解決しようとする問題点〕[Problem that the invention seeks to solve]

上記従来例では、データフローを直接にたどりながら解
析する方式なので、複雑なデータフローや、排反的デー
タフロー、階層的になったデータフローなどの場合、正
確に解析するのは難しいという問題があった。また、排
反的にしか起こらないデータについて、データフローの
みに関する解析では、他のデータとの識別ができず、制
御フローを参照しなければ、正確なデータ受け渡しの解
析ができないという問題があった。
In the conventional example above, the method analyzes the data flow by directly following it, so there is a problem that it is difficult to accurately analyze complex data flows, exclusive data flows, hierarchical data flows, etc. there were. In addition, for data that occurs only in an exclusive manner, it is not possible to distinguish it from other data when analyzing only the data flow, and there is a problem that accurate data exchange analysis cannot be performed without referring to the control flow. .

本発明の目的は、このような従来の問題を解決し、複雑
な結合関係のモジュールについても、データ型チェック
、推論による修正を行え、かつ、排反事象間のデータフ
ローについても、制御フローを参照せずに正確なデータ
型のチェックが行えるプログラムチェック方式を提供す
ることにある。
The purpose of the present invention is to solve such conventional problems, to be able to perform data type checking and modification by inference even for modules with complex connection relationships, and to improve control flow even for data flows between exclusive events. The purpose of the present invention is to provide a program check method that allows accurate data type checking without reference.

【問題点を解決するための手段〕[Means for solving problems]

上記問題点を解決するために、本発明では、計算機の計
算手順を表すソフトウェアモジュール群を結合して、1
個の完成したソフトウェアを生成するために、ソフトウ
ェアモジュールの特性を、1群の構造体に表現し、該構
造体の情報を使うことにより、ソフトウェアモジュール
間のデータの受け渡しを、データ型に基づいてチェック
し、推論による修正を行うプログラムチェック方式にお
いて、上記構造体中に、モジュール間のデータの流れ(
データフロー)を指し示す機構を設け、モジュールの結
合関係を、データフローのパターンに応じて、図表に書
き表し、該書き表された図表を構造体に表現し、排反的
に起こりつるデータに識別子を付帯させ、該構造体の情
報と上記機構を用いて階層的になっているモジュールや
、ネットワークを形成しているモジュール、複雑な結合
関係のモジュール等のデータ型チェックや修正を行い。
In order to solve the above problems, in the present invention, a group of software modules representing calculation procedures of a computer are combined into one.
In order to generate a complete piece of software, the characteristics of a software module are expressed in a set of structures, and the information in the structure is used to transfer data between software modules based on the data type. In the program checking method that checks and corrects by inference, the above structure contains data flow between modules (
A mechanism is provided to indicate the data flow), the connection relationships of modules are expressed in a diagram according to the data flow pattern, the diagram is expressed in a structure, and an identifier is assigned to data that occurs exclusively. The information on the structure and the above mechanism are used to check and modify the data type of hierarchical modules, modules forming networks, modules with complex connection relationships, etc.

さらに上記識別子により排反的に起こるデータのデータ
型チェックも行うことに特徴がある。
Furthermore, it is characterized in that it also performs a data type check on data that occurs exclusively using the above identifier.

〔作用〕[Effect]

階層的なモジュール構造、ネットワークを形成している
モジュール、複雑な結合関係のモジュールなどのデータ
フローの検索のために、データフローのパターンに応じ
た図表を作成し、それを使用することにより、各モジュ
ールの構造体の作成を容易にし、データ型推論によるプ
ログラム開発(プログラム合成)の能率と性能を向上さ
せるものである。さらに、データフローの解析方式にお
いて、排反的に発生する制御フローと関連したデータフ
ローについては、他のデータフローと区別するためにそ
のデータフローによって受け渡されるデータに識別子を
付帯させ、排反事象間でのデータ型のチェックを行うこ
とにより、制御フローを参照せずに、全データフローの
解析を行うものである。
In order to search for data flows such as hierarchical module structures, modules forming networks, and modules with complex connection relationships, you can create diagrams according to data flow patterns and use them to search for each data flow. It facilitates the creation of module structures and improves the efficiency and performance of program development (program synthesis) through data type inference. Furthermore, in the data flow analysis method, for data flows related to control flows that occur exclusively, an identifier is attached to the data passed by that data flow to distinguish it from other data flows, and By checking the data type between events, the entire data flow can be analyzed without referring to the control flow.

〔実 施 例〕〔Example〕

以下1本発明の一実施例を、図面により詳細に説明する
An embodiment of the present invention will be described below in detail with reference to the drawings.

本実施例を第1実施例と第2実施例に分けて説明する。This embodiment will be explained separately into a first embodiment and a second embodiment.

■、第1実施例 第1実施例でプログラムチェックが行われる各ソフトウ
ェアモジュール(プログラムモジュール)の特徴は、次
のような構造体に表現されている。
(2) First Embodiment The characteristics of each software module (program module) whose program is checked in the first embodiment are expressed in the following structure.

((入出力データ型) (データフロー) (モジュールの包含関係) (修正ルール) 二の構造体のデータフローの機構には、どのモジュール
からどのデータを受け取り、どのモジュールにどのデー
タを渡すかという情報を入れておく。また、排反的に起
こりつるデータフローについては、そのデータ、に識別
子を付帯させる。
((I/O data type) (Data flow) (Module inclusion relationship) (Modification rules) The data flow mechanism of the second structure includes information on which data is received from which module and which data is passed to which module. In addition, for data flows that occur exclusively, an identifier is attached to the data.

第1図は、本発明の一実施例を示す対話型計算機支援シ
ステムの構成図である。これは、プログラムの開発(例
えば、プログラムの合成)やテストを計算機を用いて対
話的に行うシステムを示したものである。
FIG. 1 is a block diagram of an interactive computer support system showing one embodiment of the present invention. This is a system for interactively developing programs (for example, program synthesis) and testing using a computer.

第1図において、lは対話的にプログラムのデータ型チ
ェック等を行うビデオ・データ・ターミナルでディスプ
レイとキーボードとを有している。
In FIG. 1, l is a video data terminal for interactively checking the data type of a program, etc., and has a display and a keyboard.

2は計算機処理装置であり、3はソフトウェアモジュー
ルの蓄積ファイルである。4はプログラム合成制御部で
あり、データ型チェック部5.修正順序制御部6、推論
制御部7.対話修正部8を含んでいる。
2 is a computer processing device, and 3 is a storage file of a software module. 4 is a program synthesis control section, and a data type check section 5. Modification order control unit 6, inference control unit 7. It includes a dialogue modification section 8.

第2図は、第1図におけるプログラムのチェック処理手
順を示すフローチャートである。
FIG. 2 is a flowchart showing the program check processing procedure in FIG. 1.

まず、計算機処理装置2内のプログラム合成制御部4の
制御により各モジュールの構造体を蓄積ファイル3から
読み込む(ステップ201)、どのモジュールにも含ま
れていないモジュールの出力データのデータフローを読
み込み(ステップ202)、そこに書かれているデータ
を読み込む(ステップ203)。次にそのデータに識別
子があるかどうか調べる(ステップ2o4)。データを
識別子によって分類し、分類されたデータフローごとに
データ型チェックを行う(ステップ205)、次に、そ
のデータフローからたどれる全部のデータフローについ
て、最初の場合と同様にデータ型チェックを行う、その
後、出力からたどれないデータフローについても同様に
データ型チェックを行う。
First, under the control of the program synthesis control unit 4 in the computer processing device 2, the structure of each module is read from the storage file 3 (step 201), and the data flow of output data of a module that is not included in any module is read ( Step 202), and the data written there is read (Step 203). Next, it is checked whether the data has an identifier (step 2o4). Classify the data by identifier, perform a data type check for each classified data flow (step 205), then perform a data type check on all data flows that can be traced from that data flow in the same way as in the first case. After that, data types are checked in the same way for data flows that cannot be traced from the output.

全部のデータフローについてチェックを終ねると(ステ
ップ206)、不整合部分がなければ(ステップ207
)、処理を終了する。不整合部分があれば、以下に示す
修正を行う、修正は、不整合部分のデータフローについ
て、データ型チェックの場合と同様に、データフロー、
データを読み込み(ステップ208,209)、読み込
んだデータの識別子チェックを行い、識別子によって分
類されたデータごとに、不整合となったデータの、構造
体の入出力データの機構を修正する(ステップ2to、
211)。修正後、その修正により、影響を受けるデー
タフローを、次々にたどって同様に修正する。たどり得
る全部のデータフローについて修正が終わると(ステッ
プ212)、最初のステップ201の処理に戻って、全
体のデータ型チェックを行う。不整合部分がなくなるま
で、この操作を繰り返す。
After checking all data flows (step 206), if there are no inconsistent parts (step 207)
), the process ends. If there is an inconsistent part, perform the corrections shown below. To correct the data flow of the inconsistent part, as in the case of data type checking, the data flow,
Read the data (steps 208, 209), check the identifier of the read data, and correct the input/output data mechanism of the structure for the inconsistent data for each data classified by the identifier (step 2 to 209). ,
211). After the modification, data flows affected by the modification are traced one after another and modified in the same way. When all possible data flows have been corrected (step 212), the process returns to the first step 201 and the entire data type is checked. Repeat this operation until there are no inconsistent parts.

次に、C0BOL言語を用いて、データフローのパター
ンに応じた図表の作成手順について説明する。
Next, a procedure for creating charts according to data flow patterns will be explained using the C0BOL language.

第3図は、入力データに対しである命令を実行し、その
結果を出力するパターンのモジュール例を示す図である
FIG. 3 is a diagram showing an example module of a pattern that executes a certain command on input data and outputs the result.

第3図において、31はモジュール、32は入力データ
、33は出力データである。このパターンに含まれる命
令には、ADD、MOVE、READ、WRITEなど
がある。具体的に、MOVEを例にとると、MOVE(
データ32)TO(データ33)、というソースコード
に対応する。ここで、READはファイル名を入力デー
タとし。
In FIG. 3, 31 is a module, 32 is input data, and 33 is output data. Commands included in this pattern include ADD, MOVE, READ, WRITE, etc. Specifically, taking MOVE as an example, MOVE (
Data 32) TO (Data 33) corresponds to the source code. Here, READ uses the file name as input data.

レコード名を出力データとする。Use record name as output data.

第4図は、複数の入力データに対しである命令を実行し
、その結果を出力するパターンのモジュール例を示す図
である。
FIG. 4 is a diagram showing an example module of a pattern that executes a certain command on a plurality of input data and outputs the result.

第4図において、41はモジュール、42.43は入力
データ、44は出力データである。このパターンの命令
にはCOMPUTEなどが含まれ、この例では入力デー
タが2つの場合を示したが、入力データが3以上の場合
も同様である。具体的な例を挙げると、 COMPUTE (データ44)= (データ42)*(データ43)。
In FIG. 4, 41 is a module, 42, 43 is input data, and 44 is output data. Commands of this pattern include COMPUTE and the like, and although this example shows a case where there are two input data, the same applies to a case where there are three or more input data. To give a specific example, COMPUTE (data 44) = (data 42) * (data 43).

というソースコードに対応する。It corresponds to the source code.

第5図は、入力データのみを持ち、出力データのないパ
ターンのモジュール例を示す図である。
FIG. 5 is a diagram showing an example of a module having only input data and no output data.

第5図において、51はモジュール、52は入力データ
である。このパターンの命令には、実行文としては、0
PEN、CLO5Eなどが含まれ、IFの条件判定部も
、このパターンで表示する。
In FIG. 5, 51 is a module and 52 is input data. This pattern of instructions has 0 as an executable statement.
This pattern includes PEN, CLO5E, etc., and the IF condition determination section is also displayed in this pattern.

OP E N 、 CL OS Eについては、入力デ
ータはファイル名であり、IFの条件部については、入
力データは、条件判定を行うためのデータである。
For OPEN and CLOSE, the input data is a file name, and for the condition part of IF, the input data is data for performing condition determination.

具体例としては、 IF(データ52)=1 というソースコードに対応する。As a specific example, IF (data 52) = 1 It corresponds to the source code.

第6図は、階層的になっているパターンのモジュール例
を示す図である。ここで、入力データは、内部モジュー
ルで入力とするデータであり、出力データは内部モジュ
ールから出力されるデータである。
FIG. 6 is a diagram showing an example of modules in a hierarchical pattern. Here, the input data is data that is input to the internal module, and the output data is data that is output from the internal module.

第6図において、61はモジュール、62はモジュール
61の内部モジュール(モジュール)、63はモジュー
ル61の入力データ、64はモジュール62の入力デー
タで、入力データ63と同じである。65はモジュール
62の出力データで。
In FIG. 6, 61 is a module, 62 is an internal module (module) of module 61, 63 is input data of module 61, and 64 is input data of module 62, which is the same as input data 63. 65 is the output data of module 62.

出力データ66と同じである。66はモジュール61の
出力データである。このパターンのモジュールには、P
 E RF ORMなどが含まれる。内部モジュールと
しては、PERFORMで、さらに、階層的なモジュー
ル構造にすることも可能であり、実行文でもよい。具体
例としては、 PERFORM(モジュール61)。
This is the same as the output data 66. 66 is output data of the module 61. This pattern of modules includes P
Includes E RF ORM, etc. The internal module may be PERFORM, which may also have a hierarchical module structure, or may be an executable statement. A specific example is PERFORM (module 61).

(モジュール61)SECTION。(Module 61) SECTION.

MOVE (データ64)To (データ65)。MOVE (data 64) To (data 65).

EXIT。EXIT.

というソースコードに対応する。It corresponds to the source code.

第7図は、5ORT命令をモジュールで示した図である
FIG. 7 is a diagram showing five ORT instructions in modules.

第7図において、67はモジュール、68.69170
はモジュール67の内部モジュール(モジュール)、7
1.72はモジュール67の入力データ、73はモジュ
ール68の入力データ、74はモジュール68の出力デ
ータ、75.76はモジュール69の入力データ、77
はモジュール69の出力データ、78はモジュール70
の入力データ、79はモジュール7oの出力データ、8
0はモジュール67の出力データである。モジュール6
8は、RELEASE命令を含む入力手続部である。モ
ジュール69は5ORT命令であり、ファイル名とソー
トキーを入力とし、ファイル名を出力とする。モジュー
ル70は、RETURN命令を含む出力手続部である。
In FIG. 7, 67 is a module, 68.69170
is the internal module (module) of module 67, 7
1.72 is input data of module 67, 73 is input data of module 68, 74 is output data of module 68, 75.76 is input data of module 69, 77
is the output data of module 69, 78 is the output data of module 70
, 79 is the output data of module 7o, 8
0 is the output data of module 67. module 6
8 is an input procedure section that includes a RELEASE command. Module 69 is a 5ORT command, which takes the file name and sort key as input and outputs the file name. Module 70 is an output procedure section that includes a RETURN instruction.

具体例としては、5ORT(データ75)。A specific example is 5ORT (data 75).

ON  A S CE N D I N G  K E
 Y (データ76)。
O N A S C E N D I N G K E
Y (data 76).

INPLIT  PROCEDURE (モジュール6
8)。
INPLIT PROCEDURE (Module 6
8).

○UTPUT  PROCEDURE (モジュール6
9)。
○UTPUT PROCEDURE (Module 6
9).

というソースコードに対応する。It corresponds to the source code.

後述する第9図は、5EARCH命令を示した図である
。具体例では、 5EARCH(データ97)  AT  ENDCON
TINUE。
FIG. 9, which will be described later, is a diagram showing the 5EARCH instruction. In the specific example, 5EARCH (data 97) AT ENDCON
TINUE.

’/’V HE N (データ101(データ100)
)=(データ102)。
'/'V HE N (Data 101 (Data 100)
) = (data 102).

ADD  I  To(データ103)。ADD I To (data 103).

END−5EARCH。END-5EARCH.

というソースコードに対応する。It corresponds to the source code.

以上のように、各命令を図に表示し、それぞれのデータ
についての受け渡しをデータフローでつなげると、あら
ゆるモジュールの結合関係が図に示せる。後述する第8
図は、第3図のパターンのモジュールを2つつなげて第
6図に示すような階層的なパターンにしたものである。
As described above, by displaying each instruction in a diagram and connecting each data exchange with a data flow, the connection relationships of all modules can be shown in the diagram. Part 8 to be described later
The figure shows a hierarchical pattern shown in FIG. 6 by connecting two modules of the pattern shown in FIG. 3.

以下、簡単なモジュール群の例と複雑なモジュール群の
例を示し、完全なプログラムを生成する手順について説
明する。
Below, examples of simple module groups and complex module groups will be shown, and the procedure for generating a complete program will be explained.

第8図は、第1実施例による簡単なソフトウェアモジュ
ール群の一例を示す図である。これは、階層的なモジュ
ール群の例を示したものである。
FIG. 8 is a diagram showing an example of a simple software module group according to the first embodiment. This is an example of a hierarchical module group.

第8図において、81はモジュール、82.83は命令
、84はモジュール81の入力データ、85は命令82
の入力データ、86は命令82の出力データ、87は命
令83の入力データ、88は命令83の出力データ、8
9はモジュール81の出ノJデータ、90はモジュール
81の入力から命令82へのデータフロー、91は命令
82から命令83へのデータフロー、92は命令83か
らモジュール81の出力へのデータフローである。
In FIG. 8, 81 is a module, 82, 83 is an instruction, 84 is input data of the module 81, and 85 is an instruction 82.
86 is the output data of the instruction 82, 87 is the input data of the instruction 83, 88 is the output data of the instruction 83, 8
9 is the output J data of the module 81, 90 is the data flow from the input of the module 81 to the instruction 82, 91 is the data flow from the instruction 82 to the instruction 83, and 92 is the data flow from the instruction 83 to the output of the module 81. be.

ここで、モジュール81の機能は、入力データ84につ
いて、命令82.命令83を実行し、その結果をデータ
89として出力するものである。
Here, the function of module 81 is to perform instructions 82 . It executes an instruction 83 and outputs the result as data 89.

次に、第8図を用いて、完全なプログラムを生成する手
順を説明する。
Next, the procedure for generating a complete program will be explained using FIG.

まず、データ89−のデータフロー92を調べ、そこに
書かれているデータ88を読み込み、データ89とデー
タ88のデータ型チェックを行う。
First, the data flow 92 of the data 89- is examined, the data 88 written there is read, and the data types of the data 89 and the data 88 are checked.

次に、データ88を出力とする命令83について、入力
データ87のデータフロー91を調べ、データ86を読
み込み、データ87とデータ86のデータ型チェックを
行う。同様に、データ85とデータ84のデータ型チェ
ックを行う、その結果、不整合部分があれば、データ型
チェックの場合と同様にデータフローをたどり、順次修
正していく。
Next, regarding the instruction 83 that outputs the data 88, the data flow 91 of the input data 87 is examined, the data 86 is read, and the data types of the data 87 and the data 86 are checked. Similarly, the data types of data 85 and data 84 are checked, and if there is any inconsistency as a result, the data flow is followed in the same way as in the case of data type checking, and corrections are made sequentially.

不整合部分がなければ、完全なプログラムである。If there are no inconsistent parts, it is a complete program.

不整合部分がなくなるまで、このデータ型チェック、修
正の操作を繰り返し、完全なプログラムを生成する。
This data type checking and correction operation is repeated until there are no inconsistent parts to generate a complete program.

第9図は、第1実施例による複雑なソフトウェアモジュ
ール群の一例を示す図である。これは、5EARCH命
令を示したものである。
FIG. 9 is a diagram showing an example of a complex software module group according to the first embodiment. This shows the 5EARCH instruction.

第9図において、93はモジュール、94は検索、95
は命令、96.97,98.99はモジュール93(7
1入カデータ、100,101,102は検索94の入
力データ、103は命令95の入力データ、104は検
索94の出力データ、105は命令95の出力データ、
106,107はモジュール93(7)出力データ、1
08,109゜110はモジュール93の入力から検索
94へのデータフロー、txtはモジュール93の入力
から命令95へのデータフロー、112は検索94から
モジュール93の出力へのデータフロー、113は命令
95がらモジュール93の出力へのデータフローである
。ここで、モジュール93の機能は、検索94で配列形
式のデータ101を、データ100番目から順に、デー
タ102と同じものがあるかを調べ、同じものがあれば
、その配列番号をデータ104として出力し、また、デ
ータ99に対して命令95を実行した結果であるデータ
105を出力するものであり、C0BOLで言えば、 
S earchの機能にあたるものである。
In FIG. 9, 93 is a module, 94 is a search, and 95 is a module.
is the instruction, 96.97, 98.99 is the module 93 (7
1 input data, 100, 101, 102 are input data of search 94, 103 is input data of instruction 95, 104 is output data of search 94, 105 is output data of instruction 95,
106 and 107 are module 93 (7) output data, 1
08,109° 110 is the data flow from the input of the module 93 to the search 94, txt is the data flow from the input of the module 93 to the instruction 95, 112 is the data flow from the search 94 to the output of the module 93, 113 is the instruction 95 9 is the data flow to the output of module 93. Here, the function of the module 93 is to use the search 94 to check the array format data 101 in order from the 100th data to see if there is any that is the same as the data 102, and if there is the same, output the array number as the data 104. It also outputs data 105, which is the result of executing instruction 95 on data 99, and in C0BOL,
This corresponds to the search function.

次に、第9図を用いて、完全なプログラムを生成する手
順を説明する。
Next, the procedure for generating a complete program will be explained using FIG.

第8図の場合と同様に、データ106,107からデー
タフロー112,113をたどり、データ104,10
5とのデータ型チェックを行う。
As in the case of FIG. 8, data flows 112 and 113 are traced from data 106 and 107, and data flows 104 and 10
Perform data type check with 5.

そして、データ100,101.1027り1%らデー
タ70−108,109,110をたどり、データ98
,97.98とのデータ型チェックを行い、また、デー
タ103からデータフローillをたどり、データ99
とのデータ型チェックを行う。
Then, trace data 100, 101.1027, 1%, etc. data 70-108, 109, 110, and data 98
, 97.98, and also traces the data flow ill from data 103 to data 99.
Perform data type check with.

その結果、不整合がなければデータ型チェックを終了し
、不整合があれば、同様にデータフローをたどって修正
して行く。不整合のない完全なプログラムになるまで1
以上の操作を繰り返す。
As a result, if there is no inconsistency, the data type check is completed, and if there is any inconsistency, the data flow is similarly followed and corrected. 1 until a complete program with no inconsistencies
Repeat the above operations.

ここで、第8図、第9図ともに、各データについて、デ
ータフローが1本ずつしかないので、ra別壬子チェッ
ク関係しない。
Here, in both FIGS. 8 and 9, there is only one data flow for each data, so the RA separate check is not relevant.

このように、第1実施例においては、データフローのパ
ターンに応じた図表を用いることにより、各モジュール
の構造体を表現しやすくし、データフローの検索を容易
にする。そのため、第9図のような複雑な機能のものに
ついても、第8図の簡単なものと同じ方式で、データ型
推論が可能となる。また、C0BOLに限らず、PAS
CAL。
In this manner, in the first embodiment, the structure of each module can be easily expressed by using a diagram corresponding to the data flow pattern, thereby facilitating the data flow search. Therefore, data types can be inferred even for complex functions as shown in FIG. 9 using the same method as for simple functions as shown in FIG. In addition to COBOL, PAS
CAL.

PL/1.PL/Hなど他の言語においても、同様の方
式が成立する。
PL/1. A similar system also holds true for other languages such as PL/H.

■、第2実施例 第2実施例でプログラムチェックが行われる各ソフトウ
ェアモジュールの特徴は、次のような構造体に表現され
る。
(2) Second Embodiment The characteristics of each software module whose program is checked in the second embodiment are expressed in the following structure.

((入出力データ型) (データフロー) (モジュールの包含間係) (モジュールの機能) (修正ルール) この構造体のデータフローの機構中の排反的にしか起こ
らないデータには、識別子を付帯させる。
((input/output data type) (data flow) (module inclusion relation) (module function) (modification rule) Data that occurs only exclusively in the data flow mechanism of this structure should be given an identifier. attach to it.

第10図は1本発明の第2実施例を示す対話型計算機支
援システム構成図である。これは、第1図のシステム構
成のプログラム合成制御部4内の機能にデータ識別部9
を追加したものである。し゛たがって、詳細については
第1図を参照されたい。
FIG. 10 is a block diagram of an interactive computer support system showing a second embodiment of the present invention. This is a function of the data identification section 9 in the program synthesis control section 4 of the system configuration shown in FIG.
is added. Therefore, please refer to FIG. 1 for details.

第1実施例において行ったプログラムの生成(プログラ
ム合成)では、各データについて識別子が1本ずつしか
なかったが、排反的に起こる事象については、1つのデ
ータかぺ複数(2以上)のデータフローが存在する場合
がある。そこで、排反的にしか起こらないデータには識
別子を付帯させ、その識別子の識別をデータ識別部9に
より行い、排反的に発生するデータ型のチェック等にそ
の識別結果を利用する。
In the program generation (program synthesis) performed in the first embodiment, there was only one identifier for each data, but for events that occur exclusively, one data can be used for multiple (two or more) Flows may exist. Therefore, an identifier is attached to data that occurs only in an exclusive manner, the identifier is identified by the data identification section 9, and the identification result is used for checking the data type that occurs in an exclusive manner.

第11図は、第2実施例の制御手順を示すフローチャー
トである。以下、第11図により本実施例の動作を説明
する。
FIG. 11 is a flowchart showing the control procedure of the second embodiment. The operation of this embodiment will be explained below with reference to FIG.

まず、チェックしたいモジュールの構造体からデータフ
ローを読み込む(ステップ1101)。そのデータフロ
ーに書き込まれているデータを、そのデータを持つモジ
ュールの構造体の入出力データ型の機構から読み込む(
ステップ1102)。各データについて、識別子が付帯
しているかチェックする(ステップ1103)。付帯し
ているデータがある場合には、識別子の種類に応じて、
データを分類する(ステップ1104)。分類されたデ
ータごとに、モジュール間のデータの受け渡しのチェッ
クを行う(ステップ1105)。識別子の付帯している
データがない場合には、全部のデータを一度にチェック
する(ステップ1106)、以下。
First, a data flow is read from the structure of the module to be checked (step 1101). Read the data written to that data flow from the input/output data type mechanism of the structure of the module that has that data (
Step 1102). It is checked whether an identifier is attached to each data (step 1103). If there is accompanying data, depending on the type of identifier,
Classify the data (step 1104). For each classified data, data transfer between modules is checked (step 1105). If there is no data with an identifier attached, all data is checked at once (step 1106), and so on.

排反的に起こるデータを有するソフトウェアモジュール
(プログラムチェック)群の具体例を示してプログラム
チェックを行う手順について説明する。
A procedure for performing a program check will be explained by showing a specific example of a software module (program check) group having data that occurs exclusively.

第12図は、第2実施例によるソフトウェアモジュール
群の結合関係図である。
FIG. 12 is a diagram showing the connection relationship of a group of software modules according to the second embodiment.

第12図において、120はモジュール、12■は条件
、122は命令、123と124はモジュール120の
入力データ、125は命令122の入力データ、126
は命令122の出力データ、127はモジュール120
の出力データ、128は条件121の入力、データ、1
29はモジュール120の入力から命令122へのデー
タフロー。
In FIG. 12, 120 is a module, 12■ is a condition, 122 is an instruction, 123 and 124 are input data of the module 120, 125 is input data of the instruction 122, 126
is the output data of the instruction 122, 127 is the module 120
The output data of 128 is the input of condition 121, data 1
29 is a data flow from the input of the module 120 to the instruction 122;

130は命令122の出力からモジュール120の出力
へのデータフロー、131はモジュール120の入力か
らモジュール120の出力へのデータフロー、132は
モジュール120の入力から条件121へのデータフロ
ーである。ここで、モジュール120の機能は、データ
123が、条件121を満たさない場合、データ124
をそのまま出力し、条件121を満たす場合、データ1
24について、命令122を実行した結果であるデータ
126を出力するものである。
130 is a data flow from the output of the instruction 122 to the output of the module 120, 131 is a data flow from the input of the module 120 to the output of the module 120, and 132 is a data flow from the input of the module 120 to the condition 121. Here, the function of the module 120 is that if the data 123 does not satisfy the condition 121, the data 124
is output as is, and if condition 121 is satisfied, data 1
24, data 126 which is the result of executing the instruction 122 is output.

次に、第12図を用いて、排反的に発生するデータにつ
いてのデータ蟹チェックを行う手順を説明する。
Next, with reference to FIG. 12, a procedure for performing a data crab check on data that occurs exclusively will be explained.

まず、モジュール120の出力側のデータフロ−を読み
込む、そこには、2本のデータフロー130,131が
書かれている。各データフローにより、データ124と
データ126を読む込む。
First, the data flow on the output side of the module 120 is read, in which two data flows 130 and 131 are written. Each data flow reads data 124 and data 126.

ここで、データ126は条件121が成り立つ場合のみ
に発生するデータであるから、識別子“1”が付帯して
いる。データ124とデータ126の識別子のチェック
により、データ124.データ126は2種類に分類さ
れる。まず、識別子“1”の付帯しているデータ126
と、データ127のデータ型チェックを行う0次に、デ
ータ126を出力データとする命令122について、入
力データ125のデータフロー129を読み込み、そこ
に書かれているデータ124を読み込む、ここで、デー
タフローは1本なので、データ124とデータ125の
データ型チェックを行う0次に、識別子の付帯していな
いデータ124について、データ127とのデータ型チ
ェックを行う、これで、出力データ127からたどれる
データフローについては、全部チェックしたことになる
。次に、条件121の入力データ128のデータフロー
132を読み込み、そこに害かれているデータ123を
読み込む。ここで、データフローは1本なので、データ
123とデータ128のデータ型チェックを行う。これ
で、モジュール120内部の全部のデータフローをチェ
ックしたので、不整合部分のリスト、あるいは、整合が
とれている、というメツセージをビデオ・データ・ター
ミナルlのディスプレイに出力して、モジュール120
内のデータ型チェックを終了する。
Here, since the data 126 is data that occurs only when the condition 121 is satisfied, the identifier "1" is attached thereto. By checking the identifiers of data 124 and data 126, data 124. Data 126 is classified into two types. First, the data 126 with the identifier “1”
Then, for the instruction 122 that uses the data 126 as output data, the data flow 129 of the input data 125 is read, and the data 124 written there is read. Since there is only one flow, check the data type of data 124 and data 125. Next, check the data type of data 124 with no identifier attached to data 127. This will allow you to check the data type of data 124 and data 125. As for the flow, everything has been checked. Next, the data flow 132 of the input data 128 of the condition 121 is read, and the corrupted data 123 is read therein. Here, since there is only one data flow, the data types of data 123 and data 128 are checked. Now that we have checked all the data flows within module 120, we can output a list of inconsistencies or a message indicating that they are consistent to the display of the video data terminal l, and
Finish the data type check within.

第13図は、第2実施例による他のソフトウェアモジュ
ール群の結合関係図である。
FIG. 13 is a diagram showing the connection relationship of another software module group according to the second embodiment.

第13図において、135はモジュール、13”8,1
37は命令、138は条件、139はモジュール135
の入力データ、140はモジュール135の出力データ
、141は命令136の入力データ、142は命令13
6の出力データ、143は命令137の入力データ、1
44は命令137の出力データ、145は条件138の
入力データ、146はモジュール135の入力から命令
136へのデータフロー、147は命令136から命令
137へのデータフロー、148は命令137から条件
138へのデータフロー、149は命令137から命令
136へのデータフロー、150は命令137からモジ
ュール135の出力へのデータフローである。ここで、
モジュール135の機能は、入力データ139に対して
、命令136と命令137を実行した後、命令137の
出力データが、条件138を満たすまで、命令136と
命令137を繰り返し行うものである。
In FIG. 13, 135 is a module, 13"8,1
37 is an instruction, 138 is a condition, 139 is a module 135
140 is the output data of the module 135, 141 is the input data of the instruction 136, 142 is the instruction 13
6 output data, 143 is input data of instruction 137, 1
44 is the output data of the instruction 137, 145 is the input data of the condition 138, 146 is the data flow from the input of the module 135 to the instruction 136, 147 is the data flow from the instruction 136 to the instruction 137, and 148 is the data flow from the instruction 137 to the condition 138. 149 is the data flow from the instruction 137 to the instruction 136, and 150 is the data flow from the instruction 137 to the output of the module 135. here,
The function of module 135 is to execute instructions 136 and 137 on input data 139, and then repeat instructions 136 and 137 until the output data of instruction 137 satisfies condition 138.

次に、第13図を用いて、第2実施例の他のソフトウェ
アモジュール群のデータ型チェックの手順を説明する。
Next, with reference to FIG. 13, a procedure for checking data types of other software module groups in the second embodiment will be explained.

まず、モジュール135の出力部分のデータフロー15
0を読み込み、そこに書がれているデータ144を読み
込む、ここで、データフローは1本なので、データ14
4とデータ140のデータ型チェックを行う。次に、デ
ータ144を出力とする命令137の、入力データ14
3のデータフロー147を読み込み、そこに書かれてい
るデータ142を読み込む。ここで、データフローは1
本なので、データ142とデータ143のデータ型チェ
ックを行う、さらに、データ142を出力とする命令1
36の入力データ141のデータフロー149と146
を読み込み、各データフローに書かれているデータ14
4.データ139を読み込む。ここで、データフロー1
49は、条件138により排反的に起こるものであるか
ら、データ144には識別子“2”が付帯している。識
別子のチェックにより、データ144とデータ139は
2種類に分類される。まず、識別子“2”の付帯してい
るデータ144と、データ141のデータ型チェックを
行う。次に識別子の付帯していないデータ139と、デ
ー′夕141のデータ型チェックを行う。これで、出力
データ140からたどれる全部のデータフローのチェッ
クを終了した。
First, data flow 15 of the output part of module 135
0 is read, and the data 144 written there is read. Here, since there is one data flow, data 14
4 and data 140 are checked. Next, the input data 14 of the instruction 137 that outputs the data 144 is
3 data flow 147 is read, and the data 142 written therein is read. Here, the data flow is 1
Since it is a book, it performs a data type check for data 142 and data 143, and also an instruction 1 that outputs data 142.
36 input data 141 data flows 149 and 146
Read the data 14 written in each data flow.
4. Read data 139. Here, data flow 1
49 occurs exclusively due to condition 138, so the data 144 is attached with the identifier "2". By checking the identifiers, data 144 and data 139 are classified into two types. First, data types of the data 144 and the data 141 attached with the identifier "2" are checked. Next, a data type check is performed on data 139 without an identifier and data 141. This completes the checking of all data flows that can be traced from the output data 140.

次に1条件138の人力データ145のデータフロー1
48を読み込み、そこに書かれているデータ144を読
み込む。ここで、データフローは1本なので、データ1
44とデータ145のデータ型チェックを行う。これで
、モジュール135の内部の全部のデータフローをチェ
ックしたので、不整合部分のリスト、あるいは整合がと
れているというメツセージを出力して、モジュール13
5内のデータ型チェックを終了する。
Next, 1 condition 138 human data 145 data flow 1
48 and the data 144 written therein. Here, there is only one data flow, so data 1
44 and data 145 are checked. Now that we have checked all the data flows inside the module 135, we can output a list of inconsistencies or a message that there is consistency, and
Finish the data type check in 5.

このように、第2実施例においては、排反的にしか起こ
らないデータフローについても、場合に恋じて分類して
チェックできるので、第12図のデータフロー130と
データフロー131.第13図のデータフロー146と
データフロー149についても、個別にチェックでき、
排反事象を一度にチェックして混同する。ということは
起きず、正確なデータ型チェックが行える。また、デー
タ型が不整合の場合の修正については、第1実施例の手
順と同様に行うことができる。
In this way, in the second embodiment, data flows that only occur exclusively can be classified and checked as appropriate, so data flows 130 and 131 in FIG. Data flow 146 and data flow 149 in FIG. 13 can also be checked individually.
Check and confuse mutually exclusive events at once. This does not happen, and accurate data type checking can be performed. Further, correction in the case of data type inconsistency can be performed in the same manner as in the first embodiment.

〔発明の効果〕〔Effect of the invention〕

以上説明したように、本発明によれば、データフローの
パターンに応じた図表を作成し、それを使用して各モジ
ュールの構造体を作成することにより、データ型推論に
おけるデータ型チェック・修正のためのデータフローの
検索を容易にすることができるので、データ型推論方式
によるプログラムの合成の性能効率の向上の効果がある
。さらに、排反的にしか起こりえないデータフローにつ
いても、他のデータフローと混同することなく、場合に
応じたデータフローに分類して、分類されたデータフロ
一群ごとに、データ型チェックを行うことができるので
、制御フローを参照しないで、完全なデータ型チェック
を行うことができ、性能。
As explained above, according to the present invention, by creating a diagram according to a data flow pattern and using it to create a structure for each module, data type checking and correction in data type inference can be easily performed. Since it is possible to easily search for a data flow for a program, it has the effect of improving the performance efficiency of program synthesis using a data type inference method. Furthermore, data flows that can only occur in an exclusive manner are classified into data flows according to the case without being confused with other data flows, and data types are checked for each group of classified data flows. Performance is improved because you can do complete data type checking without referencing the control flow.

効率の向上の効果がある。It has the effect of improving efficiency.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本発明の第1実施例を示す対話型計算機支援シ
ステム構成図、第2図は第1実施例の制・御手順を示す
フローチャート、第3図〜第7図は各プログラムモジュ
ールの構造体をデータフローのパターンに応じた図表で
表現した図、第8図は第1実施例によるソフトウェアモ
ジュール群の結合関係図、第9図は第1実施例による他
のソフトウェアモジュール群の結合関係図、第10図は
本発明の第2実施例を示す対話型計算機支援システム構
成図、第11図は第2実施例の制御手順を示すフローチ
ャート、第12図は第2実施例によるソフトウェアモジ
ュール群の結合関係図、第13図は第2実施例による池
のソフトウェアモジュール群の結合関係図である。 1:ビデオ・データ・ターミナル、2:計算機処理装置
、3:蓄積ファイル、4ニブログラム合成制御部、5:
データ型チェック部、6:修正順序制御部、7:推論制
御部、8:対話修正部、9:データ識別部。 第   2   図 第3図 第 4 図 第6図 第6図 第   7   閲 第8図 8.4 第   9   図 IQd    107
Fig. 1 is a configuration diagram of an interactive computer support system showing a first embodiment of the present invention, Fig. 2 is a flowchart showing a control procedure of the first embodiment, and Figs. 3 to 7 show each program module. A diagram representing a structure in a diagram according to a data flow pattern, FIG. 8 is a diagram of the connection relationship of a group of software modules according to the first embodiment, and FIG. 9 is a diagram of the connection relationship of a group of other software modules according to the first embodiment. 10 is a configuration diagram of an interactive computer support system showing a second embodiment of the present invention, FIG. 11 is a flowchart showing a control procedure of the second embodiment, and FIG. 12 is a group of software modules according to the second embodiment. FIG. 13 is a diagram showing the connectivity of a group of software modules according to the second embodiment. 1: Video data terminal, 2: Computer processing unit, 3: Accumulated file, 4 Niprogram synthesis control unit, 5:
Data type checking section, 6: Modification order control section, 7: Inference control section, 8: Dialogue modification section, 9: Data identification section. Figure 2 Figure 3 Figure 4 Figure 6 Figure 6 Figure 7 Review Figure 8 8.4 Figure 9 IQd 107

Claims (1)

【特許請求の範囲】 1、計算機の計算手順を表すソフトウェアモジュール群
を結合して、1個の完成したソフトウェアを生成するた
めに、各ソフトウェアモジュールの特性を1群の構造体
に表現し、該構造体の情報を使うことにより、ソフトウ
ェアモジュール間のデータの受け渡しを、データ型に基
づいてチェックし、推論による修正を行うプログラムチ
ェック方式において、上記構造体中に、モジュール間の
データの流れ(データフロー)を指し示す機構を設け、
モジュールの結合関係を、データフローのパターンに応
じて図表に書き表し、該書き表された図表を構造体に表
現し、該構造体の情報と上記機構を用いて階層的になっ
ているモジュールや、ネットワークを形成しているモジ
ュール、複雑な結合関係のモジュール等のデータ型チェ
ックや修正を行うことを特徴とするプログラムチェック
方式。 2、計算機の計算手順を表すソフトウェアモジュール群
を結合して、1個の完成したソフトウェアを生成するた
めに、ソフトウェアモジュールの特性を、1群の構造体
に表現し、該構造体の情報を使うことにより、ソフトウ
ェアモジュール間のデータの受け渡しを、データ型に基
づいてチェックし、推論による修正を行うプログラムチ
ェック方式において、上記構造体中に、モジュール間の
データの流れ(データフロー)を指し示す機構を設け、
モジュールの結合関係を、データフローのパターンに応
じて、図表に書き表し、該書き表された図表を構造体に
表現し、排反的に起こりうるデータに識別子を付帯させ
、該構造体の情報と上記機構を用いて階層的になってい
るモジュールや、ネットワークを形成しているモジュー
ル、複雑な結合関係のモジュール等のデータ型チェック
や修正を行い、さらに上記識別子により排圧的に起こる
データのデータ型チェックも行うことを特徴とするプロ
グラムチェック方式。
[Claims] 1. In order to combine a group of software modules representing calculation procedures of a computer to generate one completed software, the characteristics of each software module are expressed in a group of structures, and the characteristics of each software module are expressed in a group of structures. In a program checking method that uses structure information to check the data exchange between software modules based on the data type and make corrections based on inference, the above structure contains information about the flow of data between modules (data flow). Flow)
A module that represents the coupling relationship of modules in a diagram according to a data flow pattern, expresses the diagram in a structure, and uses the information of the structure and the above mechanism to form a hierarchical module, A program check method that is characterized by checking and modifying data types of modules forming a network, modules with complex connection relationships, etc. 2. Express the characteristics of the software modules in a group of structures and use the information in the structures in order to combine a group of software modules that represent computer calculation procedures to generate one complete piece of software. By doing this, in a program checking method that checks the data exchange between software modules based on the data type and makes corrections based on inference, a mechanism that indicates the data flow between modules is included in the above structure. established,
The connection relationships of modules are expressed in a diagram according to the data flow pattern, the diagram is expressed in a structure, an identifier is attached to data that can occur exclusively, and the information in the structure is The above mechanism is used to check and modify the data type of hierarchical modules, modules forming networks, modules with complex connection relationships, etc., and data that is excluded due to the above identifiers. A program checking method that also performs type checking.
JP61111705A 1986-05-15 1986-05-15 Program checking system Pending JPS62267842A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61111705A JPS62267842A (en) 1986-05-15 1986-05-15 Program checking system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61111705A JPS62267842A (en) 1986-05-15 1986-05-15 Program checking system

Publications (1)

Publication Number Publication Date
JPS62267842A true JPS62267842A (en) 1987-11-20

Family

ID=14568063

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61111705A Pending JPS62267842A (en) 1986-05-15 1986-05-15 Program checking system

Country Status (1)

Country Link
JP (1) JPS62267842A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009129206A (en) * 2007-11-22 2009-06-11 Toshiba Corp Information processor, program verification method, and program
US7779383B2 (en) 2005-12-01 2010-08-17 Sap Ag Composition model and composition validation algorithm for ubiquitous computing applications

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7779383B2 (en) 2005-12-01 2010-08-17 Sap Ag Composition model and composition validation algorithm for ubiquitous computing applications
JP2009129206A (en) * 2007-11-22 2009-06-11 Toshiba Corp Information processor, program verification method, and program

Similar Documents

Publication Publication Date Title
CN108664400B (en) Construction method of fault diagnosis technology based on dependent Bayesian network
Magnaguagno et al. Web planner: A tool to develop classical planning domains and visualize heuristic state-space search
US5557774A (en) Method for making test environmental programs
US20050160398A1 (en) Method and apparatus for dataflow creation and execution
Schlenoff et al. A robust process ontology for manufacturing systems integration
JPH09502034A (en) Introduces an alternative form of the target process object code that allows less recompilation and relinking, allowing automatic identification of error locations and modified locations due to new requirements on the system. To minimize uncertainty in computer software processes
Pérez-Hurtado et al. A new P-Lingua toolkit for agile development in membrane computing
Tarassow The potential of LLMs for coding with low-resource and domain-specific programming languages
JP2801931B2 (en) Logic design processing device, circuit conversion rule translation device, and circuit conversion rule translation method
Reifer Automated aids fob reliable software
Cavaliere et al. Time and synchronization in membrane systems
Di Natale et al. A Model-based approach for the synthesis of software to firmware adapters for use with automatically generated components
JPS62267842A (en) Program checking system
White et al. Artefact relation graphs for unit test reuse recommendation
Eichinski et al. Datatrack: An R package for managing data in a multi-stage experimental workflow data versioning and provenance considerations in interactive scripting
Henry et al. Complexity measurement of a graphical programming language
Katis et al. Realizability checking of requirements in FRET
CN110389955A (en) A kind of data warehouse scheduling file automatic creation system and generation method
McCune The PSI Program Model Builder-synthesis of very high-level programs
CN111562944B (en) Program code comparison method and comparison device
US11966724B1 (en) Framework and system for building assisted automations from recordings using program synthesis
Yin et al. Verification of SysML Activity Diagrams Using Hoare Logic and SOFL
Saioc et al. A tool for describing and checking natural semantics definitions of programming languages
Kluza et al. Proposal of a hierarchical approach to formal verification of BPMN models using Alvis and XTT2 methods
Su et al. CFStra: Enhancing Configurable Program Analysis Through LLM-Driven Strategy