JPH06332689A - Program displaying method and program edition accepting method - Google Patents

Program displaying method and program edition accepting method

Info

Publication number
JPH06332689A
JPH06332689A JP5120190A JP12019093A JPH06332689A JP H06332689 A JPH06332689 A JP H06332689A JP 5120190 A JP5120190 A JP 5120190A JP 12019093 A JP12019093 A JP 12019093A JP H06332689 A JPH06332689 A JP H06332689A
Authority
JP
Japan
Prior art keywords
program
graphic
processing unit
display
processing
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
JP5120190A
Other languages
Japanese (ja)
Inventor
Tadashi Kamiwaki
正 上脇
Shinichiro Yamaguchi
伸一朗 山口
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 JP5120190A priority Critical patent/JPH06332689A/en
Publication of JPH06332689A publication Critical patent/JPH06332689A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To enable a program executing plural processings in parallel to be visually and hierarchically generated by using a graphic. CONSTITUTION:The designations of each processing 421, 422 and 424 composing programs, data accessed by each processing and the synchronization 44 between processings are accepted by the designation of each corresponded graphic, the start of each processing, a relation to be started, a writing and, reading data and synchronizing relation between processings are accepted by the designated of the arrow connecting corresponded graphic. The contents of a processing 423 is hierarchically accepted by the combinations of graphics 4231,...,4234 and 4240 showing further fine processings. The definition of the contents of the processing of the lowest rank hierarchy is accepted by a text form. When the designation of the arrow is accepted, the instruction designating the processing shown by this arrow is inserted in the text defining the processing of the corresponded graphic.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、複数のプロセッサを有
する計算機上で、複数の処理を並列に実行可能なプログ
ラムを開発するための技術に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a technique for developing a program capable of executing a plurality of processes in parallel on a computer having a plurality of processors.

【0002】[0002]

【従来の技術】従来のテキスト型のプログラムは、シリ
アルなプログラムを表現するのには適しているが、並列
に処理が進行するプログラムを表記するには適していな
い。そこで、最近では、図形を用いて視覚的にプログラ
ムを作成するツールが注目されている。図形は、2次元
的広がりがあるため、単なる手続きの順番のみではな
く、平行して実行される手続も同時に記述することが可
能となる。
2. Description of the Related Art A conventional text type program is suitable for expressing a serial program, but not suitable for expressing a program in which processing progresses in parallel. Therefore, recently, a tool for visually creating a program by using a figure is drawing attention. Since the figure has a two-dimensional spread, not only the order of the procedures but also the procedures executed in parallel can be described at the same time.

【0003】また、並列プログラムの実行トレースを取
り、その結果を視覚的に表示する技術も開発されてい
る。並列プログラムは、一般にその性能を引き出すこと
が難しい。そこで、性能上の問題点の解析と、その問題
を解決するためのプログラム変更とを繰り返すことによ
り性能をチューニングしていく。実行トレースを解析す
ることは問題点の抽出に有効である。
A technique has also been developed in which execution traces of parallel programs are taken and the results are displayed visually. It is generally difficult to get the performance of a parallel program. Therefore, the performance is tuned by repeating the analysis of the problem on the performance and the change of the program for solving the problem. Analyzing the execution trace is effective in extracting problems.

【0004】これらの技術は、たとえば、Tutorial Tex
t: Software Tools for Visualization of Parallel an
d Distributed Programs and Systems,COMPSAC'91,IEEE
Computer Society等に述べられている。
These techniques are described in, for example, Tutorial Tex.
t: Software Tools for Visualization of Parallel an
d Distributed Programs and Systems, COMPSAC'91, IEEE
It is described in Computer Society and others.

【0005】また、従来のテキストで記述した並列プロ
グラムなどのデバッグに関しては、特開平2ー2304
32号公報、特開平3ー160532号公報、特開昭6
3ー317840号公報記載の技術が知られている。
Regarding debugging of a conventional parallel program described in text, etc., Japanese Patent Laid-Open No. 2304/1990
32, JP-A-3-160532, JP-A-6
The technique described in Japanese Laid-Open Patent Publication No. 3-317840 is known.

【0006】[0006]

【発明が解決しようとする課題】しかし、前記「Softwa
re Tools for Visualization of Parallel and Distrib
uted Programs and Systems」記載の技術では、図形に
よる階層的なプログラミングについて考慮されておら
ず、複雑なプログラムを記述するのに適していない。ま
た、図形を用いたプログラミングのみでは、必ずしも、
設計条件が厳しい処理について充分に詳細に記述できな
い場合もある。また、処理を並列に実行するプログラム
では、処理間で共通して使用するデータの取扱いが問題
となるが、このことについて特別の考慮が払われていな
い。
However, the above-mentioned "Softwa
re Tools for Visualization of Parallel and Distrib
The technology described in "uted Programs and Systems" does not consider hierarchical programming with graphics, and is not suitable for describing complex programs. In addition, programming with graphics is not always
In some cases, it is not possible to describe in detail enough about the processing under severe design conditions. Also, in a program that executes processes in parallel, handling of data commonly used between processes becomes a problem, but no special consideration is given to this.

【0007】そこで、本発明は、階層的に図形を用いた
プログラムの編集を可能とすることを目的とする。ま
た、並列に実行される処理の間で共通に使用されるデー
タおよび、これに対する操作を、視覚的に良好に表現す
ることを目的とする。
Therefore, an object of the present invention is to make it possible to edit a program using figures in a hierarchical manner. Further, it is an object of the present invention to satisfactorily visually represent data commonly used among processes executed in parallel and an operation for the data.

【0008】また、さらに、本発明は、並列に実行され
る処理の間で共通に使用されるデータの値の確定性を保
証することを目的とする。
A further object of the present invention is to guarantee the determinism of the value of the data commonly used between the processes executed in parallel.

【0009】[0009]

【課題を解決するための手段】前記目的達成達成のため
に、本発明は、たとえば、表示装置を備えた計算機にお
いて、複数の処理単位より階層的に構成されるプログラ
ムの構造の編集を受け付けるプログラム編集方法であっ
て、複数の処理処理単位をそれぞれ表す複数の図形と、
関係付ける複数の処理単位に対応する複数の図形間を結
び、複数の処理単位間の関係を表す図形の、前記表示装
置の表示上における階層的な編集によって、前記プログ
ラムを構成する複数の前記処理単位の階層的な構造の編
集を受付けることを特徴とするプログラムの編集受付方
法を提供する。
In order to achieve the above object, the present invention provides, for example, in a computer equipped with a display device, a program for accepting editing of a structure of a program hierarchically composed of a plurality of processing units. An editing method, a plurality of graphics representing a plurality of processing units,
A plurality of the processes constituting the program by hierarchically editing a graphic representing a relationship between the plurality of processing units by connecting a plurality of graphics corresponding to a plurality of processing units to be related to each other. Provided is a program edit acceptance method characterized by accepting the editing of a hierarchical structure of units.

【0010】[0010]

【作用】本発明の一実施態様によれば、処理単位は四角
の図形で表現され、共有データは楕円などの図形で表現
される。画面上にこれらの図形を配置し、それらを矢印
で結合することにより並列プログラムが作成される。各
処理単位の内容は、テキストにより記述することも可能
であるが、さらに図形と矢印で定義することも可能であ
る。このように、処理内容を階層的に記述することがで
きる。
According to one embodiment of the present invention, the processing unit is represented by a square graphic and the shared data is represented by a graphic such as an ellipse. A parallel program is created by arranging these figures on the screen and connecting them with arrows. The contents of each processing unit can be described in text, but can also be defined by figures and arrows. In this way, the processing content can be described hierarchically.

【0011】また、さらに、処理単位から共有データへ
のアクセスを定義する際には、ツールがそのアクセスと
他の処理単位からのアクセスの関係を調べ、このアクセ
スにより共有データの値が不確定にならないか判断す
る。不確定になると判断された場合には、その原因とな
る処理とアクセスを表している図形の色を変化させてユ
ーザに警告する。
Furthermore, when defining access to shared data from a processing unit, the tool examines the relationship between the access and the access from other processing units, and this access makes the value of shared data indeterminate. Determine if it does. If it is determined to be indeterminate, the color of the graphic representing the process and access that cause it is changed to warn the user.

【0012】[0012]

【実施例】以下、本発明に係る計算機の一実施例につい
て説明する。
DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of a computer according to the present invention will be described below.

【0013】まず、図1に、本実施例に係る計算機の構
成を示す。
First, FIG. 1 shows the configuration of a computer according to this embodiment.

【0014】図示するように、本実施例に係る計算機
は、複数のプロセッサ141〜143が協調して動作す
る並列計算機である。図中、13は、並列計算機システ
ム全体を表しており、11が計算機のキュービクルを表
している。141〜143のプロセッサは、バス63に
接続されている。全てのプロセッサは、このバスを通し
てメモリ18にアクセスする。ディスク15もバス63
に接続されており、プロセッサはメモリ上のデータをデ
ィスク15に書き込むことができ、また、ディスク15
上のデータをメモリ18に読みだしてくることもでき
る。16は端末コントローラであり、これには、ディス
プレイ17、キーボード65、マウス64が接続されて
いる。各プロセッサ141〜143は、バス63を通し
て端末コントローラにアクセスする。
As shown in the figure, the computer according to this embodiment is a parallel computer in which a plurality of processors 141-143 operate in cooperation. In the figure, 13 represents the entire parallel computer system, and 11 represents the cubicle of the computer. The processors 141 to 143 are connected to the bus 63. All processors access the memory 18 through this bus. Disk 15 is also bus 63
Is connected to the processor, the processor can write data in the memory to the disk 15, and
The above data can be read out to the memory 18. Reference numeral 16 denotes a terminal controller, to which a display 17, a keyboard 65, and a mouse 64 are connected. Each of the processors 141 to 143 accesses the terminal controller through the bus 63.

【0015】図中、メモリ18はの内部には、メモリ1
8に記憶されている内容を示した。19はオペレーティ
ングシステム(OS)、20はライブラリ関数、211
〜213はプロセスである。また、メモリ18は、プロ
セス間で共有されるデータを記憶する領域23、プロセ
ス間で共有されるプログラムを記憶する領域24、トレ
ースデータを記憶される領域22を有している。ここ
で、本実施例に係る並列計算機は、プロセスを処理実行
の単位としている。プロセッサ141〜143が、プロ
セスの情報をロードして、それを元にして各プログラム
を実行する。
In the figure, the memory 18 is inside the memory 1.
8 shows the stored contents. 19 is an operating system (OS), 20 is a library function, 211
˜213 are processes. The memory 18 also has an area 23 for storing data shared between processes, an area 24 for storing programs shared by the processes, and an area 22 for storing trace data. Here, the parallel computer according to the present embodiment uses a process as a unit of processing execution. The processors 141 to 143 load process information and execute each program based on the loaded information.

【0016】図2は、プロセス211の詳細を示したも
のである。
FIG. 2 shows details of the process 211.

【0017】図中、2611〜2612はプロセッサの
レジスタを退避する領域である。プロセッサ141〜1
43は、時分割でプロセスを切り替えて処理を行う。プ
ロセッサが、あるプロセスの処理を中断して、別のプロ
セスに実行を移すときには、現在のレジスタの状態を2
61の領域に退避する。中断されたプロセスの処理を再
開するときには、この領域の内容を読みだしてプロセッ
サのレジスタにセットする。レジスタ退避領域が複数有
るのは、複数のプロセッサが、並行して一つのプロセス
の複数のプログラムを実行できるようにするためであ
る。321〜323は、プロセスに固有のプログラムで
あり、271は、プロセスに固有のデータが記憶される
領域である。プロセス間の通信は、相手のプロセスのメ
ッセージキュー281にメッセージを送ることによりな
される。
In the figure, 2611 to 2612 are areas for saving the registers of the processor. Processors 141 to 1
43 performs processing by switching processes in a time division manner. When the processor suspends the processing of one process and transfers the execution to another process, the current register state is set to 2
Save to area 61. When resuming the processing of the suspended process, the contents of this area are read and set in the processor registers. There are a plurality of register save areas so that a plurality of processors can execute a plurality of programs of one process in parallel. 321 to 323 are programs unique to the process, and 271 is an area for storing data unique to the process. Communication between processes is performed by sending a message to the message queue 281 of the other process.

【0018】次に、本実施例に係る計算機におけるプロ
グラムの実行環境について説明する。
Next, the execution environment of the program in the computer according to this embodiment will be described.

【0019】図3に、本計算機上に実現されるプログラ
ムの実行環境を示す。
FIG. 3 shows an execution environment of a program realized on this computer.

【0020】図中、13は並列計算機であり、前述した
ように複数のプロセッサ14、ディスプレイ17、キー
ボード65、マウス64を備えている。
In the figure, 13 is a parallel computer, which comprises a plurality of processors 14, a display 17, a keyboard 65, and a mouse 64 as described above.

【0021】また、図中のプログラム開発環境74、コ
ンパイラ29、トレーサ33は並列計算機上で実行され
るプロセスとして実現されている機能である。
The program development environment 74, compiler 29, and tracer 33 shown in the figure are functions implemented as processes executed on a parallel computer.

【0022】ソースプログラム35は、プログラム開発
環境74によって作成されたプログラムである。ソ−ス
プログラム35は、コンパイラ29に読み込まれ(91
2)、コンパイルされた後、オブジェクトプログラム3
6として出力される(913)。プロセッサ14は、オ
ブジェクトプログラム36を実行して、計算データを処
理する(917、918)。プログラム開発環境74中
のプログラムであるデバッガは、ソースプログラムの間
違いを捜すためのプログラムであり、オブジェクトプロ
グラム36を実行中のプロセッサを制御したり(91
5)、計算データ37を読んだり(909)書いたり
(908)する。トレーサ33は、プロセッサ14がオ
ブジェクトプログラム36を実行した履歴を読み込み
(916)、トレースデータ34として記録する(91
1)。プログラム開発環境74中のプログラムである並
列度評価プログラムは、トレースデータを読みだして
(910)、プログラムの並列度、通信の頻度等の計算
を行う。
The source program 35 is a program created by the program development environment 74. The source program 35 is read by the compiler 29 (91
2), after being compiled, object program 3
It is output as 6 (913). The processor 14 executes the object program 36 to process the calculation data (917, 918). The debugger, which is a program in the program development environment 74, is a program for searching for errors in the source program and controls the processor executing the object program 36 (91
5) The calculation data 37 is read (909) and written (908). The tracer 33 reads the history of execution of the object program 36 by the processor 14 (916) and records it as trace data 34 (91).
1). The parallelism evaluation program, which is a program in the program development environment 74, reads out the trace data (910) and calculates the parallelism of the program, the frequency of communication, and the like.

【0023】次に、図4に、プログラム開発環境74と
ソ−スプログラム35の詳細を示す。
Next, FIG. 4 shows the details of the program development environment 74 and the source program 35.

【0024】図示するように、プログラム開発環境74
は、プログラムとして、自プロセスに固有のプログラム
として、前述したようにエディタ30、デバッカ31、
並列度評価プログラム32を有している。エディタプロ
グラム30は、ソースプログラム35の作成および変更
を行う。デバッガ31、並列評価プログラム32は、ソ
ースプログラム35のデバッグおよび評価を行う。ま
た、プログラム開発環境74は、ソースプログラム35
の内容をグラフィカルにディスプレイ17に表示し、マ
ウス61やキーボード65からの指示をエディタ30、
デバッガ31、並列度評価プログラム32に伝えるプロ
グラムGUI56を有している。
As shown, the program development environment 74
Is a program as a program unique to its own process, as described above, the editor 30, the debugger 31,
It has a parallelism evaluation program 32. The editor program 30 creates and changes the source program 35. The debugger 31 and the parallel evaluation program 32 debug and evaluate the source program 35. Also, the program development environment 74 is the source program 35.
Contents are displayed graphically on the display 17, and instructions from the mouse 61 or the keyboard 65 are input to the editor 30,
It has a program GUI 56 that is transmitted to the debugger 31 and the parallelism evaluation program 32.

【0025】さて、本実施例では、プログラムを、当該
プログラムが行う処理の組み合わせを、処理を表す図形
の組み合わせで記述することにより作成/編集する。し
たがい、ソースプログラム35は、図形を定義するテー
ブル等より構成される。図中、971は図形の種類や位
置関係を定義する図形定義テーブル、972は処理の詳
細をさらに図形で表現する場合にその内容を定義する図
形内部定義テーブル、973は処理の詳細をテキストで
表現する場合にその内容を定義するテキスト定義テーブ
ル、974と975は、処理間の同期を行う関数joi
nとバリアの定義を行うjoin定義テーブルとバリア
定義テーブル、973は各処理に使用するデータを定義
するテーブルである。これらのテーブルを組み合わせる
ことにより、図形とテキスト、図形同士、テキスト同士
の関係を表現することができる。すなわち、これらのテ
ーブルを組み合わせることによりプログラムを構成する
処理の組み合わせを定義できるので、これらのテーブル
を組み合わせによってプログラムを表現することができ
る。
In the present embodiment, a program is created / edited by describing a combination of processes performed by the program with a combination of figures representing the processes. Therefore, the source program 35 is composed of a table and the like that define graphics. In the figure, 971 is a graphic definition table that defines the type and positional relationship of the graphic, 972 is a graphic internal definition table that defines the details of the process when the graphic is further expressed, and 973 is the text of the detailed process. The text definition tables 974 and 975 that define the contents of the function
A join definition table and a barrier definition table that define n and a barrier, and 973 is a table that defines data used in each process. By combining these tables, it is possible to express the relationship between figures and texts, figures, and texts. That is, the combination of these tables can define the combination of the processes constituting the program, so that the program can be expressed by the combination of these tables.

【0026】ここで、本実施例におけるプログラムの記
述法とソースプログラム35の各テ−ブルとの関係を説
明する。
The relationship between the program description method and each table of the source program 35 in this embodiment will be described below.

【0027】図4は、本実施例に従って記述した並列プ
ログラムの一例である。
FIG. 4 is an example of a parallel program described according to this embodiment.

【0028】プログラムは、図中、40のスタート記号
の所から始まる。図形421〜424は、それぞれ一つ
の処理を表している。処理の上の辺に向かっている矢印
は、処理の流れを示している。すなわち、最初に541
の矢印により、421の処理1が起動され、処理1の中
で処理2(422)と処理3(423)の起動が行われ
る(491、492)ことを示している。すなわち、処
理1の残りの部分と処理2、処理3が並列に実行される
ことになる。
The program begins at the 40 start symbol in the figure. Each of the figures 421 to 424 represents one process. The arrow pointing to the upper side of the process shows the flow of the process. That is, first 541
The arrow indicates that the process 1 of 421 is activated, and the process 2 (422) and the process 3 (423) are activated in the process 1 (491, 492). That is, the remaining part of the process 1, the process 2 and the process 3 are executed in parallel.

【0029】また、45は処理間で共通にアクセスされ
るデータを表している。矢印532、531は、処理2
と処理3が、このデータに書き込みを行うことを表して
いる。44は、関数joinの実行を表している。関数
joinは、後述するように分かれて並列に動作してい
る処理を1つにまとめる働きをする。44の上の辺に向
いている矢印(521〜523)の出元の処理(421
〜423)の全てが終了すると、下辺から出ている矢印
542が向いている処理4(424)が起動されること
になる。エンド記号41は、実行がエンド記号41に来
るとプログラムが終了することを示している。
Reference numeral 45 represents data commonly accessed during processing. Arrows 532 and 531 indicate process 2
And Process 3 indicate that the data is written. Reference numeral 44 represents the execution of the function join. The function join functions to combine processes that are divided and operate in parallel as will be described later. Process of origin of arrows (521 to 523) pointing to the upper side of 44 (421
(4) to (423) are completed, the process 4 (424) in which the arrow 542 extending from the lower side is directed is activated. The end symbol 41 indicates that the program ends when the execution comes to the end symbol 41.

【0030】また、処理3を表す図形423は、四角が
2重になっている。これは、この処理に関しては、さら
に詳しい処理内容が図形で定義されていることを表して
いる。詳細な処理内容は、図6に示すように、やはり図
形の組み合わせで階層的に記述することができる。すな
わち図6中、4231〜4234は処理、4235〜4
239は処理の流れ、4240はjoinを表してお
り、これらの記法は、図5で説明したものと同じであ
る。また、図6において、処理3−2を表す4232の
四角が二重になっているのは、この処理に関してはさら
に細かい処理の記述が表示可能であることを示してい
る。
Further, the figure 423 representing the process 3 has a double square. This indicates that more detailed processing content is defined by the graphic for this processing. As shown in FIG. 6, detailed processing contents can be hierarchically described by a combination of figures. That is, in FIG. 6, 4231-4234 are processes, 4235-4.
Reference numeral 239 represents a processing flow, and 4240 represents a join, and these notations are the same as those described in FIG. Further, in FIG. 6, the square of 4232 representing the process 3-2 is doubled, which means that a detailed description of this process can be displayed.

【0031】一方、図5、6において、1重の四角で表
されている処理の内容は、図7に示すように、テキスト
で形式で記述する。図7は、テキスト4222で記述さ
れた図5の処理422を示している。
On the other hand, in FIG. 5 and FIG. 6, the contents of the process represented by a single square are described in text format as shown in FIG. FIG. 7 illustrates the process 422 of FIG. 5 described by the text 4222.

【0032】なお、このような、ソ−スプログラムの記
述は、後述するようにディスプレイ17の表示上で行わ
れる。
The description of such a source program is made on the display of the display 17, as will be described later.

【0033】さて、ソースプログラム35の各テ−ブル
は、このようなプログラムの記述法に対応して設けられ
ている。
Now, each table of the source program 35 is provided corresponding to the description method of such a program.

【0034】図8は、図形定義テーブル971を示して
いる。
FIG. 8 shows the graphic definition table 971.

【0035】このテーブルには、ソースプログラム35
に含まれる全ての図形の内容が定義されている。
In this table, the source program 35
The contents of all graphics included in are defined.

【0036】図8において、9701〜9711は、そ
れぞれレ−コ−ドであり、図6のプログラムを構成する
図形の、それぞれに対応する。各レコ−ドにおいて、メ
ンバ9601はテーブルのレコ−ドの番号、メンバ96
02は図形の名称、メンバ9603とメンバ9604は
図形を表示する座標、種類メンバ9605はその図形の
種類、メンバ9606はその図形に対応する処理の内容
が定義されている場所、メンバ9608はその図形によ
り詳細な定義があるときに、その詳細な定義の内容を表
示するかどうかを示している。
In FIG. 8, reference numerals 9701 to 9711 respectively denote the codes, which correspond to the graphics constituting the program of FIG. In each record, the member 9601 is the record number of the table, the member 9601.
02 is the name of the figure, members 9603 and 9604 are coordinates for displaying the figure, type member 9605 is the type of the figure, member 9606 is the location where the processing content corresponding to the figure is defined, and member 9608 is the figure Indicates whether to display the contents of the detailed definition when there is a more detailed definition.

【0037】例えば、レコ−ド9701は図6の処理1
の定義となっている。その名称は処理1であり、表示す
る座標は(300、50)であり、種別はテキストであ
り、これは、この図形に対応する処理の詳細定義がテキ
ストで記述されており、この詳細定義がメンバ9606
で指定されるテキスト定義テーブル973の位置、すな
わち、1番目のレコ−ドに記されている。現在、詳細定
義はオープン、すなわち、表示している状態にない。
For example, the record 9701 is the processing 1 of FIG.
Has been defined. The name is process 1, the coordinates to be displayed are (300, 50), the type is text, and the detailed definition of the process corresponding to this figure is described in text. Member 9606
The position of the text definition table 973 designated by, that is, the first record. Currently, the detailed definition is not open, that is, it is not displayed.

【0038】また、9703は図6の処理3(423)
の定義となっている。その名称は処理3、表示する座標
は(100、75)である。図形の種類は図形であり、
これは、この図形に対応する処理の詳細定義がその詳細
定義がさらに図形で記述されていることを表しており、
この詳細定義がメンバ9606で指定される図形内部定
義テーブル972のレコ−ド、すなわち、2番目のレコ
−ドに記されていることを表している。また、図6に示
すように、処理3は、現在、詳細定義をオープンした状
態にある。
Reference numeral 9703 denotes process 3 (423) in FIG.
Has been defined. The name is process 3, and the displayed coordinates are (100, 75). The type of figure is a figure,
This means that the detailed definition of the process corresponding to this figure is described in the figure,
This detailed definition is written in the record of the graphic internal definition table 972 designated by the member 9606, that is, the second record. Further, as shown in FIG. 6, in the process 3, the detailed definition is currently open.

【0039】図9は、図形内部定義テーブル972を示
しており、図形に対応する処理の詳細定義をさらに図形
で行ったときの、その図形の情報が記されている。
FIG. 9 shows the figure internal definition table 972, and describes the information of the figure when the detailed definition of the process corresponding to the figure is further performed with the figure.

【0040】図中、9610はテーブルのレコ−ド番号
であり、図形定義テ−ブル971の定義番号メンバ96
06により指定される。レコ−ド9713では、図8の
9703の定義番号メンバに示されている通り、図6の
処理3の詳細定義が記されている。
In the figure, 9610 is the record number of the table, which is the definition number member 96 of the graphic definition table 971.
Specified by 06. In the record 9713, the detailed definition of the process 3 in FIG. 6 is written as shown in the definition number member 9703 in FIG.

【0041】ここで、後述するように各矢印は、端子リ
スト(図11)によって管理され、図形の所属関係は図
形リスト(図10)によって管理される。
Here, as will be described later, each arrow is managed by the terminal list (FIG. 11), and the affiliation relationship of graphics is managed by the graphic list (FIG. 10).

【0042】図形内部定義テーブル972では、他の図
形との間の矢印と、対応する図形に詳細定義に含まれる
図形を端子リスト(図11)と、図形リスト(図10)
のレコ−ドを指定することにより定義する。
In the figure internal definition table 972, arrows between other figures and figures included in the detailed definition of the corresponding figure are the terminal list (FIG. 11) and the figure list (FIG. 10).
It is defined by specifying the record of.

【0043】すなわち、図9において、メンバ9611
は、図形リスト中における、この詳細定義に含まれる図
形のレコ−ドの先頭位置を表す。メンバ9612は他の
図形からこの処理に入ってきている矢印の、端子リスト
中のレコ−ドの先頭位置を、メンバ9613はこの図形
から他の図形に出ていっている矢印の、端子リスト中の
レコ−ドの先頭位置を示している。
That is, in FIG. 9, the member 9611
Indicates the head position of the record of the graphic included in this detailed definition in the graphic list. The member 9612 indicates the head position of the record in the terminal list of the arrow that has entered this process from another graphic, and the member 9613 indicates the arrow in the terminal list that extends from this graphic to another graphic. The head position of the record is shown.

【0044】図10は、図形リストを示している。FIG. 10 shows a graphic list.

【0045】メンバ9620はレコ−ドの番号、次メン
バ9622はレコ−ドを連結するためのポインタであ
る。9621は、このレコ−ドに登録された図形の番号
であり、これは、図形定義テ−ブルのレコ−ドの番号9
601に一致する。
A member 9620 is a record number, and a next member 9622 is a pointer for connecting records. 9621 is the figure number registered in this record, which is the number 9 in the figure definition table record.
Matches 601.

【0046】ここで、図6の処理3−1の図形(423
1)は図形定義テ−ブル971の7番目のレコ−ド97
26に、処理3−2の図形(4232)は8番目のレコ
−ドに9728、処理3−3の図形(4233)は9番
目のレコ−ド9729に、joinに対応する図形43
20は10番目のレコ−ド9729に、処理3−4の図
形(4234)は11番目のレコ−ド97330に登録
されている。
Here, the figure (423 of the processing 3-1 in FIG.
1) is the seventh record 97 of the figure definition table 971.
26, the graphic of process 3-2 (4322) is 9728 in the 8th record, and the graphic of process 3-3 (4233) is in the 9th record 9729 and the graphic 43 corresponding to join
20 is registered in the 10th record 9729, and the graphic (4234) of the process 3-4 is registered in the 11th record 97330.

【0047】たとえば、図9の9713に示されている
通り9726が図6の処理3(423)の詳細定義に含
まれる図形の先頭レコ−ドである。レコ−ド9726に
は、7番目のレコ−ドに登録されている処理3−1の図
形についてのものであり、レコ−ド9726の次のポイ
ンタが8になっているのは図形リストの8番目のレコ−
ド9727も、処理3に含まれることを示している。以
下同様にレコ−ド9730までが連なっている。レコ−
ド9730の次メンバは0になっており、これで処理3
についてのリストが終わりであることを示す。
For example, as shown at 9713 in FIG. 9, 9726 is the head record of the graphic included in the detailed definition of the process 3 (423) in FIG. Record 9726 is for the graphic of process 3-1 registered in the 7th record, and the pointer next to record 9726 is 8 in the graphic list. Th record
Code 9727 is also included in the process 3. Similarly, up to the record 9730 is continued. Record
The next member of code 9730 is 0, which means process 3
Indicates the end of the list for.

【0048】図11は、端子リストを定義している。FIG. 11 defines the terminal list.

【0049】このリストにより、図形と図形を関係付け
ることが出来る。9630はレコ−ドの番号である。メ
ンバ9631は矢印の元となっている図形の番号、メン
バ9632は先となっている図形の番号であり、これら
は、図形定義テ−ブルのレコ−ドの番号9601に一致
する。メンバ9633は矢印の接続する端子が図形の上
下左右のどこに位置しているかを示す。次メンバ963
4はレコ−ドを連結するためのポインタであり、図形リ
スト(図10)のポインタ9622と同様の働きをす
る。
From this list, figures can be associated with each other. 9630 is a record number. The member 9631 is the number of the figure which is the source of the arrow, and the member 9632 is the number of the figure which is the destination. These match the number 9601 of the record of the figure definition table. A member 9633 indicates where the terminals to which the arrow connects are located on the upper, lower, left, and right sides of the figure. Next Member 963
Reference numeral 4 is a pointer for connecting the records, and functions similarly to the pointer 9622 of the graphic list (FIG. 10).

【0050】例えば、図9の9713では、図6の処理
3からの矢印の出口の情報が端子リストの4番目のレコ
−ド9734から始まるレコ−ドに登録されていること
が記されている。図6の処理3には出口が2つある。1
つは処理3−2(4232)から出て、データ1に入っ
ているもの、もう1つは処理3−4から出て、join
に入っているものである。これらの出口がそれぞれ、図
11の、ポインタ9634により連結されたレコ−ド9
734と9735に定義されている。
For example, in 9713 of FIG. 9, it is described that the information of the exit of the arrow from the process 3 of FIG. 6 is registered in the record starting from the fourth record 9734 of the terminal list. . There are two exits in the process 3 of FIG. 1
One goes out from process 3-2 (4232) and is in data 1, the other goes out from process 3-4 and join
It's in. Each of these exits has a record 9 connected by a pointer 9634 in FIG.
734 and 9735.

【0051】図12は定義テーブルを示している。FIG. 12 shows a definition table.

【0052】図8の9701では処理1の詳細定義がテ
キスト定義テーブルのレコ−ド1に示されていることが
記されている。9741がこの定義であり、処理1のテ
キストの内容が処理1という名前のファイルに格納され
ていることを示している。また、処理1の矢印の入口情
報が、端子リスト(図11)の6番目のレコ−ドから、
出口情報が7番目のレコ−ドから存在することを示して
いる。
It is noted in 9701 in FIG. 8 that the detailed definition of processing 1 is shown in the record 1 of the text definition table. 9741 is this definition, and indicates that the text content of the process 1 is stored in the file named process 1. Further, the entry information indicated by the arrow of the process 1 is changed from the sixth record in the terminal list (FIG. 11) to
It indicates that the exit information exists from the 7th record.

【0053】図13、図14は、それぞれ前述したjo
inとバリアの定義をしているテーブルである。これら
のレコ−ドは、図形定義テ−ブル(図8)の種別960
5と定義番号9606により指定される。これらのテ−
ブルは、両方とも入口と出口の端子の管理を行ってい
る。
13 and 14 respectively show the above-mentioned jo.
This is a table that defines in and barrier. These records correspond to the type 960 of the graphic definition table (FIG. 8).
5 and the definition number 9606. These tests
Bull manages both the entrance and exit terminals.

【0054】図15は、データを定義しているテーブル
である。このレコ−ドは、図形定義テ−ブル(図8)の
種別9605と定義番号9606により指定される。本
テ−ブルは、データの型とそのデータに関する排他制御
を行うロックの初期値を定義している。
FIG. 15 is a table defining data. This record is designated by the type 9605 and definition number 9606 of the graphic definition table (FIG. 8). This table defines the type of data and the initial value of the lock that performs exclusive control on the data.

【0055】以下、プログラム開発環境74の動作の詳
細について説明する。
Details of the operation of the program development environment 74 will be described below.

【0056】まず、GUI56の動作について説明す
る.GUI56は、メウス64やキ−ボ−ド65による
指示をエディタ30、デバッガ31、並列度評価プログ
ラム32に伝える等、プログラム開発環境74全体を制
御する役割を担う。
First, the operation of the GUI 56 will be described. The GUI 56 plays a role of controlling the entire program development environment 74 such as transmitting instructions from the mouse 64 and the keyboard 65 to the editor 30, the debugger 31, and the parallelism evaluation program 32.

【0057】図16に、GUI56が、ディスプレイ1
7に表示する画面を示している。図示するように、GU
I56は、前述したように、ソースプログラム35の内
容をグラフィカルにディスプレイ17に表示する。ま
た、何も図形が表示されていない場所にマウスカーソル
を移動して、マウスをクリックすると、モードメニュー
92を新たに表示する。モードメニューには5つのボタ
ンがある。921のエディットボタンをクリックする
と、エディタ30に処理が移り、プログラムを編集する
モードに移行する。922のコンパイルボタンをクリッ
クすると、コンパイラ29が起動されプログラムがコン
パイルされる。923のランボタンをクリックすると、
コンパイルされたオブジェクトプログラムが実行され
る。924のデバッグボタンをクリックすると、デバッ
カ31に処理が移り、デバッグモードに移行する。92
5のトレースボタンをクリックすると、プログラムを実
行し、そのトレース結果を記録した後、トレ−サ33が
起動され、トラ−ス結果の解析結果が表示される。
In FIG. 16, the GUI 56 displays the display 1
7 shows a screen to be displayed. As shown, GU
As described above, the I56 graphically displays the content of the source program 35 on the display 17. When the mouse cursor is moved to a place where no figure is displayed and the mouse is clicked, the mode menu 92 is newly displayed. The mode menu has five buttons. When the edit button 921 is clicked, the processing moves to the editor 30 and shifts to the program editing mode. When the compile button 922 is clicked, the compiler 29 is activated and the program is compiled. When you click the 923 run button,
The compiled object program is executed. When the debug button 924 is clicked, the processing moves to the debugger 31 and the mode shifts to the debug mode. 92
When the trace button 5 is clicked, the program is executed, the trace result is recorded, the tracer 33 is activated, and the analysis result of the trace result is displayed.

【0058】GUI56は、このような処理を、プロセ
ス固有データ271として備えたイベントベクトルテー
ブルと、ウィンドウテーブルを用いて行う。
The GUI 56 performs such processing using the event vector table provided as the process specific data 271 and the window table.

【0059】図17に、イベントベクトルテーブルを示
す。
FIG. 17 shows an event vector table.

【0060】本テ−ブルには、あるウィンドウ(ボタ
ン、図形、矢印等も含む)に対して、あるイベントが発
生した時、どのような動作をすべきかが登録されてい
る。9686はテーブルの要素を指定するための番号、
9687はウィンドウの番号であり、ウィンドウテーブ
ルのインデックスとなっている。9688はイベント種
別である。イベントの種別としては、マウスのボタンが
押されたクリック、マウスのカーソルのウィンドウへの
出入り、キーボード入力等がある。
In this table, what kind of operation should be performed when a certain event occurs in a certain window (including buttons, figures, arrows, etc.) is registered. 9686 is a number for designating a table element,
9687 is a window number, which is an index of the window table. 9688 is the event type. The types of events include a click when a mouse button is pressed, a mouse cursor entering and leaving a window, and keyboard input.

【0061】9689は、生時に実行する関数のアドレ
スである。9784から9788までの各レコードは、
モードメニュー(92)の各ボタンに対するイベントの
定義である。9748を例にとるとウィンドウの定義が
ウィンドウテーブルの1番目に記されており、そのウィ
ンドウ内にマウスのカーソルがある時にマウスのボタン
を押すとeditという関数が呼び出されることを示し
ている。editという関数は、エディタを起動する。
本テーブルに登録されているイベントは、画面に表示さ
れていないウィンドウに対するものも登録可能である。
また、本テーブルへの登録は、GUIプログラムの初期
設定の部分でもなされるが、編集の段階で処理を表す図
形や矢印が新たに作成された時などにも、それに対する
イベント処理が動的に登録される。
9689 is the address of the function to be executed at birth. Each record from 9784 to 9788 is
The event definition for each button of the mode menu (92). Taking 9748 as an example, the definition of the window is written first in the window table, and it indicates that the function called edit is called when the mouse button is pressed while the mouse cursor is inside the window. The function edit launches the editor.
Events registered in this table can be registered for windows that are not displayed on the screen.
The registration in this table is also performed in the initial setting part of the GUI program, but when a graphic or an arrow representing the process is newly created at the editing stage, the event process for the process is dynamically performed. be registered.

【0062】図18は、ウィンドウテーブルを示してい
る。
FIG. 18 shows a window table.

【0063】本テ−ブルには、ウィンドウ(ボタン、図
形、矢印等も含む)に関する情報が登録されている。画
面に表示されていないウィンドウについても、その情報
がここに登録されている。9690はテーブルの要素を
指定するための番号、9691はウィンドウの名称、9
692と9697はそれぞれウィンドウを表示するX座
標とY座標、9693と9694はそれぞれウィンドウ
の縦と横の大きさ、9695はウィンドウの種別、96
96はそのウィンドウが現在表示中であるかを示してい
る。9790〜9794は、モードメニューの各ボタン
の情報を表している。
Information on windows (including buttons, figures, arrows, etc.) is registered in this table. Information about windows not displayed on the screen is also registered here. 9690 is a number for designating a table element, 9691 is a window name, 9
692 and 9697 are the X and Y coordinates for displaying the window, 9693 and 9694 are the vertical and horizontal sizes of the window, 9695 is the window type, and 9695 is the window type.
96 indicates whether the window is currently displayed. Reference numerals 9790 to 9794 represent information on each button of the mode menu.

【0064】図19に、GUI56の行う処理の処理手
順を示す。
FIG. 19 shows a processing procedure of processing performed by the GUI 56.

【0065】図中、2510から2514は初期設定で
あり、2510では、図16の画面にあるスクロールボ
タン(471〜474)やスクロールバー(481〜4
82)のイベントに対する処理を図17のイベントベク
トルテーブルに登録し、座標等を図18のウィンドウテ
ーブルに登録している。また、実際にそのウィンドウの
表示も行なう。2511でも同様に、図16のモードメ
ニュー(92)の各ボタン(921〜925)の情報を
イベントベクトルテーブルとウィンドウテーブルに登録
し、ウィンドウを表示している。2512、2513、
2514についても、それぞれ、後述するデバッグ用メ
ニューの各ボタン、部品メニューの各ボタンの情報を登
録する。ただし、2512〜2514については、表示
はしない。
In the figure, 2510 to 2514 are initial settings, and in 2510, scroll buttons (471 to 474) and scroll bars (481 to 4) on the screen of FIG.
The process for the event 82) is registered in the event vector table of FIG. 17, and the coordinates and the like are registered in the window table of FIG. Also, the window is actually displayed. Similarly, in 2511, the information of each button (921 to 925) of the mode menu (92) of FIG. 16 is registered in the event vector table and the window table, and the window is displayed. 2512, 2513,
Also for 2514, information on each button of the debug menu and each button of the parts menu, which will be described later, is registered. However, 2512 to 2514 are not displayed.

【0066】2515では、イベントが発生するのを待
っている。発生すると、2516で、発生したイベント
を図17のイベントベクトルテーブルで検索し、251
7でそのイベントに対応した関数を呼び出す。
At 2515, it waits for an event to occur. When it occurs, at 2516, the event that occurred is searched in the event vector table of FIG.
At 7, the function corresponding to the event is called.

【0067】また、GUI56は、エディタ30等の要
求に応じて、ソ−スプログラムのディスプレイ17への
表示を行う。
Further, the GUI 56 displays the source program on the display 17 in response to a request from the editor 30 or the like.

【0068】図20には、ソ−スプログラムを表示する
ためにGUI56は実行する処理手順を示す。
FIG. 20 shows a processing procedure executed by the GUI 56 to display the source program.

【0069】図示するように、まず、ステップ2412
で、これから図形を表示するための座標系の原点を画面
の原点に設定する。ステップ2413では、図9の図形
内部定義テーブルの先頭レコードを読み込み、それをn
1に代入する。この場合、9712のレコ−ドが代入さ
れる。2714では、図11の端子リストより、n1の
入口リストメンバ9612が指すレコードを読み込み、
t1に代入する。例の場合9712の入口リストメンバ
の値は1なので、レコ−ド9731が読み込まれる。
As shown, first, step 2412.
Then, the origin of the coordinate system for displaying the figure is set to the origin of the screen. In step 2413, the top record of the figure internal definition table of FIG.
Substitute in 1. In this case, the 9712 record is substituted. In 2714, the record indicated by the entry list member 9612 of n1 is read from the terminal list of FIG.
Substitute for t1. In the case of the example, the value of the entry list member of 9712 is 1, so the record 9731 is read.

【0070】ステップ2415ではt1の位置メンバに
従って端子を表示する。レコ−ド9731の位置メンバ
9633の値は上なので、画面の上部にプログラムの開
始を表す下三角を表示する。次に、ステップ2416
で、t1が最後のレコ−ドであるかを、次メンバ963
4の値を調べることにより判断している。次の要素があ
った場合は、ステップ2417に進み、t1に次の要素
を読み込み同様な処理を繰り返すが、9731の次メン
バの値は0であり、次の要素がないことがわかる。ない
場合には、ステップ2418に進み、n1の出口リスト
メンバについて、入口リストと同様な処理を行なう(ス
テップ2418〜2421)。
In step 2415, terminals are displayed according to the position member of t1. Since the value of the position member 9633 of the record 9731 is above, a lower triangle indicating the start of the program is displayed at the top of the screen. Then, step 2416.
Then, whether t1 is the last record or not is determined by the next member 963.
Judgment is made by examining the value of 4. If there is a next element, the process proceeds to step 2417, the next element is read at t1, and similar processing is repeated, but the value of the next member of 9731 is 0, and it can be seen that there is no next element. If not, the process proceeds to step 2418, and the process similar to the entry list is performed for the exit list member of n1 (steps 2418 to 2421).

【0071】例の場合には、出口の端子として9732
があるので、画面の下部にプログラムの終了を表す上三
角を表示する。これが終るとステップ2422で、n1
を引数として、プログラム表示再帰処理を呼び出し、画
面を構成する他の図形を描画する。
In the case of the example, 9732 is used as the outlet terminal.
Therefore, an upper triangle indicating the end of the program is displayed at the bottom of the screen. When this is finished, in step 2422, n1
With the argument as an argument, the program display recursive process is called to draw another graphic forming the screen.

【0072】図21に、プログラム表示再帰処理の処理
手順を示す。
FIG. 21 shows a processing procedure of program display recursive processing.

【0073】本処理では、まず、ステップ2432で引
数として受けとった、図形内部定義のレコードをn2と
する。図20で用いた例では、9712のレコ−ドを引
数として渡しているので、この値がn2に代入される。
ステップ2433では、n2の図形リスト9611の値
が指すレコードを図10の図形リストより読み、f1と
する。レコ−ド9712の図形リストメンバの値は1な
ので、図形リストのレコ−ド9720がf1に代入され
る。ステップ2434では、f1の図形番号メンバが指
すレコードを図8の図形定義テーブルより読み、d1に
代入する。9720の図形番号メンバの値は1なので、
図形定義テーブルのレコ−ド9701がd1に代入され
る。ステップ2435でd1の種別メンバを調べてい
る。その値に応じてステップ2436から2440で、
それぞれに対応した図形を表示している。ここでは、レ
コ−ド9701の種別メンバの値は、テキストなので、
処理内容がテキストで定義されていることを表す図形が
表示される。
In this processing, first, the record of the graphic internal definition received as an argument in step 2432 is set to n2. In the example used in FIG. 20, since the record 9712 is passed as an argument, this value is assigned to n2.
In step 2433, the record pointed to by the value of the graphic list 9611 of n2 is read from the graphic list of FIG. 10 and set as f1. Since the value of the graphic list member of the record 9712 is 1, the graphic list record 9720 is substituted for f1. In step 2434, the record pointed to by the figure number member of f1 is read from the figure definition table of FIG. 8 and substituted into d1. The value of the figure number member of 9720 is 1, so
Record 9701 of the figure definition table is substituted for d1. In step 2435, the type member of d1 is checked. Depending on that value, in steps 2436 to 2440,
The figure corresponding to each is displayed. Here, since the value of the type member of the record 9701 is text,
A graphic indicating that the processing content is defined by text is displayed.

【0074】次に、ステップ2441でf1が、図形リ
ストの連結の最後であるか調べている。最後である場合
には、本処理を呼んだ処理にリターンし、そうでない場
合には、ステップ2442でリストの次の要素をf1に
代入して同様の処理を繰り返す。レコ−ド9720の次
メンバの値は2なので、レコ−ド9721がf1に代入
される。レコ−ド9721の図形番号メンバは、図8の
9702を指しているので、図6のデータ1の図形が表
示される。以下、同様に、図10のリストの連結が途切
れる9725まで、処理が繰り返される。
Next, in step 2441, it is checked whether f1 is the end of the concatenation of the graphic lists. If it is the last, the process returns to the process that called this process, and if not, the next element of the list is substituted for f1 in step 2442 and the same process is repeated. Since the value of the next member of the record 9720 is 2, the record 9721 is assigned to f1. Since the figure number member of the record 9721 points to 9702 in FIG. 8, the figure of data 1 in FIG. 6 is displayed. Hereinafter, similarly, the processing is repeated until 9725 when the list connection in FIG. 10 is interrupted.

【0075】さて、前述したように、本実施例では、図
形が表現している処理単位の内容が、さらに図形で表現
されている場合には、要求に応じて、図形が表現してい
る処理単位の内容を、さらに詳細に図形で表示する。こ
のような表示は、プログラム表示再帰処理を再帰的に呼
び出すことにより実現される。すなわち、このプログラ
ム表示再帰処理から図22に示す図形表示処理を呼んで
いるが、図形表示処理の中から、このプログラム表示再
帰処理を更に呼ぶことにより、図形が表現している処理
単位の内容を、さらに詳細に図形で表示する。
As described above, in this embodiment, when the content of the processing unit represented by the graphic is further represented by the graphic, the processing represented by the graphic is requested in response to the request. The contents of the unit are displayed in more detail as a graphic. Such display is realized by recursively calling the program display recursive process. That is, the program display recursive process calls the graphic display process shown in FIG. 22. By further calling the program display recursive process from the graphic display process, the contents of the processing unit represented by the graphic are displayed. , Display in more detail as a graphic.

【0076】図22は、プログラム表示再帰処理(図2
1)のステップ2438で呼ばれる図形表示処理であ
り、処理内容が、さらに図形で表現されている場合に、
それを表示する。ここでは、図6の処理3の図形423
を例に上げて説明する。
FIG. 22 shows a program display recursive process (see FIG.
In the graphic display processing called in step 2438 of 1), if the processing content is further expressed by a graphic,
Display it. Here, the graphic 423 of the process 3 of FIG.
Will be described as an example.

【0077】ステップ2451では、プログラム表示再
帰処理から渡された図形定義レコード(d1)のオープ
ンメンバ9608の値を調べている。このメンバは、現
在、その処理内容を詳細に表示した状態(オープン)に
あるか、詳細に表示していない状態(クローズ)にある
かを示している。オープンの場合には、ステップ245
2で処理の詳細を図形表示するための大きめの枠をウィ
ンドウとして表示する。クローズの状態にある場合に
は、ステップ2453で、図形により、その詳細が定義
されていることを表す2重枠の四角形を表示する。
At step 2451, the value of the open member 9608 of the graphic definition record (d1) passed from the program display recursive process is checked. This member indicates whether the processing contents are currently displayed in detail (open) or not displayed in detail (closed). If open, step 245
In step 2, a large frame is displayed as a window for graphically displaying the details of processing. If it is in the closed state, in step 2453, a double-framed quadrangle indicating that the details are defined by the graphic is displayed.

【0078】この例の処理3(423)の場合には、そ
の図形定義レコードが図8の9703なので、オープン
した状態にあることがわかる。したがって、大きめの枠
が表示される。ステップ2454では、d1の定義番号
メンバ9606が指すレコードを図形内部定義テーブル
(図9)より読み、n3に代入している。レコ−ド97
03の定義番号メンバの値は2なので、図形内部定義テ
ーブル(図9)のレコ−ド9713がn3に代入され
る。ステップ2455では、n3の出口リストメンバが
指すレコードを図11の端子リストより読み込み、t3
に代入している。レコ−ド9713の出口リストメンバ
の値は3なので、端子リストのレコ−ド9733がt3
に代入される。ステップ2456では、t3を引数とし
て、出口矢印表示処理を呼ぶ。これにより表示している
図形から出ていっている矢印が表示される。ステップ2
457では、ステップ2451と同じく、図形がオープ
ンの状態にあるか調べる。クローズの状態にある場合に
は、そのまま、本処理を呼んだ処理にリターンする。オ
ープンの状態にある場合には、ステップ2458で図形
を表示するための原点をステップ2452で表示した枠
の左上に変更する。ステップ2459でn3の入口リス
トメンバが指すレコードを図44の端子リストより読み
t4とする。ステップ2460では、このt4を引数と
して入口矢印表示処理を呼ぶ。これにより、表示してい
る図形に入ってくる矢印の内、表示する必要のあるもの
が表示される。ステップ2461では、n3を引数とし
てプログラム表示再帰処理を再帰的に呼ぶ。これによ
り、表示する処理の詳細な定義が図形で表示される。ス
テップ2462では、ステップ2458で変更した原点
を元に戻している。
In the case of the process 3 (423) of this example, since the graphic definition record is 9703 in FIG. 8, it can be seen that it is in the open state. Therefore, a large frame is displayed. In step 2454, the record pointed to by the definition number member 9606 of d1 is read from the graphic internal definition table (FIG. 9) and assigned to n3. Record 97
Since the value of the definition number member of 03 is 2, the record 9713 of the figure internal definition table (FIG. 9) is substituted for n3. At step 2455, the record pointed to by the exit list member of n3 is read from the terminal list of FIG.
Is assigned to. Since the value of the exit list member of the record 9713 is 3, the terminal list record 9733 is t3.
Is assigned to. In step 2456, the exit arrow display process is called with t3 as an argument. As a result, the arrow pointing out from the displayed figure is displayed. Step two
In step 457, as in step 2451, it is checked whether the figure is in the open state. If it is in the closed state, the process directly returns to the process that called this process. If it is in the open state, the origin for displaying the graphic is changed to the upper left of the frame displayed in step 2452 in step 2458. In step 2459, the record pointed to by the entry list member of n3 is read from the terminal list of FIG. In step 2460, the entrance arrow display process is called with this t4 as an argument. As a result, of the arrows coming into the displayed figure, those that need to be displayed are displayed. In step 2461, the program display recursive process is recursively called with n3 as an argument. As a result, the detailed definition of the processing to be displayed is displayed as a graphic. In step 2462, the origin changed in step 2458 is restored.

【0079】図23に、図形表示処理の、ステップ24
56で呼ばれる出口矢印表示処理の処理手順を示す。
FIG. 23 shows step 24 of the graphic display process.
The processing procedure of the exit arrow display processing called by 56 is shown.

【0080】図示するように、本処理では、まず、ステ
ップ2471で、引数で渡された端子リスト先頭のレコ
ードをtとする。そして、ステップ2472で、表示図
形の表示枠上でのtの位置メンバの位置を(x1、y
1)とする。たとえば、tが図44の9734だった場
合、位置メンバは、左なので図6の423の表示枠の左
側の端子の座標が代入される。ステップ2473で、先
図形と表示図形が図43の図形リストで同一のリストに
入っているか調べる。入っている場合には、ステップ2
475で先図形の端子座標を(x2、y2)に代入す
る。入っていない場合には、ステップ2474で、表示
している図形の1つ外側の図形の出口端子リストから、
元図形が表示図形と一致しているもの探索する。1つ外
側の図形とは、図6でいえば、4232の処理3−2に
対する、423の処理3のような関係である。次に、ス
テップ2476で探索された端子の座標を(x2、y
2)に代入する。ステップ2477で、(x1、y1)
から(x2、y2)へ矢印を表示する。ステップ247
8で、tが端子リストの最後の要素であるか調べ、そう
であるならば終了し、そうでない場合にはステップ24
79で次の要素をtとして、再び同様な処理を行なう。
As shown in the figure, in this processing, first, at step 2471, the record at the head of the terminal list passed as an argument is set to t. Then, in step 2472, the position of the position member of t on the display frame of the display figure is set to (x1, y
1). For example, if t is 9734 in FIG. 44, since the position member is left, the coordinates of the terminal on the left side of the display frame 423 in FIG. 6 are substituted. In step 2473, it is checked whether the destination graphic and the displayed graphic are in the same list in the graphic list of FIG. If yes, step 2
At 475, the terminal coordinates of the previous figure are substituted into (x2, y2). If not, in step 2474, from the exit terminal list of the graphic outside the displayed graphic,
Search for an original figure that matches the displayed figure. The one outer graphic has a relationship like the process 3 of 423 with respect to the process 3-2 of 4232 in FIG. Next, the coordinates of the terminal found in step 2476 are set to (x2, y
Substitute in 2). At step 2477, (x1, y1)
An arrow is displayed from to (x2, y2). Step 247
At 8, check if t is the last element in the terminal list, and if so, exit, otherwise step 24.
At 79, the next element is set to t and the same processing is performed again.

【0081】図24は、図形表示処理のステップ246
0で呼ばれる入口矢印表示処理の処理手順を示したもの
である。
FIG. 24 shows step 246 of the graphic display processing.
9 shows a processing procedure of an entrance arrow display processing called 0.

【0082】本処理では、ステップ2481で、引数で
渡された端子リスト先頭のレコードをtとする。ステッ
プ2482で、元図形と表示図形が図10の図形リスト
で同一のリストに入っているか調べる。入っている場合
には、この矢印は出口矢印表示関数でも表示されるので
処理を飛ばす。入っていない場合には、ステップ248
3で、表示している図形の1つ外側の図形の入口端子リ
ストから、先図形が表示図形と一致しているもの探索す
る。ステップ2484で探索した端子の座標を(x1、
y1)に代入する。ステップ2485で、表示図形の表
示枠上でのtの位置メンバの位置を(x2、y2)とす
る。ステップ2486で、(x1、y1)から(x2、
y2)へ矢印を表示する。ステップ2487で、tが端
子リストの最後の要素であるか調べ、そうであるならば
終了し、そうでない場合にはステップ2479で次の要
素をtとして、再び同様な処理を行なう。
In this processing, in step 2481, the record at the beginning of the terminal list passed as an argument is set to t. At step 2482, it is checked whether the original graphic and the display graphic are in the same list in the graphic list of FIG. If it is included, this arrow is also displayed by the exit arrow display function, so the processing is skipped. If not, step 248
In step 3, a search is made from the entry terminal list of the figure outside of the figure being displayed, that the preceding figure matches the displayed figure. The coordinates of the terminal searched in step 2484 are (x1,
Substitute into y1). In step 2485, the position of the position member of t on the display frame of the display figure is set to (x2, y2). In step 2486, from (x1, y1) to (x2,
Display an arrow to y2). In step 2487, it is checked whether t is the last element in the terminal list, and if so, the process ends, and in step 2479, the next element is set to t and the same processing is performed again.

【0083】以上の処理によって、GUI56は、図
5、6、7に示したような記述法に従ったプログラムの
表示を行う。
Through the above processing, the GUI 56 displays the program according to the description method as shown in FIGS.

【0084】ところで、以上の処理では、画面上で図形
が重なって表示される場合が生じる。 たとえば、図2
5は、422の処理2と423の処理3が重なり合って
いる。この様な場合には、GUI56は、重なっている
図形がマウスによってクリックされた場合に、図形の重
なり方を変化させる。図26は、この図形の重なりを変
更する処理の手順を示したものである。
By the way, in the above processing, there is a case where graphics are overlapped and displayed on the screen. For example, in Figure 2.
5, the process 2 of 422 and the process 3 of 423 overlap. In such a case, the GUI 56 changes the overlapping manner of the figures when the overlapping figures are clicked by the mouse. FIG. 26 shows a procedure of processing for changing the overlapping of the figures.

【0085】図示するように、910で、マウスによっ
てクリックされた図形が、重なりの1番上に位置してい
るか判定している。もし、1番上に位置している場合に
は、その図形を重なりの1番下に移動する。そうでない
場合には、その図形を重なりの1番上に移動する。
As shown in the figure, at 910, it is determined whether the figure clicked by the mouse is located at the top of the overlap. If it is located at the top, the figure is moved to the bottom of the overlap. If not, the figure is moved to the top of the overlap.

【0086】以下、本実施例に係る計算機の動作を、プ
ログラム作成の実際の作業に沿って説明する。
The operation of the computer according to this embodiment will be described below along with the actual work of creating a program.

【0087】まず、プログラムの編集について説明す
る。
First, the editing of the program will be described.

【0088】図27に、プログラム編集時の各部の動作
の流れを示す。
FIG. 27 shows the flow of the operation of each part when the program is edited.

【0089】図中、15はディスク、16は端末コント
ローラ、17はディスプレー、18はメモリ、19はオ
ペレーティングシステム、85はオペレーティングシス
テム用のデータ、23は共有データ領域、24は共有プ
ログラム領域、63はバス、64はマウス、65はキー
ボード、141〜142はプロセッサ、1411〜14
21はレジスタ、214〜216はプロセス、241〜
243、328〜332、844〜846はプログラム
である。
In the figure, 15 is a disk, 16 is a terminal controller, 17 is a display, 18 is a memory, 19 is an operating system, 85 is operating system data, 23 is a shared data area, 24 is a shared program area, and 63 is a shared program area. Bus, 64 mouse, 65 keyboard, 141-142 processor, 1411-14
21 is a register, 214 to 216 are processes, 241 to
Reference numerals 243, 328 to 332, and 844 to 846 are programs.

【0090】213はプロセスとして実現されたデバッ
カ31、214はプロセスとして実現されたのGUI5
6、215はプロセスとして実現されたエディタ30、
216はプロセスとして実現されたコンパイラ29であ
る。プロセッサ141、142..は、メモリ上にある
プロセスから退避されているレジスタ264、265を
ロードすること(645〜646)により、各プロセス
の処理を実行することができる。
Reference numeral 213 denotes a debugger 31 realized as a process, and 214 denotes a GUI 5 realized as a process.
6, 215 are editors 30 realized as processes,
216 is a compiler 29 implemented as a process. Processors 141, 142. . Can execute the process of each process by loading the registers 264 and 265 saved from the process in the memory (645 to 646).

【0091】さて、まず、エディタプロセス215のプ
ログラムが、ソースプログラム35の内容をディスプレ
ー17に表示する手順を説明する。エディタのプログラ
ム331がソースプログラムの内容を読み込み(89
0)、表示の要求をGUIのプロセス214のメッセー
ジキューに送る(891)。GUIのプログラム328
は、メッセージキューよりメッセージを取り出し(90
4)、その内容にしたがって、システムコールを発する
(893)。オペレーティングシステムがディスプレー
17にプログラムの内容を表示する。
Now, first, the procedure by which the program of the editor process 215 displays the contents of the source program 35 on the display 17 will be described. The program 331 of the editor reads the contents of the source program (89
0), the display request is sent to the message queue of the GUI process 214 (891). GUI program 328
Retrieves the message from the message queue (90
4) The system call is issued according to the contents (893). The operating system displays the contents of the program on the display 17.

【0092】次に、ユーザがマウス64やキーボード6
5を操作してプログラムを書き換える動作を説明する。
GUIのプログラム329は、readのシステムコー
ルを発して(903)、待機状態に移行する。オペレー
ティングシステムのプログラム846に、マウスやキー
ボードから操作が与えられると、GUIのプログラム3
29は、903のシステムコールからリターンして89
6のメッセージをエディタのプロセス215に送信す
る。エディタのプログラム330は、このメッセージを
取り出して、指示通りにソースプログラム35を変更す
る898。ソースプログラム35の変更は、先に図8か
ら図13に示したテ−ブル、リストの内容を変更するこ
とにより行われる。
Next, the user uses the mouse 64 and the keyboard 6
The operation of rewriting the program by operating 5 will be described.
The GUI program 329 issues a read system call (903) and shifts to the standby state. When an operation is given to the operating system program 846 from the mouse or keyboard, the GUI program 3
29 returns 89 from the system call 903
6 message to editor process 215. The editor program 330 retrieves this message and modifies the source program 35 as instructed 898. The source program 35 is changed by changing the contents of the table and list shown in FIGS.

【0093】なお、プログラムの作成が終了するとユー
ザはコンパイラプロセス216を起動する。コンパイラ
のプログラム332は、ソースプログラム35を読み込
み(899)、コンパイルして、オブジェクトプログラ
ム36を生成する(900)。オブジェクトプログラム
は最後にディスク15に格納される(901)。プログ
ラムを実行するときには、ディスクに格納されたオブジ
ェクトプログラムを共有プログラム領域24にロードし
て実行する。
When the program is created, the user activates the compiler process 216. The compiler program 332 reads the source program 35 (899) and compiles it to generate an object program 36 (900). The object program is finally stored in the disk 15 (901). When executing the program, the object program stored in the disk is loaded into the shared program area 24 and executed.

【0094】以下、プログラムの編集動作の詳細につい
て説明する。
Details of the program editing operation will be described below.

【0095】まず、本実施例において、編集するプログ
ラムに使用することのできるライブラリ関数について説
明しておく。ライブラリ関数は、あらかじめ、メモリ上
にライブラリとして登録しておいた、任意のプログラム
から利用することのできる関数である。図28にライブ
ラリ関数の一覧を示す。
First, the library functions that can be used for the program to be edited in this embodiment will be described. The library function is a function that is registered in the memory as a library in advance and can be used from any program. FIG. 28 shows a list of library functions.

【0096】図中、関数mforkは、引き数で指定し
た数より1つ少ないプロセスを生成する。初めてmfo
rkが実行された時点では、mforkを実行したプロ
セスも合わせて引数で指定した数のプロセスが存在する
ことになる。生成されたプロセスは、生成したプロセス
と同じプロセスであり、生成したプロセスと同じプログ
ラムを同じ位置より実行し始める。ただし、関数mfo
rkの返り値がシリアル番号となっており、それぞれ異
なるので各プロセスを区別することが可能である。
In the figure, the function mfork creates a process one less than the number specified by the argument. First time mfo
At the time when rk is executed, the number of processes specified by the arguments also exists in the processes that executed mfork. The generated process is the same process as the generated process, and the same program as the generated process starts to be executed from the same position. However, the function mfo
Since the return value of rk is a serial number and is different, it is possible to distinguish each process.

【0097】関数getqueは、実行可能となったス
レッドが入るキューを生成する。スレッドは、プロセス
よりも細かい処理の実行単位である。プロセスに比べ
て、生成等のオーバヘッドが少ない。本実施例では、プ
ロセスが仮想プロセッサ的な働きをして、スレッドを実
行する。すなわち、スレッドをキューに登録すると、仮
想プロセッサがキューよりスレッドを取り出して、それ
を実行する。
The function getqueue creates a queue in which threads that are ready to run enter. A thread is an execution unit of smaller processing than a process. Compared to the process, there is less overhead such as generation. In this embodiment, a process acts like a virtual processor and executes a thread. That is, when a thread is registered in the queue, the virtual processor takes out the thread from the queue and executes it.

【0098】関数threadは、スレッドを生成し
て、キューに登録する。関数threadの引数とし
て、生成されたスレッドが実行する関数のアドレスと、
その関数に与える引数を記述する。関数msgget
は、プロセス間でメッセージ転送をするために必要なキ
ューをプロセスに生成する。すなわち、図2におけるキ
ュー281が生成される。
The function thread creates a thread and registers it in the queue. As an argument of the function thread, the address of the function executed by the generated thread,
Describe the argument given to the function. Function msgget
Creates a queue for processes to transfer messages between processes. That is, the queue 281 in FIG. 2 is generated.

【0099】関数msggetは、生成されたメッセー
ジキューの識別子を返す。関数sendは、引数で与え
た識別子のメッセージキューに引数で与えたメッセージ
を送信する。関数rcvは、引数で与えた識別子のメッ
セージキューよりメッセージを取り出す。指定されたメ
ッセージキューが空だった場合には、メッセージが送ら
れて来るまで待つ。
The function msgget returns the identifier of the created message queue. The function send sends the message given by the argument to the message queue of the identifier given by the argument. The function rcv takes out a message from the message queue of the identifier given by the argument. If the specified message queue is empty, wait until a message is sent.

【0100】関数putは、共有データに値を書き込
む。関数getは、共有データの値を読み出す。関数p
utと関数getでは、共有データアクセス時の排他制
御を自動的に行う。
The function put writes a value to shared data. The function get reads the value of shared data. Function p
ut and the function get automatically perform exclusive control when accessing shared data.

【0101】関数getbrrは、バリア同期のための
バリアを生成する。バリアは、任意の個数のスレッドの
相互同期を行う。スレッドの処理がバリアに達すると、
指定した個数のスレッドが既にバリアに達しているか調
べ、まだ、達していなければ達するまで待つ、達してい
れば、そのまま通過する。関数barrierはバリア
同期を行う関数である。
The function getbrr creates a barrier for barrier synchronization. The barrier provides mutual synchronization of any number of threads. When thread processing reaches the barrier,
Checks if the specified number of threads have already reached the barrier, waits until it has reached it, and if it has, passes it through. The function barrier is a function for performing barrier synchronization.

【0102】関数vpは、スレッドを実行する仮想プロ
セッサの処理を行う。全てのスレッドの処理が終了する
までこの関数からリターンすることはない。
The function vp processes a virtual processor that executes a thread. It does not return from this function until all threads have finished processing.

【0103】関数getjoinはjoin同期のため
の構造体を生成する。
The function getjoin creates a structure for join synchronization.

【0104】関数joinでも、任意の個数のスレッド
が相互同期を行う。前述したバリア同期と異なる点は、
バリアは、同期後、全てのスレッドが次の処理を続行す
るのに対して、join同期は、同期後、一つのみのス
レッドが次の処理に進み、他のスレッドは終了する点で
ある。
Also in the function join, an arbitrary number of threads perform mutual synchronization. The difference from the barrier synchronization described above is
The barrier is that all threads continue the next processing after synchronization, whereas the join synchronization is that only one thread advances to the next processing after synchronization and the other threads end.

【0105】関数joinはjoin同期を行う関数で
ある。
The function join is a function for performing join synchronization.

【0106】さて、図29は、エディタ30がGUI5
6を通して、ディスプレイ17に表示する画面の一例で
ある。この画面をディスプレイに複数同時に表示するこ
とも可能である。
In FIG. 29, the editor 30 displays the GUI5.
6 is an example of a screen displayed on the display 17 through 6. It is also possible to display a plurality of this screens on the display at the same time.

【0107】図29に於て、46が編集対象のプログラ
ムを表示する画面である。66は、マウスカーソルであ
り、マウス64を前後左右に動かすことにより、これを
上下左右に移動させることができる。また、マウスには
ボタンがあり、マウスカーソルを図形の上に持ってい
き、このボタンを押せば、その図形が選択される。これ
をクリックと呼ぶ。また、目的の図形の上にマウスカー
ソルを移動して、ボタンを押し、押したままマウスカー
ソルを移動させることもできる。これをドラッグと呼
ぶ。
In FIG. 29, reference numeral 46 is a screen for displaying the program to be edited. Reference numeral 66 denotes a mouse cursor, which can be moved vertically and horizontally by moving the mouse 64 back and forth and left and right. Further, the mouse has a button, and when the mouse cursor is placed on a figure and this button is pressed, the figure is selected. This is called clicking. It is also possible to move the mouse cursor over the target graphic, press the button, and move the mouse cursor while the button is pressed. This is called a drug.

【0108】68はカーソルであり、キーボード65を
打つと、このカーソルの位置に文字が挿入される。47
1〜474及び481、482は、プログラム5が大き
すぎて画面46に表示しきれなかった場合に使用するス
クロール用ボタンである。481及び482の位置は、
プログラム5のどの部分が画面に表示されているかを示
している。これらのボタンをドラッグして移動させる
と、表示されている部分も変化する。例えば481を右
に移動させると、プログラム5の右の方が表示される。
471〜474のボタンをクリックすると、481や4
82のボタンが一定の距離、上下左右に移動する。55
は、プログラムを作成するための部品のメニューであ
る。このメニューの部品をドラッグして必要な位置に持
っていけばよい。552はjoinのためのバー、55
3はバリア同期のためのバー、554は処理を表す四
角、553は共有データを表す楕円である。また、前述
したように、処理3を表す図形423は、四角が2重に
なっている。これは、この処理に関しては、さらに詳し
い処理内容が図形で定義されていることを表している。
Reference numeral 68 denotes a cursor, and when the keyboard 65 is hit, a character is inserted at the position of this cursor. 47
1 to 474 and 481 and 482 are scroll buttons used when the program 5 is too large to be displayed on the screen 46. The positions of 481 and 482 are
It shows which part of the program 5 is displayed on the screen. If you drag and move these buttons, the displayed area will also change. For example, when 481 is moved to the right, the right side of program 5 is displayed.
Click the buttons 471-474 to select 481 or 4
The button 82 moves up, down, left and right for a certain distance. 55
Is a menu of parts for creating a program. All you have to do is drag the parts of this menu to the required position. 552 is a bar for joins, 55
3 is a bar for barrier synchronization, 554 is a square representing processing, and 553 is an ellipse representing shared data. Further, as described above, the figure 423 representing the process 3 has a double square. This indicates that more detailed processing content is defined by the graphic for this processing.

【0109】さて、先に図6に示したように、プログラ
ム中の1つの処理を更に詳細に表示させる場合には、図
29の編集画面で、四角が2重になっている処理3の四
角をクリックすることにより、詳細な処理内容を表示さ
せることができる。図6がその状態であり、処理3を表
す四角423が大きくなり、その内部に詳細な処理が表
示される。4231〜4234は処理、4235〜42
39は処理の流れ、4240はjoinを表している。
4232の四角が二重になっているのは、この処理に関
してはさらに細かい処理の記述が表示可能であることを
示している。
Now, as shown in FIG. 6, when one process in the program is to be displayed in more detail, in the edit screen of FIG. By clicking, detailed processing contents can be displayed. FIG. 6 shows the state, and the square 423 representing the process 3 is enlarged, and the detailed process is displayed therein. 4231 to 4234 are processing, 4235 to 42
Reference numeral 39 represents a processing flow, and 4240 represents a join.
The double square in 4232 indicates that a detailed description of this process can be displayed.

【0110】また、図7に示したように、処理内容をテ
キスト4222で表示するためには、1重の四角で表示
されている処理2の四角をクリックすることにより、処
理内容をテキストで表示させることができる。また、こ
の表示内容を編集することもできる。図7では、422
1が、図4中の422の四角が大きくなって4221と
なり、その内部に処理内容がテキスト4222で表示さ
れている。このような、表示状態において、ユ−ザはテ
キスト4222の内容を編集することができる。
Further, as shown in FIG. 7, in order to display the processing content in the text 4222, the processing content is displayed in the text by clicking the square of the processing 2 displayed in the single square. Can be made. Also, the displayed contents can be edited. In FIG. 7, 422
4, the square of 422 in FIG. 4 is enlarged to become 4221, and the processing content is displayed in the text 4222 therein. In such a display state, the user can edit the content of the text 4222.

【0111】次に、図30は、プログラムを作成開始時
の画面の初期状態を示す。図中、40はスタート図形、
541、542は処理の流れを表す矢印、421は処理
を表す四角、41はエンド図形、66はマウスカーソ
ル、55は部品メニューである。初期状態では、プログ
ラムは内容のない処理421、一つからなる。マウスカ
ーソルを処理を表す四角の中に移動してから、キーボー
ドで字を入力すると、処理の図形に名前を付けることが
できる。
Next, FIG. 30 shows the initial state of the screen at the start of program creation. In the figure, 40 is a start figure,
Reference numerals 541 and 542 are arrows representing the flow of processing, 421 is a square representing processing, 41 is an end figure, 66 is a mouse cursor, and 55 is a parts menu. In the initial state, the program consists of one process 421, which has no content. You can give a name to the graphic of the process by moving the mouse cursor inside the box representing the process and then entering a character with the keyboard.

【0112】次に、図31は図形を配置する方法を示し
ている。処理を表す図形を新たに配置したい場合には、
メニュー中の処理を表す図形554をマウスカーソル6
6でドラッグして(671)、好きな場所(422)に
配置する。
Next, FIG. 31 shows a method of arranging figures. If you want to place a new graphic representing the process,
Move the mouse cursor 6 to the graphic 554 showing the processing in the menu.
Drag it in 6 (671) and place it in your favorite location (422).

【0113】図32は、処理の起動を、矢印によって記
述する方法を示している。464は編集画面である。処
理421の中で処理422を起動する場合、処理421
の横の辺4251の上にマウスカーソル66を移動し、
目的の処理を表す四角の上辺までドラッグする。する
と、矢印491が描かれる。
FIG. 32 shows a method of describing the start of processing by an arrow. Reference numeral 464 is an edit screen. When the process 422 is activated in the process 421, the process 421 is executed.
Move the mouse cursor 66 over the side 4251 next to
Drag to the top of the square that represents the desired process. Then, the arrow 491 is drawn.

【0114】図33は、処理内容がテキストで表示され
ているときの、処理の起動表す矢印を描く方法を示して
いる。465は編集画面である。この場合も、図32と
同様に矢印を描くが、処理421の横の辺をドラッグす
るときに、テキスト中の処理を起動したい場所のすぐ横
をドラッグするようにする。するとその部分にスレッド
起動のためのライブラリ関数threadの呼び出しが
自動的に挿入され(681)、矢印491も表示され
る。逆に、キーボードから、カーソル68の場所にth
read関数の呼び出しを打ち込んだ場合にも、矢印4
91が表示される。
FIG. 33 shows a method of drawing an arrow indicating the start of processing when the processing content is displayed in text. Reference numeral 465 is an edit screen. In this case as well, an arrow is drawn as in FIG. 32, but when the side of the process 421 is dragged, it is dragged just beside the place in the text where the process is to be activated. Then, a call of the library function thread for thread activation is automatically inserted in that portion (681), and the arrow 491 is also displayed. Conversely, from the keyboard, move to the position of the cursor 68
If you type a call to the read function, arrow 4
91 is displayed.

【0115】図34は、処理間のメッセージ通信を、矢
印によって記述する方法を示している。処理421から
処理422にメッセ−ジを送る場合、処理421の横の
辺の上にマウスカーソルを移動し、送信先の処理を表す
四角の横の辺までドラッグする。すると、矢印533が
描かれる。図示した場合、処理421から処理422に
メッセージ533が送られる。
FIG. 34 shows a method of describing message communication between processes by arrows. When sending a message from the process 421 to the process 422, the mouse cursor is moved to the side of the process 421 and dragged to the side of the square representing the process of the destination. Then, the arrow 533 is drawn. In the illustrated case, the message 533 is sent from the process 421 to the process 422.

【0116】図35は、図16のメッセージ通信をテキ
ストで詳細表示したところである。送信側にはsend
の呼び出し682が挿入されており、受信側にはrcv
683が挿入されている。メッセージ通信をユーザが記
述する方法は、図32、図33の処理の起動と同様であ
る。
FIG. 35 is a detailed display of the message communication of FIG. 16 in text. Send to the sender
Call 682 has been inserted, and the receiving side has rcv
683 is inserted. The method of describing the message communication by the user is the same as the activation of the processing in FIGS. 32 and 33.

【0117】図36は、処理からの共有データへの書き
込みを、矢印によって記述する方法を示している。処理
421の横の辺の上にマウスカーソルを移動し、書き込
み先のデータ1を表す四角の上の辺までドラッグする。
すると、矢印533が描かれる。この場合は、処理42
1から共有データ45にデータを書き込んでいる(53
1)。
FIG. 36 shows a method of writing the shared data from the process by using arrows. The mouse cursor is moved to the horizontal side of the process 421 and dragged to the upper side of the square representing the data 1 of the writing destination.
Then, the arrow 533 is drawn. In this case, the process 42
Data is written from 1 to the shared data 45 (53
1).

【0118】図37は、図336の共有データへの書き
込みをテキストで詳細表示したところである。テキスト
には共有データへの書き込みを行うライブラリ関数pu
tの呼び出し684が挿入されている。共有データへの
書き込みをユーザが記述する方法は、図32、図33の
処理の起動と同様である。
FIG. 37 is a detailed text representation of the writing to the shared data of FIG. 336. Library function pu for writing to shared data in text
A call 684 of t has been inserted. The method for the user to write the shared data is the same as the activation of the processing in FIGS. 32 and 33.

【0119】図38は、処理からの共有データの読み出
しを、矢印によって記述する方法を示している。データ
1の上の辺の上にマウスカーソルを移動し、処理1を表
す四角421の上の辺までドラッグする。すると、矢印
534が描かれる。処理421から共有データ45のデ
ータを読みだしている(534)。
FIG. 38 shows a method of describing the reading of shared data from the process by an arrow. The mouse cursor is moved to the upper side of the data 1 and dragged to the upper side of the square 421 representing the process 1. Then, the arrow 534 is drawn. The data of the shared data 45 is read from the process 421 (534).

【0120】図39は、図20の共用データの読み出し
をテキストで詳細表示したところである。テキストには
共有データ読み出しを行うライブラリ関数getの呼び
出し685が挿入されている。共有データからの読み出
しをユーザが記述する方法は、図32、33の処理の起
動と同様である。
FIG. 39 is a detailed display of the reading of the shared data of FIG. 20 in text. A call 685 of a library function get for reading shared data is inserted in the text. The method by which the user describes the reading from the shared data is the same as the activation of the processing in FIGS.

【0121】図40は、処理同志の待ち合わせ(joi
n)を記述する方法を表している。
FIG. 40 shows a process of waiting for a job (joy).
n) is described.

【0122】図示した例では、joinを表す図形44
を配置し、この図形44に、待合せを行う処理421、
422から矢印を描き、待合せ後に実行する処理423
に、図形44から矢印を描いている。こうして描かれた
プログラムは、421と422の両方の処理が終了して
初めて、処理423が開始されることを表している。5
35〜537は処理の流れを表す矢印であり、44の記
号は535と536の両方が来てから、537に進むこ
とを表している。
In the illustrated example, the graphic 44 representing join is shown.
Is placed, and the process 441, which waits for this figure 44,
Processing 423 of drawing an arrow from 422 and executing after waiting
An arrow is drawn from the figure 44. The program thus drawn indicates that the processing 423 is started only after the processing of both 421 and 422 is completed. 5
35 to 537 are arrows indicating the flow of processing, and the symbol 44 indicates that both 535 and 536 come and then proceeds to 537.

【0123】図40は、図22の処理同志の待ち合わせ
をテキストで詳細表示したところである。待ち合わせは
ライブラリ関数joinにより実現されている。処理4
21と処理422の両方が関数joinを呼び出すと処
理3が起動される。処理の待ち合わせをユーザが記述す
る方法は、図32、33の処理の起動と同様である。
FIG. 40 is a detailed display in text of the meeting of the processing partners of FIG. The waiting is realized by the library function join. Process 4
When both 21 and process 422 call the function join, process 3 is activated. The method by which the user describes waiting for processing is the same as the activation of processing in FIGS.

【0124】図41は、処理同志のバリア同期を記述す
る方法を表している。
FIG. 41 shows a method of describing the barrier synchronization between the processes.

【0125】バリヤを表す図形69を配置し、この図形
44に、待合せを行う処理421、422から矢印を描
き、待合せ後に実行する処理423、424に、図形6
9から矢印を描いている。こうして描かれたプログラム
は、421と422の両方の処理が終了して初めて、処
理423と処理424が開始される。538〜544は
処理の流れを表す矢印であり、69のバリアは538と
539の両方の流れが来てから、543と544に進む
ことを表している。
A graphic 69 representing a barrier is arranged, an arrow is drawn from the waiting process 421, 422 on this graphic 44, and the graphic 6 is written in the process 423, 424 executed after the waiting.
The arrow is drawn from 9. In the program thus drawn, the processing 423 and the processing 424 are started only after the processing of both 421 and 422 is completed. Reference numerals 538 to 544 are arrows representing the flow of processing, and the barrier of 69 indicates that the flow of both 538 and 539 comes and then proceeds to 543 and 544.

【0126】図42は、図41のバリア同期をテキスト
で詳細表示したところである。テキストには、処理の待
ち合わせを表す関数barrierの呼び出し(68
9、692)が挿入されている。関数barrierか
らリターンすると、691と693の関数thread
で処理3(423)と処理4(424)が起動される。
バリア同期をユーザが記述する方法は、図33、図34
の処理の起動と同様である。
FIG. 42 is a detailed display of the barrier synchronization shown in FIG. 41 as text. In the text, call the function barrier that represents the waiting for processing (68
9, 692) has been inserted. When returning from the function barrier, the function thread of 691 and 693
Then, process 3 (423) and process 4 (424) are activated.
The method for the user to describe the barrier synchronization is shown in FIGS.
This is the same as the start of the process of

【0127】さて、以上のようなプログラムの編集は、
GUI56が、オペレーティングシステムを介して得た
ユ−ザの操作に応じたメッセ−ジをエディタのプロセス
215に送信し、エディタは、このメッセージを取り出
して、先に図8から図13に示したテ−ブル、リストの
内容を変更することにより行われる。たとえば、図6、
7に示したような処理内容の詳細表示は、エディタが、
クリックされた図形定義テ−ブル(図8)のオ−プンメ
ンバ9608の値を変更し、GUI56に表示を依頼す
ることにより達成される。また、図形、矢印の移動、追
加等は、操作内容に従った、各テ−ブル、リストへのレ
コ−ドの追加や、レコ−ド内容の変更および、GUIへ
の表示依頼によって達成される。また、矢印の設定に伴
うライブラリ関数の挿入や、ユ−ザの記述に従ったテキ
ストの追加、削除、変更は、テキスト定義テ−ブル(図
12)に定義された図形に対応するファイルの内容を更
新することにより達成される。
Now, the editing of the above program is
The GUI 56 sends a message according to the user's operation obtained through the operating system to the process 215 of the editor, and the editor takes out this message and outputs the message shown in FIGS. -It is done by changing the contents of the bull list. For example, in FIG.
The detailed display of the processing contents as shown in 7
This is accomplished by changing the value of the open member 9608 of the clicked graphic definition table (FIG. 8) and requesting the GUI 56 to display it. In addition, movements and additions of figures and arrows are achieved by adding records to each table and list, changing record contents, and requesting display on the GUI, according to the operation contents. . The contents of the file corresponding to the graphic defined in the text definition table (Fig. 12) can be used to insert a library function associated with the setting of the arrow and to add, delete, or change the text according to the user's description. Is achieved by updating.

【0128】さて、このようにして作成したプログラム
が、図45に示したようなものである場合、共有データ
が不確定になる。
If the program created in this way is as shown in FIG. 45, the shared data becomes indeterminate.

【0129】図45において、421〜427は処理、
493〜499は処理の流れ、45は共有データ、54
5と546は共有データへの書き込み、441はjoi
n、701〜703は共有データへの書き込みが発生す
るまでの経緯を示している。
In FIG. 45, 421 to 427 are processes,
493 to 499 are processing flows, 45 is shared data, 54
5 and 546 are writing to shared data, and 441 is joi
Reference numerals n and 701 to 703 indicate the history of writing to the shared data.

【0130】すなわち、処理1(421)から起動され
た処理4(425)と処理5(424)が441のjo
inで待ち合わせて、処理6(426)へ進み、その中
で共有データ45へ書き込むという経緯が701と70
3である。一方、702の経緯は、処理1(421)か
ら起動された処理2(422)の中で共有データ45に
書き込み545を行っている。前者の経緯と後者の経緯
の間では同期等が行われておらず、546と545の書
き込みのどちらが先に実行されるか確定していない。こ
れは、実行の度に、共有データの値が異なってしまい好
ましくない。
That is, the process 4 (425) and the process 5 (424) started from the process 1 (421) are job 441.
In 701 and 70, the process of waiting for in and proceeding to process 6 (426), in which the shared data 45 is written
It is 3. On the other hand, as for the history of 702, writing 545 is performed in the shared data 45 in the processing 2 (422) started from the processing 1 (421). There is no synchronization between the former process and the latter process, and it is uncertain which of writing 546 and 545 is executed first. This is not preferable because the value of the shared data is different each time it is executed.

【0131】そこで、プログラムを作成していく段階
で、新たに共有データへのアクセスを定義する毎に、共
有データの値が不確定にならないか確認するのが好まし
い。
Therefore, at the stage of creating the program, it is preferable to confirm whether the value of the shared data becomes indefinite every time the access to the shared data is newly defined.

【0132】図45に、共有データの値が確定すること
を確認することのできるアルゴリズムを示している。
FIG. 45 shows an algorithm capable of confirming that the value of shared data is fixed.

【0133】本実施例では、プログラムを作成していく
段階で、新たに共有データへのアクセスを定義する毎
に、このアルゴリズムに従った処理を実行し共有データ
の値が不確定にならないか確認する。
In this embodiment, at the stage of creating a program, every time access to shared data is newly defined, processing according to this algorithm is executed to check whether the value of shared data becomes indeterminate. To do.

【0134】すなわち、まず、あらたに定義した共有デ
ータへのアクセスをNとする(ステップ711)。次
に、その共有データへアクセスしている他の処理を順番
に調べる。ステップ712では、調べていない処理がも
うないか判断する。そして、ない場合には処理を終了す
る。あった場合には、その処理の1つをRとする(ステ
ップ713)。処理Nの前に実行される処理の集合をB
nとする(ステップ715)。集合Bnから処理を1つ
ずつ取り出しRまで到達可能であるか調べ、到達可能で
ある場合には、その経路上にある処理を集合Brに入れ
る(ステップ716)。処理Nの後にある処理の集合を
Anとし(ステップ717)、処理Rの後にある処理の
集合をArとする(ステップ718)。ステップ719
〜721では、ArとBn、AnとBrの要素間でメッ
セージ、バリア、join等の同期が行われているか調
べている。どちらの集合の要素間でも同期が行われてい
ない場合には共有データの値が不確定になるので警告を
表示する(ステップ722)。どちらかの集合の要素間
で同期が行われている場合には共有データの値は確定し
ている(ステップ723、724)。両方の集合の要素
間で同期が行われている場合には、デッドロックの可能
性があるので警告を発する(ステップ725)。
That is, first, the access to the newly defined shared data is set to N (step 711). Next, the other processes accessing the shared data are sequentially examined. In step 712, it is determined whether there is any unprocessed processing. If not, the process ends. If there is, one of the processes is set to R (step 713). B is the set of processes executed before process N
n (step 715). The processes are taken one by one from the set Bn, and it is checked whether the process can be reached to R. If the process is reachable, the process on the route is put into the set Br (step 716). The set of processes after the process N is An (step 717), and the set of processes after the process R is Ar (step 718). Step 719
In 721, it is checked whether the elements such as Ar and Bn and An and Br are synchronized with each other such as message, barrier, join and the like. If synchronization is not performed between the elements of either set, the value of the shared data becomes uncertain, and a warning is displayed (step 722). If the elements of either set are synchronized, the value of the shared data is fixed (steps 723 and 724). If the elements of both sets are synchronized, a warning is issued because there is a possibility of deadlock (step 725).

【0135】さて、実際に、図44のプログラムに、図
45のアルゴリズムに適用してみると次のようになる。
Now, actually applying the algorithm of FIG. 45 to the program of FIG. 44 gives the following.

【0136】まず、新しくアクセスする処理Nを処理2
(422)とする。ステップ713で選択される処理は
処理6(426)しかないので、Rはこの処理となる。
ステップ715でNの前にある処理の集合Bnを求めて
いるが、Nである処理2の前に実行される処理は処理1
(421)のみである。よって、Bn={処理1}とな
る。ステップ716で、Bnの各要素からRへのルート
を捜している。Bnの要素は処理1のみである。処理1
からRである処理6へのルートは、処理4を通り、jo
in(441)を経て処理6へ達するルートと、処理
5、joinを通り処理6に達するルートの2つが存在
する。ルート中の処理の集合Br={処理4、処理5}
となる。ステップ717で、Nである処理2の後に実行
される処理の集合Anを求めているこれは、An={処
理3、処理7}である。同様にステップ718では、A
r={処理7}である。ステップ719で、集合Arの
要素から、集合Bnへの要素へのメッセージ、バリア、
joinがあるか調べている。Arの要素は、処理7の
みであり、Bnの要素は処理1のみである。両者の間に
は同期が存在しないので、ステップ719の判定はNと
なる。ステップ720では、同様に集合Anと集合Br
の関係を調べている。Anの要素は処理3と処理7であ
り、Brの要素は処理4と処理5である。これらの間に
も同期は存在しない。したがって、ステップ720の判
定もNとなる。したがって、ステップ722で共有デー
タの値が不確定であると判定され、警告が発せられる。
First, process 2 for newly accessing is processed 2
(422). Since the process 6 (426) is the only process selected in step 713, R is this process.
In step 715, the set Bn of processes before N is obtained, but the process executed before process 2 which is N is process 1
Only (421). Therefore, Bn = {Process 1}. In step 716, the route from each element of Bn to R is searched. The element of Bn is only the process 1. Processing 1
The route from R to Process 6 is through Process 4,
There are two routes: a route to process 6 via in (441) and a route to process 6 via process 5 and join. Set of processes in route Br = {process 4, process 5}
Becomes In step 717, a set An of processes to be executed after the process 2, which is N, is obtained. This is An = {process 3, process 7}. Similarly, in step 718, A
r = {Process 7}. In step 719, messages from the elements of the set Ar to the elements of the set Bn, barriers,
Checking if there is a join. The element of Ar is only the processing 7, and the element of Bn is only the processing 1. Since there is no synchronization between the two, the determination in step 719 is N. In step 720, the set An and the set Br are similarly set.
Are investigating the relationship. The elements of An are processing 3 and processing 7, and the elements of Br are processing 4 and processing 5. There is no synchronization between them either. Therefore, the determination in step 720 is also N. Therefore, in step 722, it is determined that the value of the shared data is indeterminate, and a warning is issued.

【0137】さて、本実施例では、警告は、不確定の原
因となっている処理と、処理の流れと、不確定となる共
有データへの書き込みの表示色を変化させることにより
行う。たとえば、図44の共有データ45への書き込み
545を定義したところで、共有データが不確定になる
ことが検出された場合に行う警告は、図46に示すよう
に、不確定の原因となっている処理421、422、4
24、425、426と、処理の流れ493〜495、
500、501と、共有データへの書き込み545、5
46の表示色を変化させることにより行う。
In the present embodiment, the warning is issued by changing the process causing the indetermination, the flow of the process, and the display color of writing to the indeterminate shared data. For example, when the writing 545 to the shared data 45 of FIG. 44 is defined, the warning issued when it is detected that the shared data becomes indefinite causes the indefinite as shown in FIG. 46. Processing 421, 422, 4
24, 425, 426, and process flows 493 to 495,
500, 501 and writing to shared data 545, 5
This is performed by changing the display color of 46.

【0138】以上プログラムの編集について説明した。
次に、このように、作成/編集したプログラムの実行に
ついて説明する。
The editing of the program has been described above.
Next, the execution of the program thus created / edited will be described.

【0139】編集後、前述したモ−ドメニュ−(図1
6)を表示させ、ランボタンをクリックすると、ソ−ス
プログラム35はコンパイラ29によってコンパイルさ
れ、オブジェクトプログラム36が生成され、実行され
る。ソ−スプログラム35のコンパイルは、図12のテ
キスト定義テ−ブルに登録されている各ファイルのテキ
ストをコンパイルすることにより実現される。全ての処
理は、最終的にテキストによって定義され、処理間の関
係や、データのアクセス等は、これを表す矢印を配置し
たときに、これらのテキスト中に反映されているからで
ある。
After editing, the above-mentioned mode menu (see FIG.
6) is displayed and the run button is clicked, the source program 35 is compiled by the compiler 29, and the object program 36 is generated and executed. The source program 35 is compiled by compiling the text of each file registered in the text definition table of FIG. This is because all the processes are finally defined by the text, and the relation between the processes, the data access, etc. are reflected in these texts when the arrow indicating this is arranged.

【0140】さて、図47は、プログラムを実行したと
きに、最初に生成されるプロセスの処理内容を示してい
る。58が処理全体である。ステップ581では、図1
の共有データ領域22を確保した後、初期化している。
ステップ582では、スレッド用のキューを共有データ
領域に生成している。ステップ583では、スレッド用
キューに最初に実行するスレッドを入れている。図5に
示したプログラムの場合、処理1を実行するスレッドが
キューに入ることになる。ステップ584では、プログ
ラム実行に使用するプロセサの台数をユーザが指定して
いるか調べている。指定している場合には、使用するプ
ロセッサ台数nprocを指定されたプロセスの数とす
る(ステップ586)。指定されていない場合には、シ
ステムにあるプロセッサの台数と同じ数のプロセスを使
用することにする(ステップ585)。ステップ587
でプロセスを実際に生成している。生成されたプロセス
は、それらを生成したプロセスと同じプログラムを同じ
場所より実行し始めるので、以後の処理は、生成された
プロセスも合わせて実行する。ステップ588〜589
では、トレースを行う場合にはトレース領域を確保して
いる。トレース領域も各プロセスが、それぞれ、自分の
場所を確保する。ステップ590で仮想プロセッサの処
理を開始する。すなわち、キューに入っているスレッド
を取り出して実行する。
Now, FIG. 47 shows the processing contents of the process first generated when the program is executed. Reference numeral 58 represents the entire process. In step 581, as shown in FIG.
The shared data area 22 is secured and then initialized.
In step 582, a thread queue is created in the shared data area. In step 583, the thread to be executed first is put in the thread queue. In the case of the program shown in FIG. 5, the thread executing the process 1 is queued. In step 584, it is checked whether the user has specified the number of processors used for executing the program. If specified, the number of processors to be used, nproc, is set to the number of specified processes (step 586). If not specified, it will use as many processes as there are processors in the system (step 585). Step 587
The process is actually created in. Since the created processes start executing the same program as the process that created them from the same place, the subsequent processing also executes the created process. Steps 588-589
Then, a trace area is secured when tracing is performed. Each process also reserves its own location in the trace area. In step 590, the processing of the virtual processor is started. That is, the thread in the queue is taken out and executed.

【0141】一方、プロセスを生成するmforkの動
作は、図48に示すように行われる。
On the other hand, the operation of mfork for generating a process is performed as shown in FIG.

【0142】図中、18はメモリであり、プロセス21
1、オペレーティングシステム19、ライブラリ20、
共有データ領域23、共有プログラム領域24、トレー
スデータ領域22がある。プロセス211がライブラリ
20中のmforkを実行した(60)とする。プロセ
スの生成は特権モードで実行しなければならない。そこ
で、ライブラリ20は、システムコールにより、オペレ
ーティングシステム19にプロセス生成の処理を依頼す
る(61)。オペレーティングシステムが、プロセス2
12、213を生成する。
In the figure, 18 is a memory, and a process 21
1, operating system 19, library 20,
There are a shared data area 23, a shared program area 24, and a trace data area 22. It is assumed that the process 211 executes mfork in the library 20 (60). Process creation must be done in privileged mode. Therefore, the library 20 requests the operating system 19 to perform process generation processing by a system call (61). Operating system is process 2
12, 213 are generated.

【0143】前述した仮想プロセッサ(vp)とライブ
ラリ関数threadの関係は、図49に示すようにな
る。
The relationship between the above virtual processor (vp) and the library function thread is as shown in FIG.

【0144】同図に於て、15はディスク、16は端末
コントローラ、17はディスプレー、18はメモリ、2
0はライブラリ、23は共有データ領域、24は共有プ
ログラム領域、63はバス、64はマウス、65はキー
ボード、141〜142はプロセッサ、1411〜14
21はレジスタ、211〜212はプロセス、201〜
202、241〜243、321、324はプログラム
である。
In the figure, 15 is a disk, 16 is a terminal controller, 17 is a display, 18 is a memory, 2
0 is a library, 23 is a shared data area, 24 is a shared program area, 63 is a bus, 64 is a mouse, 65 is a keyboard, 141 to 142 are processors, 1411 to 14
21 is a register, 211-212 are processes, 201-
Reference numerals 202, 241-243, 321, 324 are programs.

【0145】プロセッサは、退避されているレジスタ2
61〜262をプロセス211〜212からロードする
こと(641〜642)により、プロセスの処理を実行
する。プロセッサ142はプロセス211を実行中であ
るが、そのレジスタ1421中のプログラムカウンタ
(PC)がライブラリ関数202のアドレスを指してい
る(652)。これは、プロセッサ142が関数vpを
実行中であることを表す。ここで、別のプロセス212
を実行しているプロセッサ141が、ライブラリの関数
threadを実行して(651)、put_queu
e(203)により、スレッドキュー231にスレッド
を登録した(661)とする。ただし、関数threa
dの実行も、スレッドを実行中の仮想プロセッサによっ
てなされているかもしれない。スレッドキュー231に
は、スレッドが実行する関数のアドレス2311とその
関数の引数2312が登録される。ライブラリ関数vp
(202)は、204のget_queueにより関数
のアドレス2313と引数2314を取り出して、その
関数243を205で呼び出す(671)。この関数の
中で再びライブラリ関数thread(201)が呼ば
れて(673)、スレッドが生成されることもある。
The processor uses the saved register 2
The processing of the process is executed by loading 61 to 262 from the processes 211 to 212 (641 to 642). The processor 142 is executing the process 211, but the program counter (PC) in its register 1421 points to the address of the library function 202 (652). This indicates that the processor 142 is executing the function vp. Here, another process 212
The processor 141 executing the function executes the function thread of the library (651), and put_queue
The thread is registered in the thread queue 231 by e (203) (661). However, the function threea
The execution of d may also be done by the virtual processor executing the thread. The address 2311 of the function executed by the thread and the argument 2312 of the function are registered in the thread queue 231. Library function vp
(202) fetches the address 2313 and the argument 2314 of the function by get_queue of 204, and calls the function 243 with 205 (671). In this function, the library function thread (201) is called again (673), and a thread may be generated.

【0146】以上、プログラムの実行について説明し
た。
The execution of the program has been described above.

【0147】さて、次に、トレ−ス動作について説明す
る。
Now, the trace operation will be described.

【0148】前述したモ−ドメニュ−(図16)を表示
させ、トレ−スボタン925をクリックするとトレ−サ
33は、プログラムの実行の履歴であるトレ−スデータ
に基づいて、プログラムの実行のようすを再現、表示す
る。
When the above-mentioned mode menu (FIG. 16) is displayed and the trace button 925 is clicked, the tracer 33 executes the program based on the trace data which is the history of the program execution. Reproduce and display.

【0149】まず、トレ−スデータについて説明する。
トレ−スデータは、実行されるプログラム自身が作成す
る。
First, the trace data will be described.
The trace data is created by the executed program itself.

【0150】たとえば、図28に示した各ライブラリ関
数については、図50に示すように、各ライブラリ関数
の処理中に、トレ−スデータの作成を行うステップ73
1、734を、あらかじめ設けておく。
For example, for each library function shown in FIG. 28, as shown in FIG. 50, step 73 for creating trace data during processing of each library function.
1, 734 are provided in advance.

【0151】図50において、ステップ731では、ラ
イブラリの処理が開始されたことを記録するトレース処
理が行われる。ステップ732では、並列プログラムを
デバッグするときに、ライブラリ関数の部分でブレーク
したり、ライブラリ関数を実行中であること表示したり
するための処理が行われる。ステップ733では、その
ライブラリ関数、本来の処理を行う。ステップ734で
は、ライブラリ関数の処理が終了したことを記録するト
レース処理が行われる。
In FIG. 50, in step 731, a trace process for recording the start of the library process is performed. In step 732, when the parallel program is debugged, a process for breaking at the library function portion and displaying that the library function is being executed is performed. At step 733, the library function performs the original processing. At step 734, a trace process for recording the end of the process of the library function is performed.

【0152】図51は、図50中のステップ731とス
テップ734のトレース処理をさらに詳細に記述したも
のである。ステップ735で、トレースを実行中である
か判定しており、トレースが実行中ではない場合には、
処理を終了する。ステップ736では、トレースバッフ
ァが一杯になっているか判定している。トレースバッフ
ァは、トレース情報が記録されるバッファであり、図1
のトレースデータ領域(24)に存在する。トレースバ
ッファが一杯である場合には、ステップ737で、トレ
ースバッファの既存の内容をディスク15(図1)に書
き出す。ステップ738では、トレースデータをトレー
スバッファに書き込んでいる。
FIG. 51 describes the trace processing of steps 731 and 734 in FIG. 50 in more detail. In step 735, it is determined whether the trace is being executed, and if the trace is not being executed,
The process ends. In step 736, it is determined whether the trace buffer is full. The trace buffer is a buffer in which trace information is recorded.
Existing in the trace data area (24). If the trace buffer is full, then in step 737 the existing contents of the trace buffer are written to disk 15 (FIG. 1). In step 738, the trace data is written in the trace buffer.

【0153】図52に、このトレースデータの構成を表
している。
FIG. 52 shows the structure of this trace data.

【0154】トレースデータはトレースバッファ571
〜573に書き込まれる。トレースバッファは、プロセ
ッサ毎に分かれている。トレースデータ中で、5711
は時刻、5712はライブラリ関数が呼び出されたアド
レス、5713は呼び出されたライブラリ関数の名前、
5714は状態、5715〜5716はライブラリ関数
に渡された引数である。
Trace data is stored in the trace buffer 571.
Written to ~ 573. The trace buffer is divided for each processor. 5711 in the trace data
Is the time, 5712 is the address where the library function was called, 5713 is the name of the called library function,
5714 is a state, and 5715 to 5716 are arguments passed to the library function.

【0155】さて、プログラムの実行が終了すると、作
成されたトレ−スデータに基づいてトレ−サ33が、図
53に示すようなトレースデータを解析した結果を画面
に表示する。この画面は、プログラムの各部分が何回実
行されたかを表示している。表示されているプログラム
は図7と同じものである。87は、凡例であり各色87
1が、何回の実行(872)に対応するか示している。
421のような処理の色は、その処理が何回実行された
かを表している。テキストの横の帯88の色は、テキス
トの各部分が何回実行されたかを示している。共有デー
タへの書き込み532の色もその書き込みが何回実行さ
れたかを示している。この図は、実行回数を表示してい
るが、同様の画面構成で、各部分が実行されたときに何
台のプロセッサがアイドルではなかったかなどの情報を
表示することが可能である。
Now, when the execution of the program is completed, the tracer 33 displays the result of analyzing the trace data as shown in FIG. 53 on the screen based on the created trace data. This screen shows how many times each part of the program has been executed. The displayed program is the same as that shown in FIG. 87 is a legend and each color is 87
1 indicates how many times the execution (872) corresponds.
The color of the process such as 421 indicates how many times the process is executed. The color of the swath 88 next to the text indicates how many times each portion of the text has been executed. The color of the write 532 to the shared data also indicates how many times the write was executed. Although this figure shows the number of executions, it is possible to display information such as how many processors were not idle when each part was executed with the same screen configuration.

【0156】このような、トレ−サ33による表示は、
アドレス図形対応テーブルを用いて行われる。
The display by the tracer 33 is as follows.
This is performed using the address / graphic correspondence table.

【0157】図54に、アドレス図形対応テーブルを示
す。
FIG. 54 shows an address figure correspondence table.

【0158】このテーブルはプログラムのコンパイル時
に併せて作成される。テ−ブル中の各レコ−ド9780
〜9783はライブラリ関数を呼び出す命令毎に設けら
れている。各レコ−ドにおいて、9680はレコ−ド番
号、9681は当該命令のオブジェクトプログラム中で
のアドレス、9682は該アドレスでのライブラリ呼び
出しが、表示図形のどの矢印に対応するかを示す端子定
義番号、9683は該アドレスが、どの図形のテキスト
で定義されているかを示すテキスト定義番号、9684
はテキストファイル中の何行目に定義されているか示す
行数、9685はトレースデータ中にこのアドレスが現
れた回数である。例えば、9780のレコードは、オブ
ジェクトプログラム中のアドレスが1FFE23D4の
ライブラリ呼び出しに関する情報を保持している。この
呼び出しは、図11の端子リスト中の4番目のレコード
9734が表す矢印に対応し、図12のテキスト定義テ
ーブルの8番目のテキストの23行目にあることを示し
ている。
This table is also created when the program is compiled. Each record in table 9780
.About.9783 are provided for each instruction that calls a library function. In each record, 9680 is a record number, 9681 is an address in the object program of the instruction, 9682 is a terminal definition number indicating which arrow in the display graphic corresponds to the library call at the address, 9683 is a text definition number indicating which figure of text the address is defined in, 9684
Indicates the number of lines defined in the text file, and 9685 indicates the number of times this address appears in the trace data. For example, the record 9780 holds information regarding the library call whose address in the object program is 1FFE23D4. This call corresponds to the arrow represented by the fourth record 9734 in the terminal list of FIG. 11, and indicates that it is on the 23rd line of the 8th text of the text definition table of FIG. 12.

【0159】さて、トレ−サ33は、まず、図55に示
す処理手順を実行しトレースデータを集計する。
By the way, the tracer 33 first executes the processing procedure shown in FIG. 55 to collect the trace data.

【0160】この処理では、全部のプロセッサのトレー
スデータについて集計する必要があるので、プロセッサ
の番号を記憶する変数pを設け、ステップ2490でそ
れにプロセッサ0の番号を代入する。ステップ2491
では、図52のトレースデータの内、プロセッサpのデ
ータを全部読み終ったか調べている。読み終ったなら
ば、次のプロセッサのデータを調べるためにステップ2
495へ飛ぶ。読み終っていないならば、ステップ24
92でpのトレースデータよりレコードを1読みだし、
tに代入する。ステップ2493では、tのアドレスメ
ンバの値と一致するアドレスメンバを持つレコードを図
54のアドレス図形対応テーブルで捜す。ステップ24
94で、そのレコードの回数メンバの値をインクリメン
トし、次のトレースデータを処理するためにステップ2
491に飛ぶ。ステップ2495では、全部のプロセッ
サのトレースデータを集計し終ったか調べ、終っていた
ら、関数からリターンする。終っていなければ、次のプ
ロセッサの番号をpに設定して、同様の処理を繰り返
す。
In this processing, since it is necessary to aggregate the trace data of all the processors, a variable p for storing the processor number is provided, and the number of the processor 0 is assigned to it in step 2490. Step 2491
Then, it is checked whether all the data of the processor p in the trace data of FIG. 52 has been read. After reading, go to step 2 to examine the next processor's data.
Fly to 495. If you have not read, step 24
At 92, one record is read from the trace data of p,
Substitute in t. In step 2493, a record having an address member that matches the value of the address member of t is searched for in the address figure correspondence table of FIG. Step 24
At 94, step 2 is performed to increment the value of the count member of that record and process the next trace data.
Fly to 491. In step 2495, it is checked whether or not the trace data of all the processors have been added up, and if it has ended, the function returns. If not finished, the number of the next processor is set to p and the same processing is repeated.

【0161】このような集計が終了したならば、トレ−
サ33は、アドレス図形対応テーブルに集計したトレー
スデータに基づいて、図53に示したような画面に表示
する処理を行う。
When such tabulation is completed, the trace
The server 33 performs a process of displaying on the screen as shown in FIG. 53 based on the trace data collected in the address / graphic correspondence table.

【0162】この処理では、図57に示すように、ま
ず、ステップ2500で、アドレス図形対応テーブルか
ら、レコードを1つ読み込み、それをcとする。ステッ
プ2501では、cの回数メンバの値により、色iを決
定する。色は図36の87に表示されている凡例の色帯
に従って決定される。ステップ2502でcの端子定義
番号が0か調べている。0の場合には、そのアドレスに
対応した矢印は存在しないので、矢印の表示の処理を飛
ばす。
In this process, as shown in FIG. 57, first, in step 2500, one record is read from the address / graphic correspondence table and set as c. In step 2501, the color i is determined according to the value of the number of times member c. The color is determined according to the legend color band displayed at 87 in FIG. It is checked in step 2502 if the terminal definition number of c is 0. In the case of 0, there is no arrow corresponding to that address, so the processing of displaying the arrow is skipped.

【0163】ステップ2503では、cの端子定義番号
メンバの指すレコードを図11の端子リストより読み込
み、tとする。ステップ2504では、tが表している
矢印をiの色に変更する。ただし、この時、該矢印が画
面に表示されていなければ、色を変更する必要はない。
ステップ2505では、tの矢印が先が図形の上側に接
しているかどうか調べている。上側に接している時に
は、ステップ2506で、その接している図形の色もi
の色に変更している。ただし、この場合も該図形が表示
されていなければ、変更する必要はない。ステップ25
07では、cのテキスト定義番号メンバが指す図形が、
表示中でオープンの状態であるか調べている。そうであ
る場合にはステップ2508で、そのテキストを表示し
ている図形の、cの行メンバで示される行の横にi色の
帯を表示する。
At step 2503, the record pointed to by the terminal definition number member of c is read from the terminal list of FIG. 11 and set to t. In step 2504, the arrow represented by t is changed to the color of i. However, at this time, if the arrow is not displayed on the screen, it is not necessary to change the color.
At step 2505, it is checked whether the arrow t touches the upper side of the figure. When touching the upper side, in step 2506, the color of the touching figure is also i.
The color has been changed. However, also in this case, if the figure is not displayed, it is not necessary to change it. Step 25
In 07, the graphic pointed to by the text definition number member of c is
Checking whether it is open in the display. If so, in step 2508, an i-color band is displayed next to the line indicated by the line member c of the graphic displaying the text.

【0164】以上、トレ−ス動作について説明した。The trace operation has been described above.

【0165】ところで、トレ−スとしては、トレ−スデ
ータとして、単にプログラムを構成する処理単位や、ラ
イブラリ関数の実行のようすを時系列に記憶し、図57
に示す処理を実行することによって、各図形の表示を実
行順に変化させるトレ−スも実行できるようにするのが
好ましい。
By the way, as the trace, as the trace data, the processing units that form the program and the execution manner of the library function are stored in time series.
It is preferable that a trace for changing the display of each figure in the execution order can be executed by executing the processing shown in FIG.

【0166】図57の処理では、まず、ステップ870
でトレースデータを1つ取り出し、ステップ871とス
テップ872でトレースデータの表す処理と矢印の色を
変更している。ステップ873でボタン入力待となる。
そして、ボタンが入力されると変更した色を元に戻して
次のトレースデータを取り出し処理することにより、ト
レースデータを元に実行の様子を逐次表示する。
In the processing of FIG. 57, first, step 870.
In step 871 and step 872, one trace data is taken out, and the processing indicated by the trace data and the color of the arrow are changed. In step 873, the button input is awaited.
Then, when the button is pressed, the changed color is returned to the original state and the next trace data is extracted and processed to sequentially display the execution state based on the trace data.

【0167】次に、デバック動作について説明する。Next, the debug operation will be described.

【0168】プログラムをコンパイル後に、前述したモ
−ドメニュ−(図16)を表示させ、デバックボタンを
クリックすると、デバックモ−ドに移行し、図58に示
す画面が表示される。この画面は、図29の編集画面と
同一の画面上に表示される。
After compiling the program, when the above-mentioned mode menu (FIG. 16) is displayed and the debug button is clicked, the mode is changed to the debug mode and the screen shown in FIG. 58 is displayed. This screen is displayed on the same screen as the edit screen of FIG.

【0169】表示されているプログラムは図7のものと
同じであり、421〜423は処理、45は共有デー
タ、491は処理の流れ、532は共有データへの書き
込みを示している。
The displayed program is the same as that shown in FIG. 7. 421 to 423 are processes, 45 is shared data, 491 is a process flow, and 532 is writing to shared data.

【0170】さて、この画面において、デバッカ31
は、現在、実行されている処理に対応する図形の表示の
色を変化させる。図58では処理422と423の色が
変わっており、これより処理が並列に実行されているこ
とがわかる。さらに、処理の内容をテキストによって詳
細に表示した場合には、実行中のテキスト行に75のよ
うなカーソルを表示する。また、実行中の処理が変わる
場合には、その処理の流れを表す矢印の色が変わる。共
有データへの書き込み、メッセージ通信が行われている
ときには、それらを表している矢印の色が変わる。図で
は、共有データ45への書き込みが行われている最中な
ので、532の色が変わっている。
Now, on this screen, the debugger 31
Changes the display color of the graphic corresponding to the process currently being executed. In FIG. 58, the colors of the processes 422 and 423 are different, and it can be seen that the processes are executed in parallel. Further, when the details of the processing are displayed in text, a cursor such as 75 is displayed on the text line being executed. When the process being executed changes, the color of the arrow indicating the flow of the process changes. When writing to shared data or message communication is being performed, the color of the arrow representing them changes. In the figure, since the shared data 45 is being written, the color of 532 has changed.

【0171】78は、デバッグを行うためのメニューで
ある。ユーザは、マウスカーソルでメニュー中のボタン
を指示することにより、デバッガ31によって、デバッ
カ対象プログラムの実行を制御することができる。79
はステップボタンであり、デバッカ31にデバック対象
のプログラムを一行実行させる。80はネクストボタン
であり、デバッガ31に、次の処理の最初までデバック
対象プログラムの実行を進めさせ停止させる。81はコ
ンティニューボタンであり、デバッカ31にデバッカ対
象プログラムを、次のブレークポイントまで実行させ
る。82はランボタンであり、デバッカ31にデバッカ
対象プログラムを最初から実行させる。83はブレーク
ポインタを設定するための項目である。83の図形をブ
レークを掛けたい所までドラッグすれば、その個所にブ
レークポインタがデバッカ31によって設定される。ブ
レークポインタによるブレークは、処理(832)、テ
キスト行(831)、処理の流れ(833)、共有デー
タへの書き込み、メッセージなどに掛けることができ
る。
Reference numeral 78 is a menu for debugging. The user can control the execution of the debugger target program by the debugger 31 by pointing the button in the menu with the mouse cursor. 79
Is a step button, which causes the debugger 31 to execute one line of the program to be debugged. Reference numeral 80 denotes a next button, which causes the debugger 31 to advance the execution of the debug target program until the beginning of the next process and stop the debug target program. A continue button 81 causes the debugger 31 to execute the debugger target program until the next breakpoint. A run button 82 causes the debugger 31 to execute the debugger target program from the beginning. Reference numeral 83 is an item for setting a break pointer. When the figure 83 is dragged to the place where a break is desired, the break pointer is set by the debugger 31 at that place. A break by the break pointer can be applied to a process (832), a text line (831), a process flow (833), writing to shared data, a message, and the like.

【0172】図59は、デバッグ時の、プログラムのブ
レ−クに関する動作を示した図である。同図に於て、1
5はディスク、16は端末コントローラ、17はディス
プレー、18はメモリ、19はオペレーティングシステ
ム、85はオペレーティングシステム用のデータ、20
はライブラリ、23は共有データ領域、24は共有プロ
グラム領域、63はバス、64はマウス、65はキーボ
ード、141〜142はプロセッサ、1411〜142
1はレジスタ、211、213はプロセス、210〜2
02、241〜243、325〜327、841〜84
3はプログラムである。
FIG. 59 is a diagram showing an operation related to a program break at the time of debugging. In the figure, 1
5 is a disk, 16 is a terminal controller, 17 is a display, 18 is a memory, 19 is an operating system, 85 is data for the operating system, 20
Is a library, 23 is a shared data area, 24 is a shared program area, 63 is a bus, 64 is a mouse, 65 is a keyboard, 141-142 are processors, 1411-142.
1 is a register, 211, 213 are processes 210-2.
02, 241-243, 325-327, 841-84
3 is a program.

【0173】本図においてデバッガ31はプロセスとし
て実現されており、213のプロセスがそのプロセスで
ある。211のプロセスは、仮想プロセッサの働きをし
てプログラムを実行する。プロセッサは、メモリ上にあ
るプロセスから退避されているレジスタ261、263
をロードすること(643〜644)により、プロセス
の処理を実行することができる。デバッガのプロセス2
13が持っているプログラム325は、ブレークポイン
トを設定するためのプログラムである。このプログラム
は、図58中の83の項目を選択することにより起動さ
れる。
In this figure, the debugger 31 is realized as a process, and the process 213 is the process. The process of 211 operates as a virtual processor to execute a program. The processor uses the registers 261 and 263 saved from the process in the memory.
By loading (643 to 644), the processing of the process can be executed. Debugger process 2
The program 325 owned by 13 is a program for setting a breakpoint. This program is started by selecting the item 83 in FIG.

【0174】デバック対象のプログラム実行中にブレー
クするためには、ブレークさせたい部分にソフトウェア
割り込みの命令を埋め込む必要がある。しかし、通常の
プロセスのプログラムからは、プログラムを書き換える
ことが出来ない。そこで、デバッガのプログラムはオペ
レーティングシステム19中のプログラム841にプロ
グラムの書換えを依頼する(674)。そして、オペレ
ーティングシステムがプログラム241にソフトウェア
割り込みの命令245を書き込む(675)。プロセス
643を実行しているプロセッサ141がこのソフトウ
ェア割り込み命令245を実行すると、処理がオペレー
ティングシステム19のプログラム842に移る。プロ
グラム842では、書き換えられたプログラムを元に戻
し、プロセス211を待の状態に切り替える。デバッガ
でデータを書き換えたい時も、デバッガのプログラム2
13からオペレーティングシステムのプログラム843
に依頼して書き換える(678)。
In order to break during execution of the program to be debugged, it is necessary to embed a software interrupt instruction in the portion to be broken. However, the program cannot be rewritten from the program of the normal process. Therefore, the debugger program requests the program 841 in the operating system 19 to rewrite the program (674). Then, the operating system writes the software interrupt instruction 245 in the program 241 (675). When the processor 141 executing the process 643 executes the software interrupt instruction 245, the processing is transferred to the program 842 of the operating system 19. In the program 842, the rewritten program is returned to the original state and the process 211 is switched to the waiting state. When you want to rewrite the data with the debugger, the debugger program 2
Operating system program 843 from 13
To rewrite (678).

【0175】ライブラリにブレークポインタが仕掛けら
れている時には、図29中の732の処理中で停止す
る。また、このとき、画面上の矢印の色を変える必要あ
る。この場合には、855のようにデバッガに色変化の
メッセージを送信する。メッセージを受信した(85
4)デバッガのプログラム327は、GUIのプロセス
214に対してメッセージを送り(852)、色の変化
を依頼する。各ライブラリ関数において、このような処
理を行うのが、図50中のステップ732のデバッグ用
処理である。図60に、このデバッグ用処理の内容を詳
細に示す。
When the break pointer is set in the library, the process is stopped during the process of 732 in FIG. Also, at this time, it is necessary to change the color of the arrow on the screen. In this case, a color change message is sent to the debugger as in 855. Message received (85
4) The debugger program 327 sends a message to the GUI process 214 (852) to request a color change. In each library function, such processing is performed by the debug processing in step 732 in FIG. FIG. 60 shows details of the debugging process.

【0176】ライブラリ関数のデバッグ用処理では、ま
ず、ステップ861でデバッグモードで実行しているか
判定し、デバッグモードでない場合には処理を終了す
る。デバッグモードであった場合には、ステップ862
で実行中の処理を表す図形の色を変更し、ステップ86
3で実行中のライブラリを表す矢印の色を変更するよう
メッセ−ジを送る。ステップ864では、ライブラリ呼
び出しにブレークが掛かっているか判定している。掛か
っている場合にはステップ866でボタン入力待をす
る。掛かっていない場合には、ステップ865で、全体
停止のフラグが立っているか見る。全体停止のフラグ
は、プログラム全体の実行を一次停止させるためのフラ
グである。フラグが立っていた場合には、やはり、ボタ
ン入力待となる。ステップ867では、ステップ862
とステップ863で変更した色を元に戻すようメッセ−
ジを送っている。
In the debugging process of the library function, it is first determined in step 861 whether the debug mode is being executed, and if it is not the debug mode, the process is terminated. If it was in debug mode, step 862
Change the color of the graphic representing the process being executed in step 86.
In step 3, send a message to change the color of the arrow representing the library being executed. In step 864, it is determined whether a break has occurred in the library call. If it is hanging, the process waits for a button input in step 866. If it is not hanging, it is checked in step 865 whether the flag of total stop is set. The overall stop flag is a flag for temporarily stopping the execution of the entire program. When the flag is set, the button input is awaited. In Step 867, Step 862
And a message to restore the color changed in step 863 to the original
I'm sending you.

【0177】以上説明してきたように、本実施例によれ
ば、視覚的手法により並列プログラムを自然に記述可能
となる。さらに、階層的にプログラム開発が可能なた
め、複雑な並列プログラムも比較的簡単に作成可能であ
る。また、プログラム作成ツールとデバッグツールと評
価ツールを統合化することにより、作成、デバッグ、評
価を繰り返すプログラムのライフサイクルを容易に行う
ことが出来る。また、共有データに対するアクセスを明
示的に図形で表現することにより、従来とらえにくかっ
た共有データに対するアクセスのデバッグが容易にな
る。また、プログラム作成時に、共有データへのアクセ
スが適正であるかチェックするので、この部分にバグが
入り込む可能性が少ない。
As described above, according to this embodiment, it is possible to naturally describe a parallel program by a visual method. Furthermore, since hierarchical program development is possible, complex parallel programs can be created relatively easily. In addition, by integrating the program creation tool, the debug tool, and the evaluation tool, the life cycle of a program in which creation, debugging, and evaluation are repeated can be easily performed. Further, by explicitly expressing the access to the shared data by a graphic, it becomes easy to debug the access to the shared data, which has been difficult to catch in the past. In addition, since it is checked whether the shared data is properly accessed at the time of creating the program, it is less likely that a bug will be introduced into this part.

【0178】[0178]

【発明の効果】以上にように、本発明によれば、階層的
に図形を用いたプログラムの階層的開発を可能とするこ
とができる。また、並列に実行される処理の間で共通に
使用されるデータに対する操作を、視覚的に良好に表現
することができる。また、並列に実行される処理の間で
共通に使用されるデータの値の確定性を保証することが
できる。
As described above, according to the present invention, it is possible to hierarchically develop a program using hierarchical figures. Further, it is possible to satisfactorily visually represent an operation on data commonly used between processes executed in parallel. Further, it is possible to guarantee the determinism of the value of the data commonly used among the processes executed in parallel.

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

【図1】並列計算機の構成を示すブロック図である。FIG. 1 is a block diagram showing a configuration of a parallel computer.

【図2】プロセスの構成を示す説明図である。FIG. 2 is an explanatory diagram showing a configuration of a process.

【図3】並列計算機上に構築されるプログラム実行環境
を示すブロック図である。
FIG. 3 is a block diagram showing a program execution environment constructed on a parallel computer.

【図4】プログラム開発環境の構成を示すブロック図で
ある。
FIG. 4 is a block diagram showing a configuration of a program development environment.

【図5】図形を用いたプログラムの記述例を示す説明図
である。
FIG. 5 is an explanatory diagram showing a description example of a program using graphics.

【図6】図形を用いたプログラムの記述例を示す説明図
である。
FIG. 6 is an explanatory diagram showing a description example of a program using graphics.

【図7】図形を用いたプログラムの記述例を示す説明図
である。
FIG. 7 is an explanatory diagram showing a description example of a program using graphics.

【図8】図形定義テ−ブルの構成を示す説明図である。FIG. 8 is an explanatory diagram showing the structure of a graphic definition table.

【図9】図形内部テ−ブルの構成を示す説明図である。FIG. 9 is an explanatory diagram showing the structure of a graphic internal table.

【図10】図形リストの構成を示す説明図である。FIG. 10 is an explanatory diagram showing a configuration of a graphic list.

【図11】端子リストの構成を示す説明図である。FIG. 11 is an explanatory diagram showing a configuration of a terminal list.

【図12】テキスト定義テ−ブルの構成を示す説明図で
ある。
FIG. 12 is an explanatory diagram showing the structure of a text definition table.

【図13】join定義テ−ブルの構成を示す説明図で
ある。
FIG. 13 is an explanatory diagram showing the structure of a join definition table.

【図14】バリア定義テ−ブルの構成を示す説明図であ
る。
FIG. 14 is an explanatory diagram showing the structure of a barrier definition table.

【図15】データ定義テ−ブルの構成を示す説明図であ
る。
FIG. 15 is an explanatory diagram showing the structure of a data definition table.

【図16】モ−ドメニュ−を示す説明図である。FIG. 16 is an explanatory diagram showing a mode menu.

【図17】イベントベクトルテ−ブルの構成を示す説明
図である。
FIG. 17 is an explanatory diagram showing the structure of an event vector table.

【図18】ウィンドウテ−ブルの構成を示す説明図であ
る。
FIG. 18 is an explanatory diagram showing the structure of a window table.

【図19】メニュ−の選択等に応じてGUIの行う処理
の手順を示すフロ−チャ−トである。
FIG. 19 is a flowchart showing a procedure of processing performed by the GUI according to selection of a menu or the like.

【図20】GUIの行うプログラム表示処理の手順を示
すフロ−チャ−トである。
FIG. 20 is a flowchart showing the procedure of program display processing performed by the GUI.

【図21】GUIの行うプログラム表示再帰処理の手順
を示すフロ−チャ−トである。
FIG. 21 is a flowchart showing the procedure of program display recursive processing performed by the GUI.

【図22】GUIの行う図形表示処理の手順を示すフロ
−チャ−トである。
FIG. 22 is a flowchart showing the procedure of graphic display processing performed by the GUI.

【図23】GUIの行う出口矢印処理の手順を示すフロ
−チャ−トである。
FIG. 23 is a flowchart showing the procedure of exit arrow processing performed by the GUI.

【図24】GUIの行う入口矢印処理の手順を示すフロ
−チャ−トである。
FIG. 24 is a flowchart showing the procedure of entrance arrow processing performed by the GUI.

【図25】図形の表示の重なりを示す説明図である。FIG. 25 is an explanatory diagram showing overlap of display of graphics.

【図26】図形の表示の重なりを変更する処理の手順を
示すフロ−チャ−トである。
FIG. 26 is a flowchart showing a procedure of processing for changing the overlap of the display of figures.

【図27】プログラムの編集動作を示す説明図である。FIG. 27 is an explanatory diagram showing a program editing operation.

【図28】ライブラリ関数の一覧を示す説明図である。FIG. 28 is an explanatory diagram showing a list of library functions.

【図29】プログラムの編集時の表示画面を示す説明図
である。
FIG. 29 is an explanatory diagram showing a display screen when a program is edited.

【図30】プログラムの編集時の初期表示画面を示す説
明図である。
FIG. 30 is an explanatory diagram showing an initial display screen when a program is edited.

【図31】図形の配置操作を示す説明図である。FIG. 31 is an explanatory diagram showing a graphic placement operation.

【図32】処理の起動を表す矢印を配置する操作を示す
説明図である。
FIG. 32 is an explanatory diagram showing an operation of arranging an arrow indicating the start of processing.

【図33】処理を起動を表す矢印を配置する操作を示す
説明図である。
FIG. 33 is an explanatory diagram showing an operation of arranging an arrow indicating the start of processing.

【図34】メッセ−ジ通信を表す矢印を配置する操作を
示す説明図である。
FIG. 34 is an explanatory diagram showing an operation of arranging an arrow indicating message communication.

【図35】メッセ−ジ通信を表す矢印を配置する操作を
示す説明図である。
FIG. 35 is an explanatory diagram showing an operation of arranging an arrow indicating message communication.

【図36】共有データへの書き込みを表す矢印を配置す
る操作を示す説明図である。
FIG. 36 is an explanatory diagram showing an operation of arranging an arrow indicating writing to shared data.

【図37】共有データへの書き込みを表す矢印を配置す
る操作を示す説明図である。
FIG. 37 is an explanatory diagram showing an operation of arranging an arrow indicating writing to shared data.

【図38】共有データの読み出しを表す矢印を配置する
操作を示す説明図である。
FIG. 38 is an explanatory diagram showing an operation of arranging an arrow indicating reading of shared data.

【図39】共有データの読み出しを表す矢印を配置する
操作を示す説明図である。
FIG. 39 is an explanatory diagram showing an operation of arranging an arrow indicating reading of shared data.

【図40】join同期を記述するための操作を示す説
明図である。
FIG. 40 is an explanatory diagram showing an operation for describing join synchronization.

【図41】join同期を記述するための操作を示す説
明図である。
FIG. 41 is an explanatory diagram showing an operation for describing join synchronization.

【図42】バリア同期を記述するための操作を示す説明
図である。
FIG. 42 is an explanatory diagram showing an operation for describing barrier synchronization.

【図43】バリア同期を記述するための操作を示す説明
図である。
FIG. 43 is an explanatory diagram showing an operation for describing barrier synchronization.

【図44】共有データが不確定となるプログラムの例を
示す説明図である。
FIG. 44 is an explanatory diagram showing an example of a program in which shared data is indeterminate.

【図45】共有データの確定性を検査する手順を示した
フロ−チャ−トである。
FIG. 45 is a flowchart showing a procedure for checking the determinism of shared data.

【図46】共有データの不確定性を警告する表示画面を
示す説明図である
FIG. 46 is an explanatory diagram showing a display screen for warning the uncertainty of shared data.

【図47】各プロセス共通の初期処理手順を示すフロ−
チャ−トである。
FIG. 47 is a flowchart showing an initial processing procedure common to each process.
It is a chart.

【図48】ライブラリ関数mforkの実行時の動作を
示す説明図である。
FIG. 48 is an explanatory diagram showing operations at the time of execution of the library function mfork.

【図49】threadとvpの関係を示す説明図であ
る。
FIG. 49 is an explanatory diagram showing a relationship between thread and vp.

【図50】ライブラリ関数実行時の処理手順を示すフロ
−チャ−トである。
FIG. 50 is a flowchart showing a processing procedure when a library function is executed.

【図51】ライブラリ関数におけるトレ−ス処理の手順
を示すフロ−チャ−トである。
FIG. 51 is a flowchart showing the procedure of trace processing in the library function.

【図52】トレ−スデータの構成を示す説明図である。FIG. 52 is an explanatory diagram showing a structure of trace data.

【図53】トレ−サが表示する画面を示す説明図であ
る。
FIG. 53 is an explanatory diagram showing a screen displayed by the tracer.

【図54】アドレス図形対応テ−ブルの構成を示す説明
図である。
FIG. 54 is an explanatory diagram showing the structure of an address figure correspondence table.

【図55】トレ−ス結果集計処理の手順を示すフロ−チ
ャ−トである。
FIG. 55 is a flowchart showing a procedure of trace result totaling processing.

【図56】トレ−ス結果表示処理の手順を示すフロ−チ
ャ−トである。
FIG. 56 is a flowchart showing a procedure of trace result display processing.

【図57】他のトレ−ス処理の手順を示すフロ−チャ−
トである。
FIG. 57 is a flowchart showing the procedure of another trace processing.
It is

【図58】デバックモ−ド時の表示画面を示す説明図で
ある。
FIG. 58 is an explanatory diagram showing a display screen in debug mode.

【図59】デバック動作時のブレ−ク動作を示す説明図
である。
FIG. 59 is an explanatory diagram showing a break operation during a debug operation.

【図60】ライブラリ関数におけるデバック処理の手順
を示すフロ−チャ−トである。
FIG. 60 is a flowchart showing the procedure of debug processing in the library function.

【符号の説明】[Explanation of symbols]

11 キュービクル 13 並列計算機 14 プロセッサ 141〜143 プロセッサ 1411〜1421 レジスタ 15 ディスク 16 端末コントローラ 17 ディスプレー 18 メモリ 19 オペレーティングシステム 20 ライブラリ 201〜202 ライブラリ関数 211〜216 プロセス 22 トレースデータ領域 23 共有データ領域 24 共有プログラム領域 231 スレッドキュー 241〜243 共有プログラム 2611〜2612、262〜263 レジスタ退避領
域 271 データ領域 281〜285 メッセージキュー 29 コンパイラ 30 エディタ 31 デバッガ 32 並列度評価プログラム 321〜332 プログラム 33 トレーサ 34 トレースデータ 35 ソースプログラム 36 オブジェクトプログラム
11 cubicle 13 parallel computer 14 processor 141-143 processor 1411-1421 register 15 disk 16 terminal controller 17 display 18 memory 19 operating system 20 library 201-202 library function 211-216 process 22 trace data area 23 shared data area 24 shared program area 231 Thread Queues 241 to 243 Shared Programs 2611 to 2612, 262 to 263 Register Saving Areas 271 Data Areas 281 to 285 Message Queues 29 Compilers 30 Editors 31 Debuggers 32 Parallelism Evaluation Programs 321 to 332 Programs 33 Tracers 34 Trace Data 35 Source Programs 36 Object program

───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.5 識別記号 庁内整理番号 FI 技術表示箇所 G06F 15/16 430 Z 9190−5L 15/60 360 P 7623−5L ─────────────────────────────────────────────────── ─── Continuation of the front page (51) Int.Cl. 5 Identification code Internal reference number FI Technical display location G06F 15/16 430 Z 9190-5L 15/60 360 P 7623-5L

Claims (21)

【特許請求の範囲】[Claims] 【請求項1】表示装置を備えた計算機において、複数の
処理単位より構成されるプログラムの定義を前記表示装
置に表示する方法であって、 前記複数の処理単位をそれぞれを表す複数の図形を、当
該図形の表す処理単位と関連する他の処理単位を表す図
形と関連付けて表示し、 2以上の前記処理単位が共通してアクセスするデータを
表す図形を、当該データをアクセスする処理単位を表す
図形と関連付けて表示することにより、 前記プログラムの定義の表示を行うことを特徴とするプ
ログラムの表示方法。
1. A computer having a display device, which is a method of displaying a definition of a program including a plurality of processing units on the display device, wherein a plurality of graphics representing each of the plurality of processing units are formed. A graphic representing a data unit commonly accessed by two or more of the processing units, which is displayed in association with a graphic representing another processing unit related to the processing unit represented by the graphic, is a graphic representing a processing unit accessing the data. A method for displaying a program, characterized in that the definition of the program is displayed by displaying the program in association with.
【請求項2】入力装置と表示装置とを備えた計算機にお
いて、表示装置に、複数の処理単位より構成されるプロ
グラムの定義を表示する方法であって、 プログラムの定義を、複数の、プログラムを構成する処
理の単位である処理単位のそれぞれを表す図形を、当該
図形の表す処理単位と関連する他の処理単位を表す図形
と関連付けて前記表示装置に表示するステップと、 特定の処理単位を表す図形の指定を、前記入力装置より
受け付けるステップと、 指定された図形が表す処理単位が、さらに複数の処理単
位によって構成されている場合に、前記指定された図形
に代えて、指定された図形が表す処理単位を構成する前
記複数の処理単位のそれぞれを表す複数の図形のそれぞ
れを、当該図形の表す処理単位と関連する他の処理単位
を表す図形と関連付けて、表示するステップとを有する
ことを特徴とするプログラムの表示方法。
2. A computer having an input device and a display device, which is a method of displaying the definition of a program composed of a plurality of processing units on the display device. A step of displaying a graphic representing each processing unit that is a unit of processing to be displayed on the display device in association with a graphic representing another processing unit related to the processing unit represented by the graphic, and representing a specific processing unit When the step of receiving the designation of the figure from the input device and the processing unit represented by the designated figure is further configured by a plurality of processing units, the designated figure is replaced by the designated figure. A graphic representing each of the plurality of graphics representing each of the plurality of processing units constituting the represented processing unit, which represents another processing unit related to the processing unit represented by the graphic. Association with, the display method of the program; and a step of displaying.
【請求項3】入力装置と表示装置とを備えた計算機にお
いて、表示装置に、複数の処理単位より構成されるプロ
グラムの定義を表示する方法であって、 複数の処理単位のそれぞれを表す図形を、当該図形の表
す処理単位と関連する他の処理単位を表す図形と関連付
けて前記表示装置に表示するステップと、 特定の処理単位を表す図形の指定を、前記入力装置より
受け付けるステップと、 指定された図形が表す処理単位が、テキストによって定
義されている場合に、前記指定された図形に代えて、指
定された図形が表す処理単位を定義するテキストを、当
該テキストに含まれる各テキスト文と、当該テキスト文
と関連する他の処理単位を表す図形とを関連付けて、表
示するステップとを有することを特徴とするプログラム
の表示方法。
3. A computer having an input device and a display device, which is a method of displaying a definition of a program composed of a plurality of processing units on a display device, wherein a graphic representing each of the plurality of processing units is displayed. A step of displaying on the display device in association with a graphic representing another processing unit related to the processing unit represented by the graphic, and a step of accepting designation of the graphic representing a specific processing unit from the input device, When the processing unit represented by the figure is defined by text, in place of the specified figure, a text defining the processing unit represented by the specified figure, each text sentence included in the text, And a step of displaying the text sentence in association with a figure representing another processing unit related to the text sentence.
【請求項4】請求項2記載のプログラムの表示方法であ
って、 前記さらに複数の処理単位の組み合わせによって定義さ
れている処理単位を表す図形については、複数の処理単
位の組み合わせによって定義されていない処理単位を表
す図形と、区別可能に表示することを特徴とするプログ
ラムの表示方法。
4. The method for displaying a program according to claim 2, wherein the graphic representing the processing unit defined by the combination of the plurality of processing units is not defined by the combination of the plurality of processing units. A method of displaying a program, characterized in that it is displayed so as to be distinguishable from a graphic representing a processing unit.
【請求項5】表示装置を備えた計算機において、複数の
処理単位より構成されるプログラムの編集を受付けるプ
ログラム編集受付け方法であって、 複数の前記処理単位の指定を、当該処理単位を表す図形
の指定に応じて受付け、複数の処理単位によってアクセ
スされるデータである共有データの指定を、当該共有デ
ータを表す図形の指定に応じて受付け、処理単位と前記
共有データとの関係もしくは複数の処理単位間の関係の
指定を、共有データと処理単位もしくは複数の処理単位
を表す複数の図形間を結ぶ図形の指定に応じて受付ける
ことを特徴とするプログラムの編集受付け方法。
5. A program edit accepting method for accepting the editing of a program comprising a plurality of processing units in a computer equipped with a display device, wherein a plurality of processing units are designated by a graphic representing the processing unit. Accepted according to a designation, and accepting designation of shared data, which is data accessed by a plurality of processing units, according to a designation of a graphic representing the shared data, a relationship between the processing unit and the shared data, or a plurality of processing units An edit acceptance method for a program, which accepts designation of a relationship between them in accordance with designation of a figure connecting shared data and a plurality of figures representing a processing unit or a plurality of processing units.
【請求項6】表示装置を備えた計算機において、複数の
処理単位より階層的に構成されるプログラムの構造の編
集を受け付けるプログラム編集受付方法であって、 複数の処理処理単位をそれぞれ表す複数の図形と、複数
の処理単位に対応する複数の図形間を結び、当該複数の
処理単位間の関係を表す図形の、前記表示装置の表示上
における階層的な編集によって、前記プログラムを構成
する複数の前記処理単位の階層的な構造の編集を受付け
ることを特徴とするプログラムの編集受付方法。
6. A program edit accepting method for accepting editing of a structure of a program hierarchically composed of a plurality of processing units in a computer equipped with a display device, wherein the plurality of graphics respectively represent a plurality of processing units. And a plurality of graphics which correspond to a plurality of processing units and which hierarchically edit the graphics representing the relationship between the plurality of processing units on the display of the display device, thereby configuring a plurality of the programs. A method for accepting editing of a program, characterized by accepting editing of a hierarchical structure of processing units.
【請求項7】請求項6記載のプログラムの編集受付方法
であって、 前記階層上、より下位の処理単位を有さない処理単位の
内容の定義を、テキスト形式で受け付けることを特徴と
するプログラム編集方法。
7. A program editing acceptance method according to claim 6, wherein the definition of the content of a processing unit having no lower processing unit on the hierarchy is accepted in a text format. How to edit.
【請求項8】表示装置と入力装置とを備えた計算機であ
って、 前記表示装置の表示画面上において、編集するプログラ
ムを構成する複数の処理単位をそれぞれ表す図形と、2
以上の前記処理単位によってアクセスされるデータであ
る共有データを表す図形と、共有データもしくは処理単
位に対応する複数の図形間を結び、各処理単位と前記共
有データとの関係、もしくは、複数の処理単位間の関係
を表す図形の編集を、前記入力装置の操作に応じて受付
ける手段と、 受け付けた、各図形の編集内容に従ってプログラムを編
集する手段とを有することを特徴とする計算機。
8. A computer comprising a display device and an input device, wherein a graphic representing each of a plurality of processing units constituting a program to be edited is displayed on the display screen of the display device, and 2
The relationship between each processing unit and the shared data, or a plurality of processes, is established by connecting a graphic representing shared data, which is the data accessed by the processing unit, and a plurality of graphics corresponding to the shared data or the processing unit. A computer having means for accepting editing of a graphic representing a relationship between units according to an operation of the input device, and means for editing a program according to the accepted content of editing of each graphic.
【請求項9】請求項8記載の計算機であって、 受け付けた、各図形の編集内容より、前記プログラム実
行時の前記共有データの不確定性を検証する手段を有す
ることを特徴とする計算機。
9. The computer according to claim 8, further comprising means for verifying the uncertainty of the shared data at the time of executing the program, from the received edit contents of each figure.
【請求項10】表示装置と入力装置とを備えた計算機で
あって、 前記表示装置の表示画面上において、編集するプログラ
ムを構成する複数の処理単位をそれぞれ表す複数の図形
と、関係付ける複数の処理単位に対応する複数の図形間
を結び、複数の処理単位間の関係を表す図形の、前記表
示装置の表示上における階層的な編集を受け付ける手段
と、 前記表示装置の表示画面上において、前記階層上、より
下位の図形を有さない図形の表す処理単位の内容を定義
するテキストの編集を受け付ける手段と、 受け付けた、各図形とテキストの編集内容に従って、複
数の処理単位より階層的に構成されるプログラムを編集
する手段とを有することを特徴とする計算機。
10. A computer comprising a display device and an input device, wherein a plurality of graphics respectively representing a plurality of processing units constituting a program to be edited are associated with a plurality of associated graphics on a display screen of the display device. A unit that connects a plurality of graphics corresponding to processing units and that receives hierarchical editing of a graphic representing a relationship between a plurality of processing units on the display of the display device; and on the display screen of the display device, A means for accepting editing of text that defines the contents of a processing unit represented by a graphic that does not have a lower graphic in the hierarchy, and a hierarchical structure composed of a plurality of processing units according to the received edit contents of each graphic and text. And a means for editing the stored program.
【請求項11】請求項10記載の計算機であって、 前記プログラムを編集する手段は、関係付ける複数の処
理単位に対応する複数の図形間を結び、複数の処理単位
間の関係を表す図形の編集内容に応じて、前記複数の処
理単位間の関係を表す図形によって結ばれた図形の表す
処理単位の内容を定義するテキストに、前記図形が表す
関係を実現するテキスト文を追加/挿入する手段を有す
ることを特徴とする計算機。
11. The computer according to claim 10, wherein the means for editing the program connects a plurality of graphics corresponding to a plurality of processing units to be related to each other, and creates a graphic representing a relationship between the plurality of processing units. Means for adding / inserting a text sentence that realizes the relationship represented by the graphic to the text that defines the content of the processing unit represented by the graphic that is connected by the graphic that represents the relationship between the plurality of processing units according to the edited content. A computer characterized by having.
【請求項12】請求項8または9記載の計算機であっ
て、 編集されたプログラムを実行する手段と、 プログラムの実行の履歴を示す情報である履歴情報を収
集する手段と、 収集した履歴情報に応じて、前記表示装置の画面上で編
集された図形の表示のうち、実行された処理単位を表す
図形の表示と、実行に用いられた関係を表す図形の表示
と、アクセスされた共有データを表す図形の表示を、実
行の順序に従って順次、変化させる手段を有することを
特徴とする計算機。
12. The computer according to claim 8 or 9, wherein the edited program is executed, history information, which is information indicating a history of execution of the program, is collected, and the collected history information is stored in the computer. Accordingly, among the displays of the graphic edited on the screen of the display device, the display of the graphic showing the executed processing unit, the display of the graphic showing the relationship used for the execution, and the accessed shared data are displayed. A computer having means for sequentially changing the display of the figure represented according to the order of execution.
【請求項13】請求項8または9記載の計算機であっ
て、 編集されたプログラムを実行する手段と、 プログラムの実行の履歴を示す情報である履歴情報を収
集する手段と、 収集した履歴情報に応じて、前記表示装置の画面上で編
集された図形の表示のうち、実行された処理単位を表す
図形の表示と、実行に用いられた関係を表す図形の表示
と、アクセスされた共有データを表す図形の表示を、処
理単位を表す図形については実行された回数、関係を表
す図形については実行に用いられた回数、共有データを
表す図形についてはアクセスされた回数に従って、変化
させる手段を有することを特徴とする計算機。
13. The computer according to claim 8 or 9, wherein the edited program is executed, history information that is information indicating a history of execution of the program is collected, and the collected history information is stored in the collected history information. Accordingly, among the displays of the graphic edited on the screen of the display device, the display of the graphic showing the executed processing unit, the display of the graphic showing the relationship used for the execution, and the accessed shared data are displayed. There should be means for changing the display of the graphic representing the processing unit according to the number of executions for the graphic representing the processing unit, the number of executions for the graphic representing the relation, and the number of access for the graphic representing the shared data. A calculator characterized by.
【請求項14】請求項10または11記載の計算機であ
って、 編集されたプログラムを実行する手段と、 プログラムの実行の履歴を示す情報である履歴情報を収
集する手段と、 収集した履歴情報に応じて、前記表示装置の画面上で編
集された図形の表示のうち、実行された処理単位を表す
図形の表示と、実行に用いられた関係を表す図形の表示
を、実行の順序に従って順次、変化させる手段を有する
ことを特徴とする計算機。
14. The computer according to claim 10 or 11, wherein the edited program is executed, history information, which is information indicating a history of execution of the program, is collected. Accordingly, among the displays of the graphic edited on the screen of the display device, the display of the graphic showing the executed processing unit and the display of the graphic showing the relationship used for the execution are sequentially displayed in the order of execution, A computer having means for changing.
【請求項15】請求項10または11記載の計算機であ
って、 編集されたプログラムを実行する手段と、 プログラムの実行の履歴を示す情報である履歴情報を収
集する手段と、 収集した履歴情報に応じて、前記表示装置の画面上で編
集された図形の表示のうち、実行された処理単位を表す
図形の表示と、実行に用いられた関係を表す図形の表示
を、処理単位を表す図形については実行された回数、関
係を表す図形については実行に用いられた回数に従っ
て、変化させる手段を有することを特徴とする計算機。
15. The computer according to claim 10 or 11, wherein the edited program is executed, history information, which is information indicating a history of execution of the program, is collected. Accordingly, among the displays of the graphic edited on the screen of the display device, the display of the graphic showing the executed processing unit and the display of the graphic showing the relationship used for the execution are described with respect to the graphic showing the processing unit. Is a computer having a means for changing the number of times of execution and the number of times of execution of the graphic representing the relationship.
【請求項16】請求項8または9記載の計算機であっ
て、 前記入力装置よりの所定の操作に応じて、編集されたプ
ログラムを、逐次的に実行する手段と、 前記表示装置の画面上で編集された図形の表示のうち、
実行中の処理単位を表す図形およびアクセス中の共有デ
ータを表す図形の表示を変化させる手段とを有すること
を特徴とする計算機。
16. The computer according to claim 8 or 9, wherein means for sequentially executing the edited program in response to a predetermined operation from the input device, and on the screen of the display device. Of the display of the edited figure,
A computer having a graphic representing a processing unit being executed and a graphic representing a shared data being accessed.
【請求項17】請求項10または11記載の計算機であ
って、 前記入力装置よりの所定の操作に応じて、編集されたプ
ログラムを、逐次的に実行する手段と、 前記表示装置の画面上で編集された図形およびテキスト
の表示のうち、実行中の処理単位を表す図形の表示およ
び実行中のテキストの表示を変化させる手段とを有する
ことを特徴とする計算機。
17. The computer according to claim 10 or 11, wherein means for sequentially executing the edited program in response to a predetermined operation from the input device, and on the screen of the display device. Among the displays of the edited graphic and text, a means for changing the display of the graphic representing the processing unit being executed and the display of the text being executed, and a computer.
【請求項18】請求項1、2、3または4記載のプログ
ラム表示方法であって、 複数の前記図形を、当該複数の図形が重なった状態で表
示した場合に、要求に応じて、重りの順序を変更して表
示することを特徴とするプログラムの表示方法。
18. The program display method according to claim 1, 2, 3 or 4, wherein when the plurality of figures are displayed in a state where the plurality of figures overlap each other, a weight A method for displaying a program, characterized by changing the order and displaying.
【請求項19】請求項9記載の計算機であって、 不確定性を有する前記共有データが存在した場合に、 受け付けた、各図形の編集内容より、当該不確定性の要
因に関連する処理単位もしくは共有データもしくは関係
を表す図形の表示の全てもしくは一部を変化変化させる
手段を有することを特徴とする計算機。
19. The computer according to claim 9, wherein when the shared data having uncertainty is present, the processing unit related to the factor of the uncertainty is determined from the received edit content of each figure. Alternatively, a computer having means for changing and changing all or part of display of shared data or a graphic representing a relationship.
【請求項20】請求項8または10記載の計算機であっ
て、 編集されたプログラムを実行する複数のプロセッサと、 プログラムの実行の履歴を示す情報である履歴情報をプ
ロセッサ毎に収集する手段と、 収集した履歴情報に応じて、前記表示装置の画面上で編
集された図形の表示のうち、少なくとも、実行したプロ
グラム実行期間中の各時点において、実行された処理単
位を表す図形の表示と、実行したプログラム実行期間中
の各時点において、実行に用いられた関係を表す図形の
表示を時間的順序に従って順次変化させると共に、各時
点における各プロセッサの実行状況を、前記表示装置に
表示する手段を有することを特徴とする計算機。
20. The computer according to claim 8 or 10, comprising a plurality of processors for executing the edited program, and means for collecting history information, which is information indicating a history of execution of the program, for each processor. Of the graphics displayed on the screen of the display device according to the collected history information, at least at each point during the execution period of the executed program, the display of a graphic representing the processing unit executed and the execution. At each time point during the program execution period, the display of a graphic representing the relationship used for execution is sequentially changed according to a time sequence, and the execution status of each processor at each time point is displayed on the display device. A calculator that is characterized.
【請求項21】表示装置を備えた計算機であって、 プログラムを構成する複数の処理単位をそれぞれを表す
複数の図形を、当該図形の表す処理単位と関連する他の
処理単位を表す図形と関連付けて表示し、2以上の前記
処理単位が共通してアクセスするデータをを表す図形
を、当該データをアクセスする処理単位を表す図形と関
連付けて表示する手段と、 表示したプログラムを実行する手段と、 プログラムの実行の履歴を示す情報である履歴情報を収
集する手段と、 収集した履歴情報に応じて、前記表示装置の画面上で編
集された図形の表示のうち、実行された処理単位を表す
図形の表示と、実行に用いられた関係を表す図形の表示
と、アクセスされた共有データを表す図形の表示を変化
させる手段を有することを特徴とする計算機。
21. A computer having a display device, wherein a plurality of graphics representing each of a plurality of processing units constituting a program are associated with a graphic representing another processing unit associated with the processing unit represented by the graphics. A means for displaying a graphic representing data that is commonly accessed by two or more processing units in association with a graphic representing a processing unit that accesses the data; and a means for executing the displayed program. Means for collecting history information, which is information indicating the history of program execution, and a graphic representing the executed processing unit among the graphics displayed on the screen of the display device according to the collected history information. And a display of a graphic representing the relationship used for execution, and a display of a graphic representing the accessed shared data.
JP5120190A 1993-05-21 1993-05-21 Program displaying method and program edition accepting method Pending JPH06332689A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5120190A JPH06332689A (en) 1993-05-21 1993-05-21 Program displaying method and program edition accepting method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5120190A JPH06332689A (en) 1993-05-21 1993-05-21 Program displaying method and program edition accepting method

Publications (1)

Publication Number Publication Date
JPH06332689A true JPH06332689A (en) 1994-12-02

Family

ID=14780144

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5120190A Pending JPH06332689A (en) 1993-05-21 1993-05-21 Program displaying method and program edition accepting method

Country Status (1)

Country Link
JP (1) JPH06332689A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000112736A (en) * 1998-10-01 2000-04-21 Seiko Epson Corp Program generating device
JP2007094922A (en) * 2005-09-30 2007-04-12 Fuji Electric Holdings Co Ltd Automatic program generation, method, and program
WO2010058455A1 (en) * 2008-11-19 2010-05-27 株式会社日立製作所 Information processor
JP2010134879A (en) * 2008-12-08 2010-06-17 Ricoh Co Ltd Visual programming support device, visual programming support method of visual programming support device, program, and storage medium
US8074211B2 (en) 2008-09-30 2011-12-06 Kabushiki Kaisha Toshiba Computer program, multiprocessor system, and grouping method
WO2018012348A1 (en) * 2016-07-13 2018-01-18 三菱電機株式会社 Program creation device, program creation execution device, and program creation method
WO2019138570A1 (en) * 2018-01-15 2019-07-18 富士通株式会社 Data structure of partial process definition data, method for generating partial process definition data, and program for generating partial process definition data
JP2020102699A (en) * 2018-12-20 2020-07-02 株式会社ドヴァ Information processing device, control method, and program

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000112736A (en) * 1998-10-01 2000-04-21 Seiko Epson Corp Program generating device
JP2007094922A (en) * 2005-09-30 2007-04-12 Fuji Electric Holdings Co Ltd Automatic program generation, method, and program
US8074211B2 (en) 2008-09-30 2011-12-06 Kabushiki Kaisha Toshiba Computer program, multiprocessor system, and grouping method
WO2010058455A1 (en) * 2008-11-19 2010-05-27 株式会社日立製作所 Information processor
JP2010134879A (en) * 2008-12-08 2010-06-17 Ricoh Co Ltd Visual programming support device, visual programming support method of visual programming support device, program, and storage medium
WO2018012348A1 (en) * 2016-07-13 2018-01-18 三菱電機株式会社 Program creation device, program creation execution device, and program creation method
JP6272595B1 (en) * 2016-07-13 2018-01-31 三菱電機株式会社 Program creation device, program creation execution device, and program creation method
WO2019138570A1 (en) * 2018-01-15 2019-07-18 富士通株式会社 Data structure of partial process definition data, method for generating partial process definition data, and program for generating partial process definition data
JP2020102699A (en) * 2018-12-20 2020-07-02 株式会社ドヴァ Information processing device, control method, and program

Similar Documents

Publication Publication Date Title
WO2020134633A1 (en) Development method and device for application program, and integrated development tool
US6026362A (en) Tool and method for diagnosing and correcting errors in a computer program
US4866638A (en) Process for producing human-computer interface prototypes
US6408430B2 (en) Interactive software testing system and method
KR101238550B1 (en) Method and computer-readable medium for commanding
US5961610A (en) Systems, methods and apparatus for generating and controlling display of medical images
US6901535B2 (en) Information processing apparatus, defect analysis program, and defect analysis method
CA2211373C (en) Learn mode script generation in a medical imaging system
US20040205702A1 (en) Windows-based flowcharting and code generation system
US6707469B1 (en) Synchronous execution in a medical imaging system
JPH09198276A (en) Program debugging system
JPH04337843A (en) Program operation display method
US20060085783A1 (en) Multi-process display method in debugger system
JPH06332689A (en) Program displaying method and program edition accepting method
US20020147963A1 (en) Method and apparatus for generating machine control instructions
Mathur et al. Idea: an immersive debugger for actors
JP2000112737A (en) Program generating device
JP2000112736A (en) Program generating device
Yan et al. The automated instrumentation and monitoring system (AIMS) reference manual
JP3372106B2 (en) Program debug device
May et al. Retargetability and extensibility in a parallel debugger
Noble et al. Lazy functional components for graphical user interfaces
JPH1115680A (en) Multiprocess managing device and program storing medium
Smyth et al. Code generation for sequential constructiveness
JPH07334358A (en) Procedure editing device