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

プログラム作成方法

Info

Publication number
JPH01121935A
JPH01121935A JP62279215A JP27921587A JPH01121935A JP H01121935 A JPH01121935 A JP H01121935A JP 62279215 A JP62279215 A JP 62279215A JP 27921587 A JP27921587 A JP 27921587A JP H01121935 A JPH01121935 A JP H01121935A
Authority
JP
Japan
Prior art keywords
data
frame
field
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.)
Granted
Application number
JP62279215A
Other languages
English (en)
Other versions
JP2585311B2 (ja
Inventor
Keiji Kojima
啓二 小島
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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はプログラム作成装置に係わり、特に複雑なデー
タ構造の処理プログラムの作成に好適なプログラム作成
装置に関する。
〔従来の技術〕
従来、プログラムを視覚化して作成効率を向上させる方
法としてフローチャートに代表されるプログラム図によ
る方法が用いられている。特に特開昭58−3039号
記載の装置のように、CRT上で直接2次元的なチャー
トを入力して効率化する装置も知られている。
〔発明が解決しようとする問題点〕
上記従来技術は、プログラムにおける選択、繰返しなど
の制御を2次元的に視覚化して表示することを可能とす
るが、データ自体の視覚化については配慮されておらず
、データ構造の操作が中心となるプログラムにおいては
処理内容が明確化されない問題点があった。以下この問
題を図を用いて簡単に説明する。
第14図は、従来のプログラムの視覚化法であるフロー
チャートを用いて、クイックソートプログラムの中心部
分となる分割処理を記述したものである0分割処理では
分割中央値Mに対し、配列Aの中をま・ず左からMより
大きい配列要素A(I)を探し、次に右からM以下の配
列要素A (J)を探し1両者を入れ換えるという手順
を繰り返す。
第14図から明らかなようにフローチャートでは条件判
定、繰返しといったプログラム制御構造は図化されて明
確になっているが、配列の中での要素の位置関係のよう
なデータ構造は視覚化されておらず、処理内容の直観的
理解には充分ではない。
本発明の目的は、データ構造を視覚化してその処理内容
をわかり易く表示しながらプログラムを作成するための
装置を提供することにある。
〔問題点を解決するための手段〕
上記目的は、データまたはデータ操作の種類に対応する
レコードを格納するデータベースと、プログラマの要求
に応じて適切なレコードを取出してそのレコードのフィ
ールドに情報を書込んだ後記憶装置に順次格納するデー
タ操作手段と、記憶装置に格納されたレコード列を参照
してデータとその操作結果をディスプレイ装置に表示す
るデータ表示手段と、得られたレコード列からデータ処
理プログラムを生成する目的プログラム生成手段とを設
けることにより達成される。
〔作用〕
第14図に示した分割処理を例として個々の技術手段の
働きを図を用いて述べる。
データに対応するレコードとしては、整数や配列などの
ためのテンプレートとなるレコード(以下ではテンプレ
ート・レコードあるいは単にテンプレートと呼ぶ)が、
またデータ操作に対応するレコードとじてか探索や複写
や入れ替えなどに対応してそれぞれデータベースに用意
される0分割処理プログラムを作成する場合、プログラ
マはまず処理対象である配列データ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本発明の一実施例を図に従って説明する。
まず、本発明の一実施例であるプログラム作成装置の構
成と動作の概略を第1図を用いて説明する。
プログラマによる操作指示は、キーボード108および
マウス109により入力され、主記憶装置11内に格納
されているプログラム100内のデータ操作部102に
送られる。データ操作部102は操作指示に対応したテ
ンプレートをテンプレートデータベース105より取出
してデータバッファ103に格納する。データ表示部1
01は、データバッファ103に格納されたテンプレー
トを順次参照して対応する図形および記号列をディスプ
レイ107に表示する。プログラマがプログラム作成完
了をキーボード108から指示すると、データ操作部1
02は目的プログラム生成部104を起動する。目的プ
ログラム生成部104はデータバッファ103中のテン
プレート群を参照して対応する目的プログラム106を
生成する。
以上、本発明の一実施例であるプログラム作成装置の構
成と動作の概略を述べた。
第1図に示したプログラム作成装置の詳細な動作の説明
に先立って、まず本実施例におけるディスプレイ107
とキーボード108およびマウス109の構成を第2図
を用いて説明する。
ディスプレイ107の画面は大きく2つの領域に分割さ
れている。1つはシーン定義領域201である。シーン
定義領域201はさらに、定義中のプログラム名の表示
領域211、データと操作の表示領域212、シーン番
号の表示領域213゜および選択条件表示領域214の
4部分領域から成る。もう1つはアイコン表示領域20
2であり、この中にはプログラム作成時に用いられるデ
ータや操作に対応するアイコンが表示されている。
一方キーボード108には通常の英数字キー群215に
加え、本実施例の装置特有のファンクション・キー20
3〜210が備えられている0本実施例では、”Get
”キー203と、“Na+ae”キー204と“Swa
p”キー205とII Co p y”キー206と“
APPLY”キー207と“5tart”キー208と
、“Next”キー209と、”End”キー210と
が用意される。
マウス109はカーソル移動機能の他に”SL”キー2
11と“CL”キー212とを有する。
以下第1図の装置の詳細な動作を第14図に示した分割
処理プログラムを作成する場合を例として、説明する。
まずはじめにデータバッファ103に格納されるデータ
の形式と種類について第3図(a)を用いて説明する。
データバッファ103には、オペランド・スタック30
1とアイコン・リスト302と視覚操作スタック303
が格納される。オペランド・スタック301は画面上の
座標を表わすデータのスタックであり、マウス109の
”SL”キー211を押下した時にそのカーソル位置座
標が格納される。すなわちオペランドスタック301は
マウスで選択したアイコンなどの視覚的オブジェクト群
を記憶するためのデータエリアである。
アイコンリスト302は画面107上のアイコン・エリ
ア202内に表示されているアイコン群の表示領域と名
前を格納している1本実施例では簡単のためアイコンは
すべて矩形としており、その占有領域は、矩形の左上の
端の座標と、矩形の幅および高さとで表わされる。マウ
ス109の選択キー“SL”が押された場合、その時の
カーソル座標がアイコンリスト302の各占有領域のう
ちどの中にあるかを調べていくことにより、どのアイコ
ンが選択されたかの判定が行なえる。
視覚操作スタック303は、操作対象データおよびそれ
らに対するプログラマの操作を順次記憶していくための
ものであり、複数のスタックフレームから構成される。
各フレームは後述のテンプレートに必要部分の情報を埋
込んだ形式をしている0以上、データバッファ103に
ついて説明した。
次にテンプレートデータベース105について第3図、
(b)を用いて説明する。テンプレートデ−タベース1
05にはプログラム作成上の基本要素となるデータ(整
数データ、配列データなど)や操作(転写や入替えなど
)のひな形であるテンプレートが格納されている0本実
施例では、4つのテンプレートが用意される。それはT
ype 1のテンプレート304、Type 2のテン
プレート305、Type 3のテンプレート306.
およびType 4のテンプレート307である。
Type 1テンプレート304は3つのフィールドか
ら成る。第1のフィールド308には後で説明するシー
ン番号が格納される。第2フイールド309には定数“
D e f ”が、また第3フイールド310には作成
中のプログラム名が格納される。
Type 1テンプレートはプログラム作成の開始を表
わすのに用いられる。
Type 2テンプレート305はデータ操作を表わす
ためのもので4つのフィールドから成る。第1フイール
ド311にはシーン番号が、第2フイールド312には
定数“OP”が、第3フイールド313には操作部が、
第4フイールドには操作対象であるオペランドのリスト
がそれぞれ格納される。
Type 3テンプレート306は整数データを表わす
ためのもので7フイールドから成る。第1フイールド3
15にはシーン番号が、第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には配列
の両端(開始位置と終了位II)を示すインデクス値ま
たは変数がそれぞれ格納される(初期値は1と“N”)
、第10フイールド331には、配列内の探索を行なう
時の方向を示すデータ(“L”または“R”)が格納さ
れる。なお後述のように第7フイールドには配列の値そ
のものでなく、視覚操作スタック303のフレーム番号
が格納される場合もある。
各テンプレートの各フィールドは第2フイールドを除い
て、初期状態(テンプレートデータベース105の中)
では適当な初期値が設定しである。
それらを示すと。
(1) Type 1〜Type4の第1.第3フイー
ルド。
Type 2〜4の第4フイールド、Type3.4の
第6フイールド、Type 4の第10フイールドはす
べて空白 (2) Type3 、4の第5フイールドは“tru
e”(3) Type3 、4の第7フイールドは”u
df”(4) Type4の第8フイールドは1(5)
 Type4の第9フイールドはIt N IIである
。各フィールドはプログラマの操作に対応してデータベ
ース105から取出された際に埋められてデータバッフ
ァ103中の視覚操作スタック303に格納される。
以上、テンプレートデータベース105について説明し
た。
以下、第14図でその概略を説明した分割処理プログラ
ムの作成手順を例としてデータ表示部101(第5図の
P A D (Progra+* AnalysisD
iagram)図、データ操作部102(第4図のPA
D図)、目的プログラム生成部104(第6図のPAD
図)の動作を説明する。なお、第7図〜第11図はプロ
グラム作成手順に従った実際のディスプレイ107の画
面と、データバッファ103内の視覚操作スタック30
3との変化を順に示した図であり、第7図〜第11図に
示されるプログラマの操作とその結果を順に追いかけな
がら各部の動作を詳述することにする。
第7図は初期状態からいくつかの操作を行なった際のデ
ィスプレイ107の画面701と、データバッファ10
3内の視覚操作スタック303の内容を示す図である。
初期状態でプログラマが“5tart”キー208を押
すと、データ操作部102にその旨が送られて第4図の
フローチャートで示すプログラムが起動される。まずシ
ーン番号を表わす変数Snoに1をセットして、プログ
ラマにプログラム名の入力を要求して読込み、視覚操作
スタック303(初期状態では空)の第0フレームにテ
ンプレートデータベース105からType 1テンプ
レート304をコピーしてフレーム715として格納す
る。テンプレート715の第3フイールドには読込んだ
プログラム名“PART”を、また第1フイールドには
変数Snoの値“1”をそれぞれ格納する。またアイコ
ンリスト302(初期状態では“I n t ”アイコ
ン710と“Array”アイコン713が登録されて
いる)には、プログラム名を名前とするアイコン714
を追加する(403)。
分割処理では1分割の中央値となる整数と、分割される
配列を操作することが必要なので、プログラマはまずこ
れらをデータと操作の表示領域212に持ってくる。こ
れにはまず、マウス109の操作によってカーソルをア
イコンエリア内に表示されている” I n t”アイ
コン710の上に移動させ“SL”キー211を押すと
(702)、データ操作部102にその旨が送られてカ
ーソル位置がオペランドスタック301に格納される(
401)。そしてカーソルを表示領域212内に移動さ
せて“SL”キー211を押してオペランドスタックに
カーソル座標を追加記憶させた後“Copy”キー20
6を押す(704) 、  ”Copy”キーを押すと
、オペランドスタックの第1要素に格納された座標(操
作702時のカーソル座4!l)が示すアイコンリスト
中のアイコンを探し、その名前を第2フイールドとする
テンプレートをテンプレートデータベース105からコ
ピーして視覚操作スタック303の第1フレーム716
として格納する(409)、この場合操作702で選択
されたアイコンは“Int”アイコン710なのでTy
pe 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゜70
8、’709により作られ、視覚操作スタック303に
はフレーム717が追加され702に示した状態となる
。なおフレーム717の第8フイールド、第9フイール
ドにはそれぞれ“1″とdi N I+が格納される。
データ表示部101は1つのキー操作毎に起動され(4
14)、視覚操作スタック303め内容をディスプレイ
107に表示する。第5図はデータ表示部101の動作
を示すフローチャートである。データ表示部101は起
動されると、シーン番号を示す内部変数Sに初期値1を
設定(501)する。本初期設定は2回目以降の起動に
対しては行なわれない1次に視覚操作スタック303を
フレーム番号順に順次取出して処理する(502)。
この場合、第1フレームの第2フイールドが”I n 
t ”なので(Type 3テンプレート306)、そ
の第4フイールド318が示す矩形を表示(509)L
、その中に第3フイールド317が示すデータ名を表示
(512)する。第1フイールド315の値はシーン番
号表示領域213に表示される(503)、第2フレー
ムは第2フイールドが”Array ”  (Typn
4テンプレート)であるので、やはりその第4フイール
ド325が示す矩形をディスプレイ107に表示する(
509)。
このテンプレートの場合、このフレームを第7フイール
ド328で指すような他フレームがあるか否か、すなわ
ち子フレーム−があるかが判定される(510)、この
判定は、各フレームについて。
それがType 4テンプレートの時その第7フイール
ドをチエツクすることにより容易に行なうことができる
0判定の結果、第2フレームを指す子フレームは存在し
ないので、矩形内に第3フイールド324の値、すなわ
ちデータ名が表示される(512)。
以上、第7図におけるプログラマの操作と、それに対応
する本実施例のプログラム操作装置の動作を説明した。
次に第8図に進む、第8図ではプログラマは、配列Aか
ら条件M<Xを満す要素X811を選ぶことを指示して
いる。この指示はまず操作801によりカーソルを配列
Aの左下に移動させて“SL”キー211を押してこの
カーソル位置をオペランドスタックに記憶した(401
)後、” G e t”キー203を押す。
データ操作部102は“G e t”キーが押された旨
を受は取ると、まずオペランドスタック301の第1要
素に格納された操作801時のカーソル座標をもとに、
視覚操作スタック303の各フレームに対し、フレーム
番号の降順にType 3 、 Type4のテンプレ
ートについて第4フイールドの値を調べ、その占有領域
が操作801時のカーソル位置を含むか否かが判定され
る。カーソル位置を含むフレームが見つかった時そのフ
レームを3つ分コピーして視覚操作スタック303に格
納する(406)、この場合、視覚操作スタック303
の第3〜第5フレーム807,808,809がコピー
されたフレームである。フレーム807゜808.80
9の第1フイールドには現シーン番号を示す変数Sno
の値(1に等しい)が格納される。フレーム807,8
08,809の第7フイールドには、コピーしたもとの
フレームの番号であるI2”がそれぞれ格納され、第3
〜第5フレームは第2フレームの子フレーム、すなわち
第2フレームの示すデータの部分データである旨が示さ
れる。また、フレーム807の第8フイールドには第2
フレームの第8フイールドがフレーム809の第9フイ
ールドには第2フレームの第9フイールドの値が書き込
まれる。フレーム808の第8.第9フイールドには°
装置が生成するインデクス変数名“工0″が格納される
(以後必要に応じて順にIf、I2.I3.・・・が生
成される)。
フレーム807の第9フイールドには“工0−1”がフ
レーム809の第8フイールドには′IO+1”がそれ
ぞれ書き込まれる(407)、つまりもとの配列Aはフ
レ′−ム807〜809が示す3つの部分配列に分割さ
れたことになる0次にデータ操作部102はプログラマ
に対し選択条件805の入力を要求し、この条件式をフ
レーム808の第5フイールドに格納する。さらにデー
タ操作部102はオペランドスタック201の第1要素
が示す座標が第2フレームの第4フイールドが示す占有
領域中の左半分にあるか右半分にあるかを調べ、左半分
にあるならjlL”を、右半分なら′R″をフレーム8
08の第10フイールドに格納する。
なお、フレーム807.8・08,809の第4フイー
ルド、すなわち占有領域は、フレーム807は親フレー
ムである第2フレームに等しく、フレーム807,80
8,809の占有領域は水平方向に隣接した高さの同じ
矩形810,811゜812にとる。但し幅は矩形81
0は812と同じにまた811は810の1/2にとる
。この後親フレームである第2フレームの第4フィール
ド−のうち矩形712の幅を示す値はフレーム807゜
808.809の各第4フイールドの中の幅を示す値の
和に更新される(408)。以上で“Get”キー20
3の操作803の処理がなされた。
プログラマは操作802により次にカーソルを配列Aの
中央の部分領域を指定してから操作804により名前“
X”を与える。データ操作部はこれに対応してフレーム
808の第3フイールドに“X”を書き込む(405)
、データバッファ103中の視覚操作スタック303の
状態806に対するデータ表示部の動作は第2フレーム
が子’7L/−ム807,808,809を有するため
、その名前“A Jjが矩形の左上に表゛示される点を
除き、第7図の場合と同様である。
以上、第8図におけるプログラマの操作とそれに対応す
る本実施例のプログラム作成装置の動作を説明した。
次に第9図におけるプログラマの操作と対応する装置の
動作の説明を行なう。
第9図ではプログラマは、第8図でXを選んだのと同様
の方法で配列Aの最も右側の部分配列の中から条件Y<
Mを満す要素Yを選ぶことを指示している。具体的には
まず操作901によりカーソルを配列Aの3つに分割さ
れて表示された領域810.811,812のうち右側
の領域812の右下に移動させてマウスの“SL”キー
211を押した後、操作903により“Get”キー2
03を押して領域812をさらに3つの矩形910.9
11,912に再分割し、条件式905を入力し操作9
02,904により中央の領域に名前“Y”をつける、
これら操作に対応しデータ操作部102は視覚操作スタ
ック303にフレーム907,908,909を追加す
る。追加操作は第8図の場合と比べ、インデクス変数が
“工1″である点、親フレームが第5フレームなのでフ
レーム907,908,909の第7フイールドは1′
5”である点、およびフレーム908の第10フイール
ドには、操作901時のカーソル位置が第5フレームの
第4フイールドが示す領域の右半分に属することから“
R”が格納される点が異なるが他は同様であり省略する
状11906に示される視覚操作スタック303をデー
タ表示部101が処理した結果、ディスプレイ107の
データと操作の表示領域212には。
整数Mと、5領域810,811,910,911゜9
12に分割された配列A712とが表示される。
データ表示部101の詳細な動作の説明は第8図の場合
と同様であるので省略する。。
以上、第9図におけるプログラマの操作とそれに対応す
る本実施例のプログラム作成装置の動作を説明した。
次に第10図の説明に移る。第10図ではプログラマは
、第8図、第9図の操作で選択した配列要素X811と
Y911の入れ替えを指示する。
具体的にはまず操作1001によってカーソルを要素x
811の中に移動させて“’SL”キー211を押して
オペランドスタック301にカーソル位置座標を記録し
、次に同様に操作1002により要素Y911中のカー
ソル位置座標を記録する。
その後プログラマが操作1003により“Swap”キ
ー205を押すと、データ操作部102はまずType
 2のテンプレート305をテンプレートデータベース
105からコピーし、視覚操作スタック303の第9フ
レーム1006として格納する。
フレーム1006の第3フイールドには定数値“5WA
P“を格納する0次にオペランドスタック301に格納
された各座標に対し、視覚操作スタック303の各フレ
ームのうちType 3およびType 4のテンプレ
ートについてフレーム番号の降順にその第4フイールド
を調べてその座標を占有領域内に包含するフレームを捜
し、そのフレーム番号のリストをフレーム1006の第
4フイールドに格納する(411)、この場合、操作1
001時のカーソル位置は第4フレームが表わす要素X
の占有領域内にあり、操作1002時のカーソル位置は
第7フレームが表わす要素Yの占有領域内にあるので、
フレーム1006の第4フイールドには、′4”と“7
”が格納される。
データ表示部101はデータバッファの状態1005で
示される視覚操作スタック303の各フレームを順次取
出し対応する表示をディスプレイ107に対して行なう
。この中で第0〜第8フレームについては筬に述べたの
で第9フレームに対する表示についてのみ説明する。デ
ータ表示部101は第9フレーム1006の第2フイー
ルドが“OP”でありかつ第3フイールドが“5WAP
”であることを判定する(508)と、フレーム100
6の第4フイールドに格納された2つのフレーム番号に
よって示されるフレーム808とフレーム908とに対
する矩形表示に対し、その2つの矩形811,911を
入れ替えて再表示するとともに、2つの矩形811,9
11間を結ぶ矢印1004を表示する(513)。
以上、第10図におけるプログラマの操作とそれに対応
する本実施例のプログラム作成装置の動作について説明
した。
以下では第11図におけるプログラマの操作ならびに対
応する装置の動作について説明する。
第11図は最終の操作を示しており、この中でプログラ
マは、整数データM711と配列Aの5つの部分領域8
10,911,910,811゜912のうちの中央部
分1102とについてこれまで指定してきたプログラム
“PART”の手順を再帰的に繰り返すことを指示して
いる。これにより配列A712は整数M711について
それより小さいものと1M以上のものとに分けられるの
で分割処理が指定できたことになる。具体的操作として
は、プログラマはまず“Next”キー209を押す、
データ操作部102はこの旨を受けとると、シーン番号
を示す内部変数Snoの値に1を加える(415)、次
にプログラマは操作1110゜操作1101、および操
作1102によってアイコン1111と整数Mと部分配
列1106との中にそれぞれカーソルを移動させ“SL
”キー211によりそれらの位置をオペランドスタック
301に格納する。そして“APPLY”キー207を
押す(1111)。データ操作部102はAppty″
207が押されたことを受は取ると、まずテンプレート
データベース105よりType 2テンプレート30
5をコピーし視覚操作スタック303にフレーム110
9として格納する。フレーム1109の第1フイールド
はSnoが“2″になっているので2”が格納される。
次にオペランドスタック301の第1要素に格納された
操作1110時のカーソル位置座標に対し、アイコンリ
スト302内を調べ、その座標を含むアイコンの名前を
探す、この場合アイコン名は“PART”なので第10
フレーム1109の第3フイールドには定数値“PAR
T”を格納する(412)、さらに“Swap”キーの
場合と同様に、オペランドスタックの第2要素以降に格
納された各座標を含む視覚操作スタック303のフレー
ム番号を調ベフレーム1109の第4フイールドに格納
する。この場合、操作1101時のカーソル位置は整数
データM711.すなわち第1フレームに含まれ、操作
1102時のカーソル位置は配列Aの中央部分910、
すなわち第6フレームに含まれる。従って第10フレー
ム1109の第3フイールドには“1”と“6”が格納
される(413)。
データバッファの状態1108における視覚操作スタッ
ク303に対するデータ表示部101の動作は第0〜第
9フレームについては既に述べたので第10フレームに
ついてのみ説明する。データ表示部101は第10フレ
ーム1109の第2フイールドが“Op ”でありかつ
第3フイールドが” P A RT ”であって“5W
AP”でないことを判定(508)L、、まず空き領域
に矩形を表示しその中に第3フィールド値すなわち“P
 A RT ”を表示し、さらにその矩形から第4フイ
ールドに格納されたフレーム番号が示すデータ表示への
矢印を表示する(514)、この場合名前入りの矩形1
103、整数データMへの矢印1104、および部分配
列1106への矢印1105がそれぞれ表示される。ま
た、第10フレーム1109の第1フイールドは“2”
であるのでシーン番号表示領域213には“2”が表示
される(503)。
さらに内部変数Sはそれまで1であったのでシーン番号
が増加したことが判定され(50’4)、これ以前のフ
レーム(第0〜第9フレーム)について、Type 2
テンプレートに対する矢印あるいは名前入り矩形表示を
すべて削除(505,506)し、内部変数Sに第10
フレームの第1フイールドの値を格納する(507)、
この結果矢印1004は削除される0以上第11図の説
明を行なった。
以上で分割処理プログラムPARTを定義し終わったの
でプログラマは定義の終了を示す“End”キー210
を押す。データ操作部は”End”キーを受けとると、
目的プログラム生成部104を起動する。そして目的プ
ログラム生成部104の動作が完了すると視覚操作スタ
ック303および生成された目的プログラムをファイル
106に格納した後スタック303をクリアする(40
4)。
以下では目的プログラム生成部104の動作を第6図の
PADli!!lおよび第11図のデータバッファの状
態1108及び生成された目的プログラム(本実施例で
はプログラミング言語PASCALの記述を生成)を参
照しながら説明する。
目的プログラム生成部104は起動されるとまず内部変
数りに1を初期設定する(601)。
次に第2フイールドが“Dsf“であるフレームすなわ
ち第0フレーム1110を視覚操作スタック303より
取出しその第3フイールドを手続き名として手続き宣言
を生成する0手続きパラメタは視覚操作スタック303
の各フレームのうち。
Type 3またはType 4のテンプレートでかつ
その第6フイールドが“p tlであるものとする。こ
の場合フレーム1111と1112が該当し、それぞれ
整数Mを配列Aなのでこの両者を手続きのパラメタとし
て宣言するPASCALの文1201を生成する(60
2)。
次に視覚操作スタック303のフレームで、Type 
3でかつ第6フイールドが“P”でないものを探し、そ
れらについての宣言文を生成する(603)。
この場合は該当するものはない、同様にType 4で
かつ第6フイールドが“P”でなくかつ第7フイールに
親フレームへのポインタが格納されていないものを探し
、それらについての宣言文を生成する(604)、この
場合やはり該当するフレームはない。
次に視覚操作スタック303のフレームでType4の
ものを探し、その第8.第9フイールドに現われるイン
デクス変数に対する変数宣言文を生成する(605)、
この場合、第3〜第8フレーム1113〜1118にイ
ンデクス変数“工0”および“工1″が現われるので、
IOおよび■1の宣言文を生成する。さらに1作業用の
変数Wと論理変数Eの宣言をスタック303の内容に関
わりなく追加しく606)、結局変数宣言文としては文
1202を生成する。
次に手続きの本体の生成に移る。まず本体の記述が開始
されたことを示すキーワード11 beg x nl1
1204を生成しく607)、以後視覚操作スタック3
03の第1フレームから順に取出して対応するプログラ
ムの文を生成する(608)、取出されたフレームはT
ype 4テンプレートでかつその第5フイールドに条
件が記述されたものであるか。
またはType 2テンプレートであるかが判定され(
609)、これら以外のフレームに対しては文の生成は
行なわれない。
さて第4フレームが条件つきType 4テンプレート
なので目的プログラム生成部104はまず代入文“E 
: =trua ;”1204を生成する(610)。
次に繰り返しを示すfor文を生成する。まずfor文
の組返し指示部分1205を生成する。
但しインデクス変数は第4フレームの第8フイールド、
また繰返しの下限と上限は第10フイールドが“L”な
ので第4フレームの親フレームである第2フレームの第
8フイールドおよび第9フイールドとする(611)、
続いてfor文の本体1206を生成する。本体は条件
判定を行なうif文から成る1判定条件は第4フレーム
の第5フイールドの変数名Xを、親フレームの名前Aと
、第8フイールドの添字名■0を参照しておきかえたも
の、すなわち“p、 (I O) >=M”とする。
if文1206のthen部は論理変数Eへの定数値“
fal+e“の代入文と、ラベルへのgoto文とする
。但しラベルは目的プログラム生成部104の内部変数
りの値とする(612)、for文につづいて終了判定
のためのif文1207を生成する(613)、if文
1207により、前のfor文で条件を満す配列Aの要
素がなかった場合プログラムは終了する。さらに内部変
数りの値のラベル1215を生成して条件つきType
 4テンプレートに対する文生成が完了する。
目的プログラム生慣部104は、第7フレームが次の条
件つきType 4テンプレートであるので、第4フレ
ームと同様に処理し、文1208.1209゜1210
.1211およびラベル1216を生成する。この動作
は第4フレームの処理とほとんど同様であるので省略す
るが、第7フレームの第10フイールドは“R”なので
for文の繰返し指示部1209では上限値と下限値は
、それぞれ親フレームである第5フレームの第9フイー
ルド。
第8フイールドとなる(611)。すなわち第4フレー
ムの場合と逆であることに注意する。
目的プログラム生成部104は次にType 2テンプ
レートである第9フレームを取出し対応する文を生成す
る。第3フイールドは”5vAP”であるので、作業用
変数Wを用いた入れ替えを示す3つの代入文を生成する
。入れ替えるデータは第9フレームの第4フイールドが
示しており、この場合第4フレームと第7フレームによ
って表わされるデータはX(A(10)に等しい)およ
びY (A(工1)に等しい)であるのでこれらを入れ
替える3つの代入文1212を生成する(616)。
目的プログラム生成部104は最後にType 2テン
プレートである第10フレームを取出し対応する文を生
成する。第3フイールドは“PART”であるので手続
きPARTの呼び出し文1213を生成する6手続き呼
び出しのパラメタは第10フレームの第4フイールドに
格納されたフレーム番号が指すフレームが表わすデータ
とする。この場合、第4フイールドに指されるフレーム
は第1フレームと第6フレームでありこれが表わすデー
タは整数Mと部分配列A (IO+1・・・ll−1)
なのでこの2つをパラメタとする(616)。
以上で視覚操作スタック303の全フレームを処理した
ので終了を示す文1214を生成しく61g)目的プロ
グラム生成部104の動作が完了する。
以上1本発明の一実施例であるプログラム作成装置の動
作を分割処理プログラム生成を例として説明した。
本実施例では視覚操作スタック303の結果の状態11
08をファイル106に保存しているが。
これには次のような利点がある。すなわち、スタック3
03の内容を用いて第13図に示すようなシーン番号ご
とのデータと操作の表示をつなぎ合わせたプログラムの
動作内容を図化したフロー図を得られる点である。第1
3図が、データ表示部101とほぼ同じ機構によって視
覚操作スタック303から得られることを明らかであろ
う、第13図を得ることにより、多くの操作を必要とす
る複雑なプログラムの作成もその手順及びデータの変化
が視覚化される。
本実施例では簡単のためあらかじめ用意されたテンプレ
ートを整数、配列等に限定したが、無論これらをリスト
、木、レコードなど種々のデータ構造に拡張することも
容易である。また操作としても本実施例では入れ替えや
転写を中心としたが、これも削除、挿入など他操作も含
めることも容易であり、これら拡張によりプログラム作
成における効率と適用範囲はさらに向上する。
〔発明の効果〕
以上説明したように1本発明によればプログラマはデー
タとそれに対する操作を常に2次元的に視覚化しながら
プログラムを作成できるので、プログラム作成が効率托
される1例えば分割処理プログラムの場合も、第14図
に示した従来のプログラムの視覚化方法であるフローチ
ャートと、本発明の一実施例である装置でのプログラム
作成結果(第13図)とを比較すれば、本発明ではデー
タ構造とその変化が一目瞭然となっている。また配列の
添字や境界条件等も意識する必要がなくなり1条件判定
やくり返しなどの制御構造は自動生成されるのでプログ
ラム作成が容易となる。
【図面の簡単な説明】
第1図は本発明の一実施例のプログラム作成装置の全体
構成図、第2図はディスプレイ、キーボードおよびマウ
スの構成図、第3図はデータ形式を示す図、第4図はデ
ータ操作部の動作を示すPAD図、第5図はデータ表示
部の動作を示すPAD図、第6図は目的プログラム生成
部の動作を示すPAD図、第7〜第11図はプログラマ
の画面操作とデータバッファの変化を示す図、第12図
は目的プログラムテキスト、第13図は本装置より得ら
れるシーンの流れ図、第14図は従来フローチャートを
示す図である。 101・・・データ表示部、102・・・データ操作部
、103・・・データバッファ、104・・・目的プロ
グラム生成部、105・・・テンプレートデータベース
。 106・・・目的プログラム、107・・・ディスプレ
イ、憂 6区 (久ン !/2図 vgr 10.Il:1xteytr;W’:iwre
y明E:boOlean;バー  iλJ2bQ>+に
〜/2−/3 E:=trηe;〜/ユーチ farlo: = I foN do  〜/2−ρS
1チA(/D)ン=イ’l +heyL)qiHE:=
:ノa)se、pto 1;estl;  ”−/−z
4forII:= Ntiowntolρす/ AQ〜
/ユJりfARTOH,Mto+1..1l−r))5
  72Bmf:ed−AJ/zy4 七← 73 図 第14図

Claims (1)

    【特許請求の範囲】
  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 true JPH01121935A (ja) 1989-05-15
JP2585311B2 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5347614A (en) * 1989-10-09 1994-09-13 Hitachi, Ltd. Knowledge processing system structurizing tool
JP2013109675A (ja) * 2011-11-22 2013-06-06 Internatl Business Mach Corp <Ibm> プログラムの生成を支援する装置及び方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 デ−タベ−ス利用によるデ−タフロ−作成方式

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5347614A (en) * 1989-10-09 1994-09-13 Hitachi, Ltd. Knowledge processing system structurizing tool
JP2013109675A (ja) * 2011-11-22 2013-06-06 Internatl Business Mach Corp <Ibm> プログラムの生成を支援する装置及び方法

Also Published As

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

Similar Documents

Publication Publication Date Title
JPS6162170A (ja) 複合文書編集方法
JPH07200278A (ja) 図形を用いたプログラミングシステム
US20080104088A1 (en) Apparatus, method, and program for visualizing boolean expressions
JPH0363756A (ja) 文書編集装置
JPH07219754A (ja) 画面遷移図を用いた要求定義支援装置
JP3288460B2 (ja) 表示データ生成装置及び方法
JPH01121935A (ja) プログラム作成方法
JPH0769913B2 (ja) 文書編集装置
JPH0588863A (ja) プログラム開発支援システム
JP3454987B2 (ja) 文書編集装置及び方法
JPS63109578A (ja) 論理図概要表示処理方式
JP3464343B2 (ja) ドキュメント編集装置
JP2659092B2 (ja) 論理図作成処理装置におけるカーソル表示制御方式
JP2689861B2 (ja) 文書編集装置
JP3674905B2 (ja) 文書編集装置
JP2001051771A (ja) 画像処理システム及び方法
JPS61202230A (ja) ル−ル動作モニタシステム
JPH01298434A (ja) プログラム発生装置
JP2669625B2 (ja) 資源情報表示システム
JPH0317741A (ja) プログラム作成支援装置
JPH07104876B2 (ja) 設計支援方法及び設計支援装置
JPH0365759A (ja) 表の編集処理方式
JPH04199226A (ja) ツール選択起動方法
JP2000112738A (ja) メモリ
JPS61147371A (ja) 会話形図形処理システム

Legal Events

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