JP2585311B2 - プログラム作成方法 - Google Patents

プログラム作成方法

Info

Publication number
JP2585311B2
JP2585311B2 JP62279215A JP27921587A JP2585311B2 JP 2585311 B2 JP2585311 B2 JP 2585311B2 JP 62279215 A JP62279215 A JP 62279215A JP 27921587 A JP27921587 A JP 27921587A JP 2585311 B2 JP2585311 B2 JP 2585311B2
Authority
JP
Japan
Prior art keywords
data
field
frame
program
template
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.)
Expired - Fee Related
Application number
JP62279215A
Other languages
English (en)
Other versions
JPH01121935A (ja
Inventor
啓二 小島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP62279215A priority Critical patent/JP2585311B2/ja
Priority to EP19880118325 priority patent/EP0315172B1/en
Priority to DE3854183T priority patent/DE3854183D1/de
Publication of JPH01121935A publication Critical patent/JPH01121935A/ja
Priority to US07/595,747 priority patent/US5287449A/en
Priority to US07/680,409 priority patent/US5398313A/en
Application granted granted Critical
Publication of JP2585311B2 publication Critical patent/JP2585311B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Processing Or Creating Images (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はプログラム作成装置に係わり、特に複雑なデ
ータ構造の処理プログラムの作成に好適なプログラム作
成装置に関する。
〔従来の技術〕
従来、プログラムを視覚化して作成効率を向上させる
方法としてフローチヤートに代表されるプログラム図に
よる方法が用いられている。特に特開昭58−3039号記載
の装置のように、CRT上で直接2次元的なチヤートを入
力して効率化する装置も知られている。
〔発明が解決しようとする問題点〕
上記従来技術は、プログラムにおける選択,繰返しな
どの制御を2次元的に視覚化して表示することを可能と
するが、データ自体の視覚化については配慮されておら
ず、データ構造の操作が中心となるプログラムにおいて
は処理内容が明確化されない問題点があつた。以下この
問題を図を用いて簡単に説明する。
第14図は、従来のプログラムの視覚化法であるフロー
チヤートを用いて、クイツクソートプログラムの中心部
分となる分割処理を記述したものである。分割処理では
分割中央値Mに対し、配列Aの中をまず左からMより大
きい配列要素A(I)を探し、次に右からM以下の配列
要素A(J)を探し、両者を入れ変えるという手順を繰
り返す。第14図から明らかなようにフローチヤートでは
条件判定,繰返しといつたプログラム制御構造は図化さ
れて明確になつているが、配列の中での要素の位置関係
のようなデータ構造は視覚化されておらず、処理内容の
直感的理解には充分ではない。
本発明の目的は、データ構造を視覚化してその処理内
容をわかり易く表示しながらプログラムを作成するため
の装置を提供することにある。
〔問題点を解決するための手段〕
上記目的は、データまたはデータ操作の種類に対応す
るレコードを格納するデータベースと、プログラマの要
求に応じて適切なレコードを取出してそのレコードのフ
イールドに情報を書込んだ後記憶装置に順次格納するデ
ータ操作手段と、記憶装置に格納されたレコード列を参
照してデータとその操作結果をデイスプレイ装置に表示
するデータ表示手段と、得られたレコード列からデータ
処理プログラムを生成する目的プログラム生成手段とを
設けることにより達成される。
〔作用〕
第14図に示した分割処理を例として個々の技術手段の
働きを図を用いて述べる。
データに対応するレコードとしては、整数や配列など
のためのテンプレートとなるレコード(以下ではテンプ
レート・レコードあるいは単にテンプレートと呼ぶ)
が、またデータ操作に対応するレコードとしてが探索や
複写や入れ替えなどに対応してそれぞれデータベースに
用意される。分割処理プログラムを作成する場合、プロ
グラムはまず処理対象である配列データAと整数データ
Mの取出しを指示する。データ操作手段はこれに応じて
データベースより配列と整数のテンプレート・レコード
を取出してその名前のフイールドを‘A'と‘M'にそれぞ
れ更新してこの順に並べて記憶装置にレコード列として
格納する。データ表示手段はこのレコード列を参照して
配列Aと整数Mをそれぞれデイスプレイに表示する(第
7図)。
次にプログラマが配列Aに対しMより大きい要素を左
から探すよう指示すると、データ操作手段は3つの配列
のテンプレート・レコードを取出して、レコード列に追
加する。追加した3つのテンプレート・レコードのう
ち、第2番目は、探索された要素に対応し、そのテンプ
レートのフイールドにはMより大きい要素である旨と、
左からの探索結果である旨が記録される。第1番目と第
3番目のテンプレートはそれぞれ配列Aの中の探索され
た要素に対し左側の部分と右側の部分とに対応する。デ
ータ表示手段は、レコード列中の各テンプレート内容を
順次表示していくので、デイスプレイには整数Mと、3
領域に分割された配列Aとが表示される(第8図)。
次にプログラマが3つに分割されたAのうち一番右側
の部分配列に対してM以下の要素を右から探索するよう
指示するとデータ操作手段および表示手段は前ステツプ
と同様にこの部分配列をさらに3つの領域に分割・表示
する(第9図)。
次にプログラマが2つの探索された要素の入れ替えを
指示すると、入れ換え操作に対応するテンプレート・レ
コードが取出されて、レコード列に追加されるとともに
入れ替え結果が表示される(第10図)。
プログラマは最後中央の領域(Aの中で左から3番
目)に対し、以上述べた操作を再帰的に適用することを
指示する。データ操作部は手続き適用に対応したテンプ
レート・レコーダをデータベースより取出してレコード
列に追加し(第11図)、その後このレコード列を入力と
して目的プログラム生成部が、各テンプレートをもとに
分割処理プログラムを生成する。各テンプレートレコー
ド中には必要なデータ領域や探索方法および条件、行な
つた操作などが操作順に保存されているので正しい目的
プログラムを生成することができる。
上述したようにデータとそれに対する操作の結果が随
時デイスプレイに表示され、プログラマはその結果を見
ながら次の操作を進めることができ、効率的なプログラ
ム作成が可能となる。
〔実施例〕
以下、本発明の一実施例を図に従つて説明する。ま
ず、本発明の一実施例であるプログラム作成装置の構成
と動作の概略を第1図を用いて説明する。
プログラマによる操作指示は、キーボード108および
マウス109により入力され、主記憶装置11内に格納され
ているプログラム100内のデータ操作部102に送られる。
データ操作部102は操作指示に対応したテンプレートを
テンプレートデータベース105より取出してデータバツ
フア103に格納する。データ表示部101は、データバツフ
ア103に格納されたテンプレートを順次参照して対応す
る図形および記号列をデイスプレイ107に表示する。プ
ログラマがプログラム作成完了をキーボード108から指
示すると、データ操作部102は目的プログラム生成部104
を起動する。目的プログラム生成部104はデータバツフ
ア103中のテンプレート群を参照して対応する目的プロ
グラム106を生成する。
以上、本発明の一実施例であるプログラム作成装置の
構成と動作の概略を述べた。
第1図に示したプログラム作成装置の詳細な動作の説
明に先立つて、まず本実施例におけるデイスプレイ107
とキーボード108およびマウス109の構成を第2図を用い
て説明する。
デイスプレイ107の画面は大きく2つの領域に分割さ
れている。1つはシーン定義領域201である。シーン定
義領域201はさらに、定義中のプログラム名の表示領域2
11、データと操作の表示領域212、シーン番号の表示領
域213、および選択条件表示領域214の4部分領域から成
る。もう1つはアイコン表示領域202であり、この中に
はプログラム作成時に用いられるデータや操作に対応す
るアイコンが表示されている。
一方キーボード108には通常の英数字キー群215に加
え、本実施例の装置特有のフアンクシヨン・キー203〜2
10が備えられている。本実施例では、“Get"キー203
と、“Name"キー204と“Swap"キー205と“Copy"キー206
と“Apply"キー207と“Start"キー208と、“Next"キー2
09と、“End"キー210とが用意される。
マウス109はカーソル移動機能の他に“SL"キー211と
“CL"キー212とを有する。
以下第1図の装置の詳細な動作を第14図に示した分割
処理プログラムを作成する場合を例として、説明する。
まずはじめにデータバツフア103に格納されるデータ
の形式と種類について第3図(a)を用いて説明する。
データバツフア103には、オペランド・スタツク301と
アイコン・リスト302と視覚操作スタツク303が格納され
る。オペランド・スタツク301は画面上の座標を表わす
データのスタツクであり、マウス109の“SL"キー211を
押下した時にそのカーソル位置座標が格納される。すな
わちオペランドスタツク301はマウスで選択したアイコ
ンなどの視覚的オブジエクト群を記憶するためのデータ
エリアである。
アイコンリスト302は画面107上のアイコン・エリア20
2内に表示されているアイコン群の表示領域と名前を格
納している。本実施例では簡単のためアイコンはすべて
矩形としており、その占有領域は、矩形の左上の端の座
標と、矩形の幅および高さとで表わされる。マウス109
の選択キー“SL"が押された場合、その時のカーソル座
標がアイコンリスト302の各占有領域のうちどの中にあ
るかを調べていくことにより、どのアイコンが選択され
たかの判定が行なえる。
視覚操作スタツク303は、操作対象データおよびそれ
らに対するプログラマの操作を順次記憶していくための
ものであり、複数のスタツクフレームから構成される。
各フレームは後述のテンプレートに必要部分の情報を埋
込んだ形式をしている。以上、データバツフア103につ
いて説明した。
次にテンプレートデータベース105について第3図
(b)を用いて説明する。テンプレートデータベース10
5にはプログラム作成上の基本要素となるデータ(整数
データ,配列データなど)や操作(転写や入替えなど)
のひな形であるテンプレートが格納されている。本実施
例では、4つのテンプレートが用意される。それはType
1のテンプレート304、Type 2のテンプレート305、Type
3のテンプレート306、およびType 4のテンプレート307
である。
Type 1テンプレート304は3つのフイールドから成
る。第1のフイールド308には後で説明するシーン番号
が格納される。第2フイールド309には定数“Def"が、
また第3フイールド310には作成中のプログラム名が格
納される。Type 1テンプレートはプログラム作成の開始
を表わすのに用いられる。
Type 2テンプレート305はデータ操作を表わすための
もので4つのフイールドから成る。第1フイールド311
にはシーン番号が、第2フイールド312には定数“Op"
が、第3フイールド313には操作名が、第4フイールド
には操作対象であるオペランドのリストがそれぞれ格納
される。
Type 3テンプレート306は整数データを表わすための
もので7フイールドから成る。第1フイールド315には
シーン番号が、第2フイールド316には定数“Int"が、
第3フイールド317にはデータ名が、第4フイールド318
にはこのデータを示すアイコンの占有領域が、第5フイ
ールド319にはこのデータが満すべき条件を示す論理式
が、第6フイールド320にはこのデータが外部からの入
力パラメータか否かを示すフラグ(“P")が、また第7
フイールド321にはこのデータの値がそれぞれ格納され
る。
Type 4のテンプレート307は、配列データを表わすた
めのテンプレートであり、10フイールドから成る。第2
フイールドが“Array"であることを除いて第1〜第7フ
イールドの形式は整数テンプレートであるType 3テンプ
レート306と同じである。第8フイールド329および第9
フイールド330には配列の両端(開始位置と終了位置)
を示すインデクス値または変数がそれぞれ格納される
(初期値は1と“N")。第10フイールド331には、配列
内の探索を行なう時の方向を示すデータ(“L"または
“R")が格納される。なお後述のように第7フイールド
には配列の値そのものでなく、視覚操作スタツク303の
フレーム番号が格納される場合もある。
各テンプレートの各フイールドは第2フイールドを除
いて、初期状態(テンプレートデータベース105の中)
では適当な初期値が設定してある。それらを示すと、 (1)Type 1〜Type 4の第1,第3フイールド,Type 2〜
4の第4フイールド、Type 3,4の第6フイールド、Type
4の第10フイールドはすべて空白 (2)Type 3,4の第5フイールドは“true" (3)Type 3,4の第7フイールドは“udf" (4)Type 4の第8フイールドは1 (5)Type 4の第9フイールドは“N" である。各フイールドはプログラマの操作に対応してデ
ータベース105から取出された際に埋められてデータバ
ツフア103中の視覚操作スタツク303に格納される。
以上、テンプレートデータベース105について説明し
た。
以下、第14図でその概略を説明した分割処理プログラ
ムの作成手順を例としてデータ表示部101(第5図のPAD
(Program Analysis Diagram)図、データ操作部102
(第4図のPAD図)、目的プログラム生成部104(第6図
のPAD図)の動作を説明する。なお、第7図〜第11図は
プログラム作成手順に従つた実際のデイスプレイ107の
画面と、データバツフア103内の視覚操作スタツク303と
の変化を順に示した図であり、第7図〜第11図に示され
るプログラマの操作とその結果を順に追いかけながら各
部の動作を詳述することにする。
第7図は初期状態からいくつかの操作を行なつた際の
デイスプレイ107の画面701と、データバツフア103内の
視覚操作スタツク303の内容を示す図である。
初期状態でプログラマが“Start"キー208を押すと、
データ操作部102にその旨が送られて第4図のフローチ
ヤートで示すプログラムが起動される。まずシーン番号
を表わす変数Snoに1をセツトして、プログラマにプロ
グラム名の入力を要求して読込み、視覚操作スタツク30
3(初期状態では空)の第0フレームにテンプレートデ
ータベース105からType 1テンプレート304をコピーして
フレーム715として格納する。テンプレート715の第3フ
イールドには読込んだプログラム名“PART"を、また第
1フイールドには変数Snoの値“1"をそれぞれ格納す
る。またアイコンリスト302(初期状態では“Int"アイ
コン710と“Array"アイコン713が登録されている)に
は、プログラム名を名前とするアイコン714を追加する
(403)。
分割処理では、分割の中央値となる整数と、分割のさ
れる配列を操作することが必要なので、プログラマはま
ずこれらをデータと操作の表示領域212に持つてくる。
これにはまず、マウス109の操作によつてカーソルをア
イコンエリア内に表示されている“Int"アイコン710の
上に移動させ“SL"キー211を押すと(702)、データ操
作部102にその旨が送られてカーソル位置がオペランド
スタツク301に格納される(401)。そしてカーソルを表
示領域212内に移動させて“SL"キー211を押してオペラ
ンドスタツクにカーソル座標を追加記憶させた後“Cop
y"キー206を押す(704)。“Copy"キーを押すと、オペ
ランドスタツクの第1要素に格納された座標(操作702
時のカーソル座標)が示すアイコンリスト中のアイコン
を探し、その名前を第2フイールドとするテンプレート
をテンプレートデータベース105からコピーして視覚操
作スタツク303の第1フレーム716として格納する(40
9)。この場合操作702で選択されたアイコンは“Int"ア
イコン710なのでType 3テンプレート306がコピーされ
る。フレーム716の第1フイールド315には変数Snoの値
が、第4フイールドには、オペランドスタツク301の第
2要素が指す座標(操作703時のカーソル座標)と、ア
イコン710の大きさとがその占有領域として格納され
る。また、第5フイールドには、外部からのパラメータ
である旨を示すフラグ“P"が格納される(410)。
プログラマは“Name"キー204によつてデータに名前を
つけることができる。この場合アイコン711には操作705
によつて名前“M"が与えられている。与えられた名前は
テンプレートの第2フイールドに格納される(405)。
同様に配列“A"712が操作列706,707,708,709により作
られ、視覚操作スタツク303にはフレーム717が追加され
702に示した状態となる。なおフレーム717の第8フイー
ルド,第9フイールドにはそれぞれ“1"と“N"が格納さ
れる。
データ表示部101は1つのキー操作毎に起動され(41
4)、視覚操作スタツク303の内容をデイスプレイ107に
表示する。第5図はデータ表示部101の動作を示すフロ
ーチヤートである。データ表示部101は起動されると、
シーン番号を示す内部変数Sに初期値1を設定(501)
する。本初期設定は2回目以降の起動に対しては行なわ
れない。次に視覚操作スタツク303をフレーム番号順に
順次取出して処理する(502)。この場合、第1フレー
ムの第2フイールドが“Int"なので(Type 3テンプレー
ト306)、その第4フイールド318が示す矩形を表示(50
9)し、その中に第3フイールド317が示すデータ名を表
示(512)する。第1フイールド315の値はシーン番号表
示領域213に表示される(503)。第2フレームは第2フ
イールドが“Array"(Type 4テンプレート)であるの
で、やはりその第4フイールド325が示す矩形をデイス
プレイ107に表示する(509)。このテンプレートの場
合、このフレームを第7フイールド328で指すような他
フレームがあるか否か、すなわち子フレームがあるかが
判定される(510)。この判定は、各フレームについ
て、それがType 4テンプレートの時その第7フイールド
をチエツクすることにより容易に行なうことができる。
判定の結果、第2フレームを指す子フレームは存在しな
いので、矩形内に第3フイールド324の値、すなわちデ
ータ名が表示される(512)。
以上、第7図におけるプログラマの操作と、それに対
応する本実施例のプログラム操作装置の動作を説明し
た。
次に第8図に進む。第8図ではプログラマは、配列A
から条件MXを満す要素X811を選ぶことを指示してい
る。この指示はまず操作801によりカーソルを配列Aの
左下に移動させて“SL"キー211を押してこのカーソル位
置をオペランドスタツクに記憶した(401)後、“Get"
キー203を押す。
データ操作部102は“Get"キーが押された旨を受け取
ると、まずオペランドスタツク301の第1要素に格納さ
れた操作801時のカーソル座標をもとに、視覚操作スタ
ツク303の各フレームに対し、フレーム番号の降順にTyp
e 3,Type 4のテンプレートについて第4フイールドの値
を調べ、その占有領域が操作801時のカーソル位置を含
むか否かが判定される。カーソル位置を含むフレームが
見つかつた時そのフレームを3つ分コピーして視覚操作
スタツク303に格納する(406)。この場合、視覚操作ス
タツク303の第3〜第5フレーム807,808,809がコピーさ
れたフレームである。フレーム807,808,809の第1フイ
ールドには現シーン番号示す変数Snoの値(1に等し
い)が格納される。フレーム807,808,809の第7フイー
ルドには、コピーしたもとのフレームの番号である“2"
がそれぞれ格納され、第3〜第5フレームは第2フレー
ムの子フレーム、すなわち第2フレームの示すデータの
部分データである旨が示される。また、フレーム807の
第8フイールドには第2フレームの第8フイールドがフ
レーム809の第9フイールドには第2フレームの第9フ
イールドの値が書き込まれる。フレーム808の第8,第9
フイールドには装置が生成するインデクス変数名“IO"
が格納される(以後必要に応じて順にI1,I2,I3,…が生
成される)。フレーム807の第9フイールドには“I0−
1"がフレーム809の第8フイールドには“I0+1"がそれ
ぞれ書き込まれる(407)。つまりもとの配列Aはフレ
ーム807〜809が示す3つの部分配列に分割されたことに
なる。次にデータ操作部102はプログラマに対し選択条
件805の入力を要求し、この条件式をフレーム808の第5
フイールドに格納する。さらにデータ操作部102はオペ
ランドスタツク201の第1要素が示す座標が第2フレー
ムの第4フイールドが示す占有領域中の左半分にあるか
右半分にあるかを調べ、左半分にあるなら“L"を、右半
分なら“R"をフレーム808の第10フイールドに格納す
る。なお、フレーム807,808,809の第4フイールド、す
なわち占有領域は、フレーム807は親フレームである第
2フレームに等しく、フレーム807,808,809の占有領域
は水平方向に隣接した高さの同じ矩形810,811,812にと
る。但し幅は矩形810は812と同じにまた811は810の1/2
にとる。この後親フレームである第2フレームの第4フ
イールドのうち矩形712の幅を示す値はフレーム807,80
8,809の各第4フイールドの中の幅を示す値の和に更新
される(408)。以上で“Get"キー203の操作803の処理
がなされた。
プログラマは操作802により次にカーソルを配列Aの
中央の部分領域を指定してから操作804により名前“X"
を与える。データ操作部はこれに対応してフレーム808
の第3フイールドに“X"を書き込み(405)。データバ
ツフア103中の視覚操作スタツク303の状態806に対する
データ表示部の動作は第2フレームが子フレーム807,80
8,809を有するため、その名前“A"が矩形の左上に表示
される点を除き、第7図の場合と同様である。
以上、第8図におけるプログラマの操作とそれに対応
する本実施例のプログラム作成装置の動作を説明した。
次に第9図におけるプログラマの操作と対応する装置
の動作の説明を行なう。
第9図ではプログラマは、第8図でXを選んだのと同
様の方法で配列Aの最も右側の部分配列の中から条件Y
<Mを満す要素Yを選ぶことを指示している。具体的に
はまず操作901によりカーソルを配列Aの3つに分割さ
れて表示された領域810,811,812のうち右側の領域812の
右下に移動させてマウスの“SL"キー211を押した後、操
作903により“Get"キー203を押して領域812をさらに3
つの矩形910,911,912に再分割し、条件式905を入力し操
作902,904により中央の領域に名前“Y"をつける。これ
ら操作に対応しデータ操作部102は視覚操作スタツク303
にフレーム907,908,909を追加する。追加操作は第8図
の場合と比べ、インデクス変数が“I1"である点、親フ
レームが第5フレームなのでフレーム907,908,909の第
7フイールドは“5"である点、およびフレーム908の第1
0フイールドには、操作901時のカーソル位置が第5フレ
ームの第4フイールドが示す領域の右半分に属すること
から“R"が格納される点が異なるが他は同様であり省略
する。
状態906に示される視覚操作スタツク303をデータ表示
部101が処理した結果、デイスプレイ107のデータと操作
の表示領域212には、整数Mと、5領域810,811,910,91
1,912に分割された配列A712とが表示される。データ表
示部101の詳細な動作の説明は第8図の場合と同様であ
るので省略する。
以上、第9図におけるプログラマの操作とそれに対応
する本実施例のプログラム作成装置の動作を説明した。
次に第10図の説明に移る。第10図ではプログラマは、
第8図,第9図の操作で選択した配列要素X811とY911の
入れ替えを指示する。具体的にはまず操作1001によつて
カーソルを要素X811の中に移動させて“SL"キー211を押
してオペランドスタツク301にカーソル位置座標を記録
し、次に同様に操作1002により要素Y911中のカーソル位
置座標を記録する。その後プログラマが操作1003により
“Swap"キー205を押すと、データ操作部102はまずType
2のテンプレート305をテンプレートデータベース105か
らコピーし、視覚操作スタツク303の第9フレーム1006
として格納する。フレーム1006の第3フイールドには定
数値“SWAP"を格納する。次にオペランドスタツク301に
格納された各座標に対し、視覚操作スタツク303の各フ
レームのうちType 3およびType 4のテンプレートについ
てフレーム番号の降順にその第4フイールドを調べてそ
の座標を占有領域内に包含するフレームを捜し、そのフ
レーム番号のリストをフレーム1006の第4フイールドに
格納する(411)。この場合、操作1001時のカーソル位
置は第4フレームが表わす要素Xの占有領域内にあり、
操作1002時のカーソル位置は第7フレームが表わす要素
Yの占有領域内にあるので、フレーム1006の第4フイー
ルドには、“4"と“7"が格納される。
データ表示部101はデータバツフアの状態1005で示さ
れる視覚操作スタツク303の各フレームを順次取出し対
応する表示をデイスプレイ107に対して行なう。この中
で第0〜第8フレームについては既に述べたので第9フ
レームに対する表示についてのみ説明する。データ表示
部101は第9フレーム1006の第2フイールドが“OP"であ
りかつ第3フイールドが“SWAP"であることを判定する
(508)と、フレーム1006の第4フイールドに格納され
た2つのフレーム番号によつて示されるフレーム808と
フレーム908とに対する矩形表示に対し、その2つの矩
形811,911を入れ替えて再表示するとともに、2つの矩
形811,911間を結ぶ矢印1004を表示する(513)。
以上、第10図におけるプログラムの操作とそれに対応
する本実施例のプログラム作成装置の動作について説明
した。
以下では第11図におけるプログラマの操作ならびに対
応する装置の動作について説明する。
第11図は最終の操作を示しており、この中でプログラ
マは、整数データM711と配列Aの5つの部分領域810,91
1,910,811,912のうちの中央部分1102とについてこれま
で指定してきたプログラム“PART"の手順を再帰的に繰
り返すことを指示している。これにより配列A712は整数
M711についてそれより小さいものと、M以上のものとに
分けられるので分割処理が指定できたことになる。具体
的操作としては、プログラマはまず“Next"キー209を押
す。データ操作部102はこの旨を受けとると、シーン番
号を示す内部変数Snoの値に1を加える(415)。次にプ
ログラマは操作1110,操作1101、および操作1102によつ
てアイコン1111と整数Mと部分配列1106との中にそれぞ
れカーソルを移動させ“SL"キー211によりそれらの位置
をオペランドスタツク301に格納する。そして“Apply"
キー207を押す(1111)。データ操作部102は“Apply"20
7が押されたことを受け取ると、まずテンプレートデー
タベース105よりType 2テンプレート305をコピーし視覚
操作スタツク303にフレーム1109として格納する。フレ
ーム1109の第1フイールドはSnoが“2"になつているの
で“2"が格納される。
次にオペランドスタツク301の第1要素に格納された
操作1110時のカーソル位置座標に対し、アイコンリスト
302内を調べ、その座標を含むアイコンの名前を探す。
この場合アイコン名は“PART"なので第10フレーム1109
の第3フイールドには定数値“PART"を格納する(41
2)。さらに“Swap"キーの場合と同様に、オペランドス
タツクの第2要素以降に格納された各座標を含む視覚操
作スタツク303のフレーム番号を調べフレーム1109の第
4フイールドに格納する。この場合、操作1101時のカー
ソル位置は整数データM711、すなわち第1フレームに含
まれ、操作1102時のカーソル位置は配列Aの中央部分91
0、すなわち第6フレームに含まれる。従つて第10フレ
ーム1109の第3フイールドには“1"と“6"が格納される
(413)。
データバツフアの状態1108における視覚操作スタツク
303に対するデータ表示部101の動作は第0〜第9フレー
ムについては既に述べたので第10フレームについてのみ
説明する。データ表示部101は第10フレーム1109の第2
フイールドが“OP"でありかつ第3フイールドが“PART"
であつて“SWAP"でないことを判定(508)し、まず空き
領域に矩形を表示しその中に第3フイールド値すなわち
“PART"を表示し、さらにその矩形から第4フイールド
に格納されたフレーム番号が示すデータ表示への矢印を
表示する(514)。この場合名前入りの矩形1103、整数
データMへの矢印1104、および部分配列1106への矢印11
05がそれぞれ表示される。また、第10フレーム1109の第
1フイールドは“2"であるのでシーン番号表示領域213
には“2"が表示される(503)。さらに内部変数Sはそ
れまで1であつたのでシーン番号が増加したことが判定
され(504)、これ以前のフレーム(第0〜第9フレー
ム)について、Type 2テンプレートに対する矢印あるい
は名前入り矩形表示をすべて削除(505,506)し、内部
変数Sに第10フレームの第1フイールドの値を格納する
(507)。この結果矢印1004は削除される。以上第11図
の説明を行なつた。
以上で分割処理プログラムPARTを定義し終わつたので
プログラマは定義の終了を示す“End"キー210を押す。
データ操作部は“End"キーを受けとると、目的プログラ
ム生成部104を起動する。そして目的プログラム生成部1
04の動作が完了すると視覚操作スタツク303および生成
された目的プログラムをフアイル106に格納した後スタ
ツク303をクリアする(404)。
以下では目的プログラム生成部104の動作を第6図のP
AD図および第11図のデータバツフアの状態1108及び生成
された目的プログラム(本実施例ではプログラミング言
語PASCALの記述を生成)を参照しながら説明する。
目的プログラム生成部104は起動されるとまず内部変
数Lに1を初期設定する(601)。
次に第2フイールドが“Def"であるフレームすなわち
第0フレーム1110を視覚操作スタツク303より取出しそ
の第3フイールドを手続き名として手続き宣言を生成す
る。手続きパラメタは視覚操作スタツク303の各フレー
ムのうち、Type 3またはType 4のテンプレートでかつそ
の第6フイールドが“P"であるものとする。この場合フ
レーム1111と1112が該当し、それぞれ整数Mを配列Aな
のでこの両者を手続きのパラメタとして宣言するPASCAL
の文1201を生成する(602)。
次に視覚操作スタツク303のフレームで、Type 3でか
つ第6フイールドが“P"でないものを探し、それらにつ
いての宣言文を生成する(603)。この場合は該当する
ものはない。同様にType 4でかつ第6フイールドが“P"
でなくかつ第7フイールに親フレームへのポインタが格
納されていないものを探し、それらについての宣言文を
生成する(604)。この場合やはり該当するフレームは
ない。
次に視覚操作スタツク303のフレームでType 4のもの
を探し、その第8,第9フイールドに現われるインデクス
変数に対する変数宣言文を生成する(605)。この場
合、第3〜第8フレーム1113〜1118にインデクス変数
“I0"および“I1"が現われるので、I0およびI1の宣言文
を生成する。さらに、作業用の変数Wと論理変数Eの宣
言をスタツク303の内容に関わりなく追加し(606)、結
局変数宣言文としては文1202を生成する。
次に手続きの本体の生成に移る。まず本体の記述が開
始されたことを示すキーワード“begin"1204を生成し
(607)、以後視覚操作スタツク303の第1フレームから
順に取出して対応するプログラムの文を生成する(60
8)。取出されたフレームはType 4テンプレートでかつ
その第5フイールドに条件が記述されたものであるか、
またはType 2テンプレートであるかが判定され(60
9)、これら以外のフレームに対しては文の生成は行な
われない。
さて第4フレームが条件つきType 4テンプレートなの
で目的プログラム生成部104はまず代入文“E:=true;"1
204を生成する(610)。次に繰り返しを示すfor文を生
成する。まずfor文の組返し指示部分1205を生成する。
但しインデクス変数は第4フレームの第8フイールド、
また繰返しの下限と上限は第10フイールドが“L"なので
第4フレームの親フレームである第2フレームの第8フ
イールドおよび第9フイールドとする(611)。続いてf
or文の本体1206を生成する。本体は条件判定を行なうif
文から成る。判定条件は第4フレームの第5フイールド
の変数名Xを、親フレームの名前Aと、第8フイールド
の添字名I0を参照しておきかえたもの、すなわち“A
(I0)>=M"とする。if文1206のthen部は論理変数Eへ
の定数値“false"の代入文と、ラベルへのgoto文とす
る。但しラベルは目的プログラム生成部104の内部変数
Lの値とする(612)。for文につづいて終了判定のため
のif文1207を生成する(613)。if文1207により、前のf
or文で条件を満す配列Aの要素がなかつた場合プログラ
ムは終了する。さらに内部変数Lの値のラベル1215を生
成して条件つきType 4テンプレートに対する文生成が完
了する。
目的プログラム生慣部104は、第7フレームが次の条
件つきType 4テンプレートであるので、第4フレームと
同様に処理し、文1208,1209,1210,1211およびラベル121
6を生成する。この動作は第4フレームの処理とほとん
ど同様であるので省略するが、第7フレームの第10フイ
ールドは“R"なのでfor文の繰返し指示部1209では上限
値と下限値は、それぞれ親フレームである第5フレーム
の第9フイールド,第8フイールドとなる(611)。す
なわち第4フレームの場合と逆であることに注意する。
目的プログラム生成部104は次にType 2テンプレート
である第9フレームを取出し対応する文を生成する。第
3フイールドは“SWAP"であるので、作業用変数Wを用
いた入れ替えを示す3つの代入文を生成する。入れ替え
るデータは第9フレームの第4フイールドが示してお
り、この場合第4フレームと第7フレームによつて表わ
されるデータはX(A(I0)に等しい)およびY(A
(I1)に等しい)であるのでこれらを入れ替える3つの
代入文1212を生成する(616)。
目的プログラム生成部104は最後にType 2テンプレー
トである第10フレームを取出し対応する文を生成する。
第3フイールドは“PART"であるので手続きPARTの呼び
出し文1213を生成する。手続き呼び出しのパラメタは第
10フレームの第4フイールドに格納されたフレーム番号
が指すフレームが表わすデータとする。この場合、第4
フイールドに指されるフレームは第1フレームと第6フ
レームでありこれが表わすデータは整数Mと部分配列A
(I0+1…I1−1)なのでこの2つをパラメタとする
(616)。
以上で視覚操作スタツク303の全フレームを処理した
ので終了を示す文1214を生成し(618)目的プログラム
生成部104の動作が完了する。
以上、本発明の一実施例であるプログラム作成装置の
動作を分割処理プログラム生成を例として説明した。
本実施例では視覚操作スタツク303の結果の状態1108
をフアイル106に保存しているが、これには次のような
利点がある。すなわち、スタツク303の内容を用いて第1
3図に示すようなシーン番号ごとのデータと操作の表示
をつなぎ合わせたプログラムの動作内容を図化したフロ
ー図を得られる点である。第13図が、データ表示部101
とほぼ同じ機構によつて視覚操作スタツク303から得ら
れることを明らかであろう。第13図を得ることにより、
多くの操作を必要とする複雑なプログラムの作成もその
手順及びデータの変化が視覚化される。
本実施例では簡単のためあらかじめ用意されたテンプ
レートを整数、配列等に限定したが、無論これらをリス
ト,木,レコードなど種々のデータ構造に拡張すること
も容易である。また操作としても本実施例では入れ替え
や転写を中心としたが、これも削除,挿入など他操作も
含めることも容易であり、これら拡張によりプログラム
作成における効率と適用範囲はさらに向上する。
〔発明の効果〕
以上説明したように、本発明によればプログラマはデ
ータとそれに対する操作を常に2次元的に視覚化しなが
らプログラムを作成できるので、プログラム作成が効率
化される。例えば分割処理プログラムの場合も、第14図
に示した従来のプログラムの視覚化方法であるフローチ
ヤートと、本発明の一実施例である装置でのプログラム
作成結果(第13図)とを比較すれば、本発明ではデータ
構造とその変化が一目瞭然となつている。また配列の添
字や境界条件等も意識する必要がなくなり、条件判定や
くり返しなどの制御構造は自動生成されるのでプログラ
ム作成が容易となる。
【図面の簡単な説明】
第1図は本発明の一実施例のプログラム作成装置の全体
構成図、第2図はデイスプレイ,キーボードおよびマウ
スの構成図、第3図はデータ形式を示す図、第4図はデ
ータ操作部の動作を示すPAD図、第5図はデータ表示部
の動作を示すPAD図、第6図は目的プログラム生成部の
動作を示すPAD図、第7〜第11図はプログラマの画面操
作とデータバツフアの変化を示す図、第12図は目的プロ
グラムテキスト、第13図は本装置より得られるシーンの
流れ図、第14図は従来フローチヤートを示す図である。 101……データ表示部、102……データ操作部、103……
データバツフア、104……目的プログラム生成部、105…
…テンプレートデータベース、106……目的プログラ
ム、107……デイスプレイ、108……キーボード、109…
…マウス。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】ディスプレイ装置と前記ディスプレイ装置
    の画像上の位置を利用者の操作により指定可能な位置指
    定手段と、 前記利用者の複数の操作を選択的に指定する操作指定手
    段と、 それぞれ異なる操作に対応する複数のレコードを記憶す
    る記憶手段を有するプログラム作成装置において、 前記レコードとしてプログラム作成上の基本要素となる
    データおよび操作のうち少なくとも一方のひな形である
    複数のテンプレートを記憶しておき、 利用者が前記位置指定手段および前記操作指定手段を用
    いた指示に従い、前記記憶手段から前記指示毎に対応し
    たテンプレートを取り出して、 取り出されたテンプレートのフィールドを所定規則に従
    い更新し、 更新されたテンプレートを参照してデータおよび操作結
    果を前記ディスプレイ装置に2次元的に表示すると共
    に、更新されたテンプレートを用いてデータ処理プログ
    ラムを生成することを特徴とするプログラム作成方法。
JP62279215A 1987-11-06 1987-11-06 プログラム作成方法 Expired - Fee Related JP2585311B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP62279215A JP2585311B2 (ja) 1987-11-06 1987-11-06 プログラム作成方法
EP19880118325 EP0315172B1 (en) 1987-11-06 1988-11-03 Automatic program generation method with a visual data structure display
DE3854183T DE3854183D1 (de) 1987-11-06 1988-11-03 Automatische Programmerzeugung mit Datenstruktursichtanzeige.
US07/595,747 US5287449A (en) 1987-11-06 1990-10-09 Automatic program generation method with a visual data structure display
US07/680,409 US5398313A (en) 1987-11-06 1991-04-04 Method for visual programming with aid of animation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62279215A JP2585311B2 (ja) 1987-11-06 1987-11-06 プログラム作成方法

Publications (2)

Publication Number Publication Date
JPH01121935A JPH01121935A (ja) 1989-05-15
JP2585311B2 true JP2585311B2 (ja) 1997-02-26

Family

ID=17608032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62279215A Expired - Fee Related JP2585311B2 (ja) 1987-11-06 1987-11-06 プログラム作成方法

Country Status (3)

Country Link
EP (1) EP0315172B1 (ja)
JP (1) JP2585311B2 (ja)
DE (1) DE3854183D1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2728559B2 (ja) * 1989-10-09 1998-03-18 株式会社日立製作所 知識処理システム構築ツール及び推論プログラムの生成方法
JP5779077B2 (ja) * 2011-11-22 2015-09-16 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation プログラムの生成を支援する装置及び方法
US9886245B2 (en) 2016-02-24 2018-02-06 Helix Data Solutions LLC Software development tool using a workflow pattern that describes software applications

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6267634A (ja) * 1985-09-13 1987-03-27 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 入力デ−タを出力デ−タ構造に一致させるオブジエクト・コ−ドを生成する方法
JPS6285336A (ja) * 1985-10-11 1987-04-18 Hitachi Ltd 表変換型ソフトウエア構成方式
JPS62121540A (ja) * 1985-11-22 1987-06-02 Hitachi Ltd デ−タベ−ス利用によるデ−タフロ−作成方式

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6267634A (ja) * 1985-09-13 1987-03-27 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 入力デ−タを出力デ−タ構造に一致させるオブジエクト・コ−ドを生成する方法
JPS6285336A (ja) * 1985-10-11 1987-04-18 Hitachi Ltd 表変換型ソフトウエア構成方式
JPS62121540A (ja) * 1985-11-22 1987-06-02 Hitachi Ltd デ−タベ−ス利用によるデ−タフロ−作成方式

Also Published As

Publication number Publication date
JPH01121935A (ja) 1989-05-15
EP0315172B1 (en) 1995-07-19
EP0315172A3 (en) 1991-11-27
DE3854183D1 (de) 1995-08-24
EP0315172A2 (en) 1989-05-10

Similar Documents

Publication Publication Date Title
US5287449A (en) Automatic program generation method with a visual data structure display
JP2559962B2 (ja) 情報表示装置およびファイルの特性を表示する装置
US5550967A (en) Method and apparatus for generating and displaying visual cues on a graphic user interface
KR100214911B1 (ko) 지시장치를 이용한 대량 데이타의 탐색 방법
JPH0721754B2 (ja) グラフィカル・ユーザ・インターフェース
JPS6162170A (ja) 複合文書編集方法
JPH06103049A (ja) 仕様抽象化詳細方式
US5345544A (en) Data base system
US5995984A (en) Apparatus and method for zoom-in entry of an element in a table
JP2585311B2 (ja) プログラム作成方法
JPH01240978A (ja) 対話画面定義装置
JP3016691B2 (ja) データ検索条件設定方法
JP2859214B2 (ja) 簡易化機能選択メニュー方式
JPS6315322A (ja) コマンド履歴取得再利用方式
JPH0588863A (ja) プログラム開発支援システム
JPH0644113A (ja) データベース検索システム
JPH01229321A (ja) ユーザインタフェース作成装置
WO1994017468A1 (en) Method and apparatus for generating and displaying visual cues on a graphic user interface
JPH01298434A (ja) プログラム発生装置
JPH0436792A (ja) 画面選択表示方法及びその装置
JP2000122770A (ja) ソートしたファイル群の図表示方法
JPH05108458A (ja) ハイパーテキスト装置
JPH0317741A (ja) プログラム作成支援装置
JPH0223438A (ja) フアイル操作方式
JPH08297679A (ja) 情報検索方法及びその装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees