JPH0855019A - 視覚的プログラミング方法 - Google Patents

視覚的プログラミング方法

Info

Publication number
JPH0855019A
JPH0855019A JP6188087A JP18808794A JPH0855019A JP H0855019 A JPH0855019 A JP H0855019A JP 6188087 A JP6188087 A JP 6188087A JP 18808794 A JP18808794 A JP 18808794A JP H0855019 A JPH0855019 A JP H0855019A
Authority
JP
Japan
Prior art keywords
data
program
name
display
argument
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
JP6188087A
Other languages
English (en)
Inventor
Seiji Futaki
誠司 二木
Masahiro Tachibana
昌宏 橘
Takayuki Nakano
隆行 仲野
Shoichi Kubo
昭一 久保
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 ULSI Engineering Corp
Hitachi Ltd
Original Assignee
Hitachi ULSI Engineering Corp
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 ULSI Engineering Corp, Hitachi Ltd filed Critical Hitachi ULSI Engineering Corp
Priority to JP6188087A priority Critical patent/JPH0855019A/ja
Priority to US08/510,476 priority patent/US5664129A/en
Publication of JPH0855019A publication Critical patent/JPH0855019A/ja
Pending 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)
  • Document Processing Apparatus (AREA)

Abstract

(57)【要約】 【目的】 プログラムを図式を用いて記述する。ここで
図式の編集を可能とし、また図式からテキスト型のプロ
グラミング言語を生成する。 【構成】 プログラミングで使用するデータを管理する
データテーブルと、データに適用可能な処理を管理する
処理管理テーブルと、初期値が空のプログラムテーブル
を用意しておく。これらのデータを使用して、データを
表示し、このデータに適用可能な処理を表示し、これら
の表示をユーザが選択可能なようにしておく。ユーザが
これを選択することによって、プログラムを図式で表示
し、プログラムテーブルに入力を記録する。処理の間の
データの受け渡しは図式に付随したポート間のデータ共
有を指定することで表現する。最後にプログラムテーブ
ルから目的とするコードを生成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、計算機プログラムの作
成方法に関する。特に図式を用いてプログラムを表現
し、ここからプログラミング言語を生成する方法に関す
る。
【0002】
【従来の技術】計算機システムにおけるプログラム生産
性向上を目的として多くのアプローチが試みられてい
る。その1つとしてプログラミング言語自体を図式化
し、キーボード入力に基づくコーディング作業の負荷を
軽減しようとする試み(視覚的プログラミング方法)も
有効な方法とされている。プログラミング言語の図式化
にも多くの方式が考えられている。そのうちデータとこ
れを操作する処理を併せてノードとし、処理データをノ
ードに付属したポートで表し、ポート間の結線でデータ
の受け渡しを表現する図式は表現能力の高さから多くの
研究がなされ、製品も出荷されている。
【0003】このうち(米)ビジュアルプログラミング
社の製品であり、1988年発行のProceedings Intern
ational Computer Science Conferenceの695ページ
から704ページまでのUsing a Pictorial Representa
tion to Combine Dataflow and Object-Orientation in
a Language Independent Programming Mechanismに記
載されたPrographでは、処理をノードとして表示してい
る。ノード上部と下部には処理の対象となるデータと、
引数データを表すポートがそれぞれ備えられている。こ
こで上部のポートは入力データを表し、下部のポートは
処理の結果加工されたデータを表す。この図式はデータ
を処理によって次々と加工していく、データフロー計算
モデルに適している。そのためPrographは汎用にプログ
ラムをデータフロー型で記述できるようライブラリ、専
用言語が整備されている。
【0004】データフロー型計算モデルに基づく図式プ
ログラムは計測器の制御などの記述に適している反面、
次のような問題を抱えている。すなわち、1つの処理の
出力が別の処理の入力となりこの処理の出力が先の処理
の入力となる、といった無限回の繰り返しを禁止しなけ
ればならない。また処理の実行順序の変更に際し、デー
タの依存関係をチェックする必要がある。これらの問題
はプログラムの内容を変更する、編集操作が難しくなる
ことを意味している。
【0005】
【発明が解決しようとする課題】本発明でも大きな意味
では、図式を用いてプログラムを視覚的に作成すること
を目的とする。ただしこの図式プログラムはデータフロ
ー計算モデルに基づくものではなく、手続き型計算モデ
ルに基づく。このモデルはほとんどのプログラミング言
語で記述可能であり、最も広く使用されている。多くの
計算機のハードウェアはこの計算モデルの処理に最も適
している。
【0006】従って、本発明の第1の目的は、手続き型
計算モデルに基づくプログラムを表す図式を提供しこれ
の入力方法を提供することである。図式では処理の流
れ、データの受け渡しを記述可能とする。
【0007】また入力した図式を編集する手段が必要と
なる。ここでは手続き型計算モデルであるので、データ
の依存関係に無関係に記述可能とする必要がある。従っ
て、本発明の第2の目的は図式プログラムを編集するた
めの方法を提供することである。
【0008】また、本発明の第3の目的は、図式から通
常プログラマが用いるテキスト型プログラミング言語に
よる記述を生成することである。プログラマは生成され
たプログラムを用いて図式では記述しきれない部分の追
加を行うことができる。
【0009】
【課題を解決するための手段】本発明を実現するために
は、主記憶装置内にプログラミングを支援する、制御プ
ログラムを設ける。この制御プログラムはユーザプログ
ラムの作成を支援する。以下に先に示した課題を解決す
るためにこの制御プログラムが備える手段を述べる。こ
のプログラムは表示装置を3つの領域に分割して使用す
る。ここではそれぞれをデータ名表示域、処理名表示
域、プログラム編集域と呼ぶ。
【0010】ユーザプログラムで使用するデータを識別
するデータ識別子とデータ型そのデータの名前とを含む
データレコードを管理するデータテーブルをあらかじめ
用意する。また処理識別子とデータ型とそのデータ型に
適用可能な処理名と、処理の引数型、返値型とを含む処
理情報レコードを管理する処理管理テーブルをあらかじ
め用意する。また作成するプログラムを構成するステッ
プである、データとそれに適用する処理、引数データ、
返値データを記述するステップ情報を管理する、初期値
が空のプログラムテーブルを用意する。
【0011】プログラミングをその名前を指定して開始
した後、はじめにデータテーブルに記載のあるすべての
データ名一覧をデータ名表示域に表示する。そしてこの
データ名を選択可能とする。(ステップ(1)) 選択されたデータ名からデータレコードを取得し、この
中のデータ型を取得する。このデータ型を含む、処理管
理テーブル内のレコードを取得する。このレコード群は
選択されたデータ型に適用可能な処理群である。この処
理群の名前を取得し、処理名表示域に表示する。そして
この処理名を選択可能とする(ステップ(2))。
【0012】次に処理名が選択されると、データと処理
が選択されたことになり、ここからユーザプログラムの
1ステップを表すステップ情報を作成することができ
る。ステップ情報のうち、引数と返値はここでは新規デ
ータとしておく。ステップ情報を、データ名と処理名、
引数の数を明らかにして図式化する。この図式をプログ
ラム編集域内に追加する。またプログラムテーブルにも
追加する。図式内には選択によってデータ、引数、返値
をあらわすよう表示された領域を設ける(ステップ
(3))。データや引数、返値のうちユーザプログラム
内で共有するものを指定する。この指定は図式内のデー
タ表現を選択することで行う。共有指定されたものは結
線等で表示する。(ステップ(4))。
【0013】ステップ(1)から(4)までをユーザプ
ログラムの作成終了まで繰り返すことで、図式とプログ
ラムテーブル内に記述が追加されていく。ユーザプログ
ラムの作成終了となった時点で、プログラムテーブルか
ら1つずつステップ情報を取りだし、これを順次実行す
るユーザプログラムをあらわすコードを生成する。(ス
テップ(5))。
【0014】
【作用】ステップ(1)から(4)までを実行すること
で、ユーザプログラムを表す図式を入力することができ
る。このステップ図式はデータとこれに適用する処理を
中心とし、引数データ、返値データも判別できる。ステ
ップ間のデータ共有は結線等によって表示される。結線
も含めた図式はプログラムテーブル内の情報と等価であ
る。これらによって、プログラムを表す図式を提供し、
これを入力する手段を提供するという第1の目的を達成
している。
【0015】ステップ情報の追加、削除、データ共有関
係の変更はプログラムテーブルの構成からステップ情報
レコードの追加、削除によって実現できる。ここでデー
タフロー型計算でのように、データの依存関係を編集時
に調べるといったことは必要ない。これによって第2の
目的を達成している。最後にプログラムテーブル内のス
テップ情報から通常のプログラミング言語によるコード
を生成することで、図式と等価なプログラムを生成する
ことができる。これによって第3の目的を達成してい
る。
【0016】
【実施例】以下、図面を用いて本発明の1実施例を説明
する。図2は本実施例で使用するハードウェアを含めた
システム構成である。ハードウェア資源としては、ディ
スプレイ装置200、主記憶装置120、CPU装置2
11、マウス装置121、キーボード装置122を使用
する。このうち本発明に固有の要素は主記憶装置120
内に記憶されるプログラミング制御プログラム100で
ある。このプログラムが先のハードウェア資源を制御
し、本発明で示すプログラム作成方法を実現する。また
このプログラムはディスプレイ装置200内にプログラ
ミングインタフェース画面201を表示する。この画面
はプログラム編集域202、データ名表示域203、処
理名表示域204を備えており、この画面内でのユーザ
操作からユーザプログラムを生成する。
【0017】図1にプログラミング制御プログラム10
0の内容を示す。このプログラム作成方法で前提となる
データ構造としてはデータテーブル101、処理管理テ
ーブル102、プログラムテーブル103がある。これ
らのデータを用い、右に示したプログラムのステップを
ユーザ指示を受けながら実行することで、最終的にプロ
グラムのコード104を生成する。
【0018】以下、実際にユーザがプログラムを作成す
る手順に従い、例を用いてプログラミング制御プログラ
ムの動作を説明する。図7から図12までが実際の操作
例を示したものであり、この操作によってプログラムコ
ードが生成される。また図13は生成されるコードであ
る。図14から図19まで、図1で示した各処理の詳細
を示す。
【0019】この例で作成対象とするプログラムは、あ
らかじめ作成されているユーザインタフェース画面のふ
るまいを記述するものである。この画面を図3に示す。
画面の中には、ある企業の事業部の一覧を表示するリス
ト画面D02がある。また下部にはテキスト画面D04
がある。またラベルが2つ表示用に備えられている。こ
こでD02、D04などはこれらをシステム内で一意に
あらわす識別子である。 この例ではユーザがリストD
02中の1項目をマウスで選択した場合のふるまいをプ
ログラミングする。この選択によってテキスト画面D0
4に、リスト内で選ばれた事業部の所在地を表示するよ
うにする。このプログラムでは特定の事業部の住所や電
話番号の情報を持つ、図4に示す企業データベースente
rpriseDBにアクセスする。このデータベースのデータ
識別子はD05である。このデータベースは3つのレコ
ード(家庭電器、ソフトウェア、システム)を持ち、各
レコードは事業部名を表すDevisionフィールド
401と、住所を表すADDRESSフィールド401
と、電話番号を表すTelNoフィールド403を備え
る。プログラムはこのデータベースに事業部名文字列
と、文字列”ADDRESS”または”TelNo”を
指定することで必要な情報を得ることができる。
【0020】図1に示すように、プログラミングが始ま
る以前にデータテーブル101と処理管理テーブル10
2はあらかじめその内容が設定されている。この例題に
おけるデータテーブル101の内容を図5に示す。デー
タテーブル101は識別子であるデータIDフィールド
500、データ型フィールド501、データ名フィール
ド503を持つレコードを管理するテーブルである。こ
こでは図3と図4で示した5つのデータを表すレコード
(D01からD05まで)が格納されている。例えばデ
ータIDがD02のレコードは、データ型がListで
あり、データ名がlistPartであることを示して
いる。
【0021】この例題における処理管理テーブルの内容
を図6に示す。このテーブルは処理IDフィールド60
0、データ型フィールド601、処理名フィールド60
2、第1の引数のデータ型フィールド603、第2の引
数のデータ型フィールド604、返値のデータ型フィー
ルド605を持つレコードを管理するテーブルである。
ここで処理IDはレコードを一意に表す識別子である。
個々のレコードは記載されたデータ型に適用可能な処理
の仕様を表している。ここでいう仕様とは、処理名と2
つまでの引数型と返値型である。例えばデータベース
(DB型)の検索処理Searchは処理IDがS03
であり、この処理がDB型のデータに適用可能なことを
示している。引数は2つ必要でそれぞれ文字列型(St
ring型)であり、返値も文字列型である。
【0022】プログラムテーブル103はプログラミン
グ開始時には空である。その構造は、処理対象となるデ
ータIDフィールド710、処理管理テーブル内のレコ
ードを識別する処理IDフィールド711、第1引数デ
ータIDフィールド712、第2引数データIDフィー
ルド713、返値のデータIDフィールド713を持つ
レコードを管理するテーブルである。各レコードは生成
するプログラムを構成する個々のステップを表してい
る。また生成されるソースコードも初期値は空であり、
ここにコード文字列をプログラムが追加していく。
【0023】プログラミングは、図7の(1)で指され
た「開始」と表示されているボタンをマウスで選択する
ことによって開始される。開始時には別にプログラムの
名前をシステムから問い合わせ、これにユーザが答える
ことによって、(2)で指された領域にプログラム名が
表示される。この例でのプログラム名は"OnListSelect"
である。このプログラムはリストをユーザが選択した際
に実行するようにも指定しておく。この指定に関しては
本発明には特に関係しないのでその手順については述べ
ない。また、(1)で選択したボタンの表示を、「終
了」に変更する。このボタンは後でプログラム作成の記
述を指示する際に再び使用する。
【0024】プログラミングが開始されると図1のデー
タ表示処理110が実行される。その実行後のプログラ
ミングインタフェース画面201を図7上部に示す。こ
の画面は図2で示したようにプログラム編集域202、
データ名表示域203、処理名表示域204から構成さ
れている。さらにプログラム編集域202はプログラム
図式表示域700、ローカルデータ表示域701から構
成されている。
【0025】"OnListSelect"プログラムの内容は次の通
りである。すなわち、listPartから選択された
文字列(事業部名)を選択し(ステップ1)、この事業
部の住所をenterprizeDBから取得し(ステ
ップ2)、取得した住所をinfoPartに表示する
(ステップ3)。生成すべきプログラムコード(C++
言語で記述)は、図13の1303で示した部分であ
る。このコードは実際にこれからの手順によってシステ
ムが作成するものである。
【0026】データ表示処理110の詳細を図14に示
す。まずデータテーブル101内のすべてのデータ名を
データ名表示域203に一覧表示する(ステップ140
0)。本実施例では結果として、図7のデータ表示域2
03に示す表示が行われる。またこの一覧をユーザが選
択できるよう、選択によって処理一覧表示処理111を
起動するよう処理登録する(ステップ1401)。この
時点でのプログラムテーブル103の内容を図7の下部
に示す。先に述べたように、このテーブルの初期値は空
であり、まだ何も追加されていない。
【0027】データ名がマウス装置で選択されると、処
理一覧表示処理111を起動する。この選択を図8の
(1)で示す。処理一覧表示処理111の実行によって
この選択データ(listPart)に適用可能な処理
名の一覧を図に示すように表示する。この処理の詳細を
図15に示す。
【0028】ます処理管理テーブルからユーザが選択し
たデータ型(List型)を持つ処理レコード群を取得
する(ステップ1500)。この場合は図6からLis
t型を持つレコードはS01だけである。次に処理レコ
ード群中の処理名を処理名一覧表示域に表示する(15
01)。この場合はGetSelectedStringが表示され、こ
の結果図8の処理名表示域に示す表示が行われる。また
この一覧をユーザが選択できるよう、選択によってステ
ップ図式表示処理112を起動するよう処理登録する
(ステップ1502)。
【0029】処理名がマウス装置で選択されると、ステ
ップ図式表示処理112を起動する。この選択を図8の
(2)で示す。ステップ図式表示処理112によって選
択データ(listPart)に選択された処理(GetS
electedString)を施すステップをユーザプログラムに
追加することを指示したことになる。この処理の詳細を
図16に示す。
【0030】まず先に、ユーザが選択したデータIDと
処理IDを取得する(ステップ1600)。これはそれ
ぞれ図中の(1)と(2)で選択したものであり、その
識別子はD02とS01である。次にデータ名領域、処
理名領域、返値領域を備えたノード図式(800)をプ
ログラム図式表示域700に追加する(ステップ160
1)。またこのノード図式にデータポート、引数ポー
ト、返値ポートを追加する。引数ポートの数は処理管理
テーブルの該当レコードに記載されている。ここでは引
数はString型のものが1つである。
【0031】次にデータ名領域にデータ名(listP
art)を、また処理名領域に処理名(GetSelectedStr
ing)を表示する(1603)。この結果、図8に示す
プログラム図式表示域700の表示となる。またこのノ
ード図式内の各領域、ポートをユーザが選択できるよ
う、選択によってデータ関連表示処理113を起動する
よう処理登録する(ステップ1604)。
【0032】次にプログラムテーブル103に新しいレ
コード810を追加する。このレコードのデータIDと
処理IDは先に取得したものであり、それぞれD02と
S01である。また引数1のデータIDを新規作成し、
D06とする。返値のデータIDも新規作成し、D07
とする。これらのデータは処理管理テーブル内にそれぞ
れString型であることが明記されているため、こ
のデータ型とする(ステップ1605)。
【0033】これまでの記述例でlistPartデー
タに、GetSelectedString処理を施すことを入力した。
ただしデータの受け渡しについてはまだ指定していな
い。これはデータ受け渡しには複数の処理が必要となる
ためである。したがって、この記述例でデータ関連表示
処理以前の段階までに、もう1ステップ記述することと
する。すなわち図1で示すところのデータ関連表示11
3はここでは何も実行しない。またプログラムの記述を
まだ続けるため、再びデータ表示処理110に戻る。
【0034】2番目のステップは、enterprizeDBデー
タの住所検索処理である。この処理には先にlistP
artから取得した事業所文字列を引数ととるため、デ
ータ関連の指定が必要となる。ここまでの記述経過を図
9に示す。(1)で示したデータ名がマウス装置で選択
され、これによって表示する(2)で示す処理一覧(こ
こではSearch)がマウス装置で選択される。これ
によって先の例と同様にしてプログラム図式表示域70
0にenterprizeDBの処理のノード図式900を追加す
る。プログラムテーブル103にも新しいレコード91
0を追加する。ここまでにデータ表示処理110、処理
一覧表示処理111、ステップ図式表示処理112を実
行した。次に1番めのステップと2番目のステップとの
データ受け渡しを指定するユーザ操作を受けて、データ
関連表示処理113を実行する。 図10にデータ関連
指定のためのユーザ操作を示す。ここでは(1)で示し
た引数ポートをマウス装置で選択し、次に(2)で示し
た引数ポートをマウスで選択した。これらによってそれ
ぞれデータ関連表示処理が起動される。この詳細を図1
7に示す。概略は、はじめの選択データと次の選択デー
タを同じものとし、それぞれのポート間を結線で表示す
る。
【0035】まず(1)の選択操作によるデータ関連表
示処理について図17を用いて説明する。この処理では
新選択データIDと旧選択データIDの2つのデータを
ローカルに使用する。両データの初期値は空である。は
じめにユーザが選択したデータIDをこのうちの新選択
データとIDとする(ステップ1710)。ここでは、
(1)で示される引数ポートはデータIDがD06であ
るので、新選択データはD06となる。
【0036】この時点で旧選択データは初期値のままの
空であり(1711の分岐判断)、また新選択データI
Dのデータ型はString型である(1712の分岐
判断)。したがって、ローカルデータ表示域701から
の入力を可能とする(ステップ1713)。この入力は
文字列をキーボードから直接入力するためのものであ
る。入力するかどうかはユーザに任せてある。この場
合、listPartからの事業所を表すデータの取得
であるので、直接入力は行わず入力を空とする。このた
め次の条件判定で入力が空であるため(1714の分岐
判断)、旧選択データを新選択データと同じD06とす
る(ステップ1716)。ここまでが(1)で示された
引数ポートをマウスで選択した際のデータ関連表示処理
である。ここまででは表示に変化はおこらない。
【0037】次に(2)の選択操作によるデータ関連表
示処理について図17と図18を用いて説明する。これ
までの処理で旧選択データはD06となっている。新選
択データIDは(2)で示された引数ポートのデータI
Dである、D08となる(図9下のプログラムテーブ
ル、第2レコードの第1引数を参照する)。今回は旧選
択データIDが空ではないので(1711の分岐判
断)、プログラムテーブル内の新選択データID(D0
8)の出現をすべて旧選択データID(D06)に書き
換える(ステップ1715)。この結果プログラムテー
ブル103の内容を図10の1010で示すとおりに書
き換える(ステップ1800)。
【0038】次に同一データを表すポート間を結線で表
示する(ステップ1801)。この結果図10の結線が
表示される。そして旧選択データを空に戻す(ステップ
1802)。
【0039】2番目のステップの第1引数の指定に引き
続き、第2引数の指定も行う。
【0040】enterprizeDBのSearch処理の第2
引数には文字列を直接入力によって指定する。この場合
のユーザ操作を図11を用いて示す。ユーザは(1)で
示された引数ポートを選択し、データ関連表示処理11
3が開始される。新選択データIDを指定されたポート
の表すデータIDのD09する(ステップ1710)。
旧選択データIDは空であり(1711の分岐判断)、
新選択データIDのデータ型はString型であるの
で(1712の分岐判断)、ローカルデータ表示域から
の入力を可能とする(1713の分岐判断)。
【0041】この場合はデータの直接入力を行うため、
ユーザはローカルデータ表示域701にキーボードか
ら”Address”と直接入力操作をする。このため
ローカルデータ表示域への入力は空でないので(171
4の分岐判断)、図11下に示すようにプログラムテー
ブル内の新選択データ(D09)の出現を入力された文
字列に書き換える(ステップ1716)。この結果を1
110に示す部分が書き換える。
【0042】3番目のステップはinfoPartに対
する文字列出力処理である。この処理の入力はこれまで
の説明したとおりに行う。すなわちデータ表示処理11
0で表示されたデータ名を(1)で選択し、処理一覧表
示処理111で表示された処理名を(2)で選択してノ
ード図式1200をプログラム図式表示域700に追加
する。この処理で表示する文字列は2番目の処理のデー
タベース検索で得られる結果であるので、この文字列を
第1引数に指定する。このために(3)で示される引数
ポートを選択し、引き続いて(4)で示される引数ポー
トを選択する。この結果データ関連表示処理113は選
択された引数ポート間の結線を行う。
【0043】また、プログラムテーブルには1210で
示すレコードが追加される。ここまでの操作で"OnListS
elect"プログラムの記述が完成した。これを明示するた
めには、ユーザは(5)で示した「終了」と表示されて
いるボタンをマウスで選択する。これによってシステム
には記述が終了したことが通知され(図1−114の分
岐判断)、コード生成処理115が起動される。なお、
選択された「終了」ボタンはこれによって再び表示を
「開始」と変更する。これによってコード生成処理の終
了後に再びプログラミングを開始することができる。
【0044】コード生成の経過を図13に示す。(1)
(2)(3)という順序で生成されていく。この処理の
詳細を図19を用いて説明する。ここで生成対象とする
言語はC++言語である。この処理で使用するデータ構
造は生成するコード104である。この初期値は空とし
ておく。
【0045】はじめに、プログラム名を記述したテンプ
レートコードを作成する(ステップ1900)。この部
分を図13の1300に示す。これによって必要最小限
のプログラムの体裁を整える。次にプログラムテーブル
内に記載されたデータで、データテーブルに記載のない
データの変数宣言を記述する(ステップ1901)。こ
の部分を図13の1301に示す。ここではデータテー
ブルに記載のあるものは、システム内で一意に識別でき
るため、外部変数として参照できる。またデータ名はデ
ータテーブルの名前の記載通りである。データテーブル
に記載のないものは個々のステップで使用するためのも
のであり、ローカル変数として使用する。ステップ19
01はこのローカルデータの生成を行うものである。図
12下の最終的なプログラムテーブルのうち、データテ
ーブルに記載のないものはD06、D07、D10、D
11である。これらのデータ型は処理管理テーブルに記
載されている。String型のものがD06とD11
であり、Boolean型のものがD07とD10であ
る。
【0046】以下はプログラムの本体部分の記述とな
る。プログラムテーブル103に記載された3つのレコ
ードが対応する3つのステップとなる。はじめに作成す
るコードの追加位置にポインタを置く(ステップ190
2)。ここでは図13の1301で示した変数宣言の後
にポインタを置く。プログラムテーブルの未処理のレコ
ードが3つあるので(1903の分岐判断)、この未処
理レコードを取得する(ステップ1904)。これは図
12下のプログラムテーブル103の#1のレコードで
ある。データIDからデータ名を取得し(D02からl
istPart)、処理IDから処理名を取得し(S0
1からGetSelectedString)、第1引数IDを名前とす
る(ステップ1905)。
【0047】データ名と処理名からステップを表すコー
ド文字列を作成する。C++言語の場合、返値データを
はじめにおき、対象となるデータ(オブジェクトのイン
スタンス)を次に、処理名を次に、引数をその次におい
てその間をそれぞれの意味を持つ区切り文字で接続す
る。#1レコードの場合、この文字列は図13の130
2で示した部分のはじめのように生成される。この文字
列をコード内のポインタ位置に挿入し、最後にポインタ
位置を進める(ステップ1906)。ステップ1904
から1906をプログラムテーブル103に未処理のも
のがなくなるまで(1903の分岐判定)繰り返して生
成されたコードが図13の1303に示した部分であ
る。これが最終的な生成コードである。
【0048】本実施例では引数にString型のもの
だけを扱っていなかったため、異なるデータ型の共有を
指定することはありえなかった。しかし、整数型と文字
列型のデータ共有などはプログラムの意味上、不可能と
するのが通常である。その意味で、データの共有を指定
された時点で、2つのデータが共有可能かどうかを確認
し、共有可能でない場合にはこれを禁止するステップを
追加することでこの内容を実現できる。このステップは
データ共有表示処理17のステップ1800に付加する
ことで実現することが考えられる。
【0049】さらに、本発明では、引数データをシステ
ムによって新規作成することによって、ユーザによる共
有の指定がないものを、ユーザに明示するものである。
これによってユーザは未指定のものを認識することがで
き、これを中心にデータ共有の指定を進めることができ
る。実現のためには、ステップ図式表示処理中に、新規
作成された引数ポートの色を明るくすることが考えられ
る。
【0050】また、本発明では、プログラミングの対象
となるデータをユーザインタフェース画面に適用する。
整数や文字列や構造を持ったデータは通常目に見えるも
のではない。しかし、インタフェース画面は本質的に目
に見える形で存在するため、本発明のデータ表示処理の
特別な場合であると考えることができる。実現として
は、インタフェース画面の要素をマウス装置で選択した
イベントに対し、これに適用可能な処理を一覧表示する
という処理を対応づけて登録することが考えられる。
【0051】
【発明の効果】本発明によれば、テキスト言語による記
述に比較して了解性の高い、図式によるプログラムを作
成することができる。このプログラムからは、テキスト
言語のプログラムが生成され、これを他で作成したテキ
ストベースのプログラミング言語と結合することができ
る。プログラムを構成する個々のステップの入力は、イ
ンタフェース画面に表示されたデータや処理を選択でき
る。これによってユーザのキーボードのタイプや、デー
タ名や処理名を正確に記憶しておく負担が軽減される。
【0052】個々のステップを本発明のノード図式で表
現することで、データと処理、引数を明確にすることが
できる。ステップで使用したデータ、引数を別のステッ
プで使用することもできる。データフロー型計算と異な
り個々のステップが他のステップと独立しているため、
データ依存のチェックが不要であるため、図式の編集が
容易である。
【0053】さらに、本発明の構成によれば、ユーザが
プログラム内で生成するデータの名称や、コーディング
にあたってのインデントなどはシステムが決定してい
る。このためプログラムを表すコードの表現が標準化さ
れるという効果もあらわれる。
【図面の簡単な説明】
【図1】本発明で特徴となるプログラミング制御プログ
ラムである。
【図2】ハードウェアを含めたシステム構成である。
【図3】実施例で記述対象となるインタフェース画面で
ある。
【図4】実施例で記述対象となるデータベースである。
【図5】データテーブルの例である。
【図6】処理管理テーブルの例である。
【図7】プログラミングの実行例(1)である。
【図8】プログラミングの実行例(2)である。
【図9】プログラミングの実行例(3)である。
【図10】プログラミングの実行例(4)である。
【図11】プログラミングの実行例(5)である。
【図12】プログラミングの実行例(6)である。
【図13】記述例によって生成されるコードである。
【図14】データ表示処理のアルゴリズムである。
【図15】処理一覧表示処理のアルゴリズムである。
【図16】ステップ図式表示処理のアルゴリズムであ
る。
【図17】データ関連表示処理のアルゴリズムである。
【図18】データ関連表示処理のアルゴリズム(つづ
き)である。
【図19】コード生成処理のアルゴリズムである。
【符号の説明】
100:プログラミング制御プログラム、200:ディ
スプレイ装置、120:主記憶装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 橘 昌宏 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 仲野 隆行 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内 (72)発明者 久保 昭一 東京都小平市上水本町5丁目20 番1号 日立超エル・エス・アイ・エンジニアリン グ株式会社内

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】表示装置と、入力装置と、主記憶装置と、
    CPU装置とを有する計算機システムを用いたプログラ
    ム作成方法において、 (1)プログラムで使用するデータを識別するデータ識
    別子と、前記データのデータ型と、前記データの名前と
    を含むデータレコードを管理するデータテーブルから取
    り出したデータ名一覧を表示装置の第1の表示領域内に
    表示し、かつ該表示を入力装置によって選択し、 (2)入力装置を介して選択されたデータの名前に基づ
    いて選択データのデータ型を取得し、該データ型に適用
    可能な処理名の一覧を、処理識別子とデータ型と該デー
    タ型に適用可能な処理の名前と処理の引数となるデータ
    型と戻り値型を含む処理情報レコードを管理する処理管
    理テーブルから取得し、該処理名一覧を表示装置の第2
    の表示領域内に表示し、かつ該表示を入力装置によって
    選択し、 (3)入力装置を介して選択された処理名と、前記
    (2)のステップで取得したデータ型に基づき、処理管
    理テーブルから処理情報レコードを取得し、選択された
    データ名、処理名、引数データとを含むステップ情報を
    図式化したステップ図式を表示装置の第3の表示領域内
    に表示し、かつステップ図式を構成する要素を入力装置
    によって選択し、 また初期値が空であり、データ識別子とこれに適用する
    処理の識別子と引数データ識別子、返値データ識別子を
    含むステップレコードを管理するプログラムテーブル
    に、前記(2)のステップで取得した選択データ識別子
    と、選択処理識別子と、引数データ識別子と、返値デー
    タ識別子とから構成されるステップレコードを加え、 (4)入力装置を介して複数選択されたステップ図式内
    の構成要素から対応するデータ識別子を取得し、プログ
    ラムテーブル中の該選択データの出現を同一データに書
    換え、表示装置内の第3の表示領域内に同じであること
    を示す表示を行い、 (5)(1)から(4)までのステップをプログラム作
    成の終了まで繰り返し、作成が終了した際には、プログ
    ラムテーブルを参照してここからプログラムを表すコー
    ドを生成することを特徴とする視覚的プログラミング方
    法。
  2. 【請求項2】前記ステップ(3)において、ステップ図
    式をデータ名と処理名、戻り値を表示するノード、また
    該ノード上部にデータと引数の数だけの引数データと戻
    り値データを表すポートとが付随するものとすることを
    特徴とする請求項1記載の視覚的プログラミング方法。
  3. 【請求項3】前記ステップ(4)において、同一データ
    であることを表す表示をデータ表示間の結線で表すこと
    を特徴とする請求項1記載の視覚的プログラミング方
    法。
  4. 【請求項4】前記ステップ(4)において、同一データ
    であることをユーザが指定可能なデータ識別子を、同じ
    データ型のものに制限することを特徴とする請求項1記
    載の視覚的プログラミング方法。
  5. 【請求項5】前記ステップ(4)において、同一データ
    であることをユーザが指定する場合、そのデータがキー
    ボード入力によって直接入力が可能な場合には、該デー
    タに対しキーボード入力したデータを共有することを可
    能とすることを特徴とする請求項1記載の視覚的プログ
    ラミング方法。
  6. 【請求項6】前記ステップ(14)において、プログラ
    ムコードを生成する際、引数あるいは戻り値にデータ共
    有が指定されていない場合には、生成するプログラムコ
    ードにおいて入力データを作成することを特徴とする請
    求項1記載の視覚的プログラミング方法。
  7. 【請求項7】前記ステップ(14)において、プログラ
    ムコードを生成する際、引数あるいは戻り値にデータ共
    有が指定されていない場合には、未指定であることを表
    す表示を行うことを特徴とする請求項1記載の視覚的プ
    ログラミング方法。
  8. 【請求項8】前記ステップ(4)において、表示するデ
    ータ名に加えて、プログラミング対象となっているユー
    ザインタフェース画面をそのまま併せて表示し、(5)
    で選択するデータとして、該ユーザインタフェース画面
    内の要素をあらわすデータも含めることを特徴とする請
    求項1記載の視覚的プログラミング方法。
JP6188087A 1994-08-10 1994-08-10 視覚的プログラミング方法 Pending JPH0855019A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP6188087A JPH0855019A (ja) 1994-08-10 1994-08-10 視覚的プログラミング方法
US08/510,476 US5664129A (en) 1994-08-10 1995-08-02 Visual programming method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6188087A JPH0855019A (ja) 1994-08-10 1994-08-10 視覚的プログラミング方法

Publications (1)

Publication Number Publication Date
JPH0855019A true JPH0855019A (ja) 1996-02-27

Family

ID=16217482

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6188087A Pending JPH0855019A (ja) 1994-08-10 1994-08-10 視覚的プログラミング方法

Country Status (2)

Country Link
US (1) US5664129A (ja)
JP (1) JPH0855019A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000322295A (ja) * 1999-05-12 2000-11-24 Nec Corp データベースストアドサブプログラム用プログラミング支援方法ならびに装置

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909214A (en) * 1996-11-04 1999-06-01 International Business Machines Corp. Method and system for drop guides for visual layout in Java layout managers
US6055369A (en) * 1997-05-06 2000-04-25 Hitachi Software Engineering Co., Ltd. Apparatus for visual programming with screen flow
US6268852B1 (en) * 1997-06-02 2001-07-31 Microsoft Corporation System and method for facilitating generation and editing of event handlers
US6243092B1 (en) * 1997-12-02 2001-06-05 Aspect Communications Transaction flow editing tool
US6225998B1 (en) 1997-12-02 2001-05-01 Aspect Communications Visual design of workflows for transaction processing
US6286129B1 (en) * 1997-12-02 2001-09-04 Aspect Communications Method and apparatus for compiling transaction processing workflows
DE19915135A1 (de) 1998-03-27 1999-11-04 Nec Corp Verfahren zur Erzeugung einer Verknüpfungshinweis-Datei und Tool/Instrument dafür
US6246403B1 (en) * 1998-10-08 2001-06-12 Hewlett-Packard Company Method and apparatus for generating a graphical user interface
DE19907328C2 (de) * 1999-02-20 2002-10-24 Johannes Reichardt Verfahren und System zur visuellen Programmierung
US7221377B1 (en) 2000-04-24 2007-05-22 Aspect Communications Apparatus and method for collecting and displaying information in a workflow system
US7739325B1 (en) 2000-04-24 2010-06-15 Aspect Software, Inc. Apparatus and method for extensible real-time workflows
US7406515B1 (en) * 2000-06-27 2008-07-29 Aspect Communications System and method for automated and customizable agent availability and task assignment management
US6751522B2 (en) * 2000-08-30 2004-06-15 Kabushiki Kaisha Topcon Lens layout setting apparatus for lens grinding process and display apparatus for the same
US7017123B2 (en) * 2000-12-27 2006-03-21 National Instruments Corporation Graphical user interface including palette windows with an improved search function
US7058899B2 (en) * 2001-06-20 2006-06-06 National Instruments Corporation System and method for creating a graphical program based on a pre-defined program process
US8671213B2 (en) 2002-03-14 2014-03-11 Citrix Systems, Inc. Methods and apparatus for generating graphical and media displays at a client
US7376695B2 (en) * 2002-03-14 2008-05-20 Citrix Systems, Inc. Method and system for generating a graphical display for a remote terminal session
CA2466253A1 (en) * 2004-05-04 2005-11-04 Ibm Canada Limited - Ibm Canada Limitee Display of enlarged visual container graphical user interface (gui) components during gui layout or design
US7437355B2 (en) * 2004-06-24 2008-10-14 Sap Ag Method and system for parallel update of database
US10216372B1 (en) 2004-12-06 2019-02-26 The Mathworks, Inc. Automatic import to a graphical model
US8365086B2 (en) * 2005-05-03 2013-01-29 The Mathworks, Inc. System and method for building graphical instrument panels
JP2007086875A (ja) * 2005-09-20 2007-04-05 Fuji Xerox Co Ltd 多層ワーク支援装置、多層ワーク支援方法及びプログラム
US20090273605A1 (en) * 2006-02-27 2009-11-05 Norihiko Takebayashi Operation Checking Method in Information System, Operation Checking Program Therefor, Recording Medium, and Operation Checking System
USD667425S1 (en) * 2011-09-12 2012-09-18 Microsoft Corporation Display screen with graphical user interface
US10212056B2 (en) * 2015-11-17 2019-02-19 Microsoft Technology Licensing, Llc Graph node with automatically adjusting input ports
JP6843817B2 (ja) 2018-11-21 2021-03-17 日本電子株式会社 質量分析装置、ガスクロマトグラフ質量分析装置及び焼き出し電流制御装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0683297A (ja) * 1992-09-03 1994-03-25 Ricoh Co Ltd 表示制御装置およびその表示制御方法
US5485600A (en) * 1992-11-09 1996-01-16 Virtual Prototypes, Inc. Computer modelling system and method for specifying the behavior of graphical operator interfaces
US5325533A (en) * 1993-06-28 1994-06-28 Taligent, Inc. Engineering system for modeling computer programs

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000322295A (ja) * 1999-05-12 2000-11-24 Nec Corp データベースストアドサブプログラム用プログラミング支援方法ならびに装置

Also Published As

Publication number Publication date
US5664129A (en) 1997-09-02

Similar Documents

Publication Publication Date Title
JPH0855019A (ja) 視覚的プログラミング方法
US5495567A (en) Automatic interface layout generator for database systems
JP3272281B2 (ja) データアイテム表示方法及び表示装置、データアイテムの表示を制御するプログラムを格納した記憶媒体
JP3441309B2 (ja) 図的プログラミングにおける機能オブジェクトの表示方法
US6348934B1 (en) Method for enabling rapid modification of a display controlled by a computer program
US8010530B2 (en) Presentation of multilingual metadata
JPH07200278A (ja) 図形を用いたプログラミングシステム
KR19980702170A (ko) 통신네트워크 데이터베이스 구축 방법 및 장치
US5781905A (en) Program generating method combining data item part with database manipulation part
JPH1185880A (ja) ワークフローシステム開発支援方法
JP2007219649A (ja) ダイヤグラム編集装置
JP3294691B2 (ja) オブジェクト指向システム構築方法
JPH06214842A (ja) データベースアクセス許容方法
JP3373129B2 (ja) プログラム開発支援方法
JP2003186670A (ja) データベースアクセスコンポーネントの自動生成装置,自動生成方法及び自動生成プログラム
JPH0588863A (ja) プログラム開発支援システム
JPH04257973A (ja) 設計支援装置及び設計支援方法
JPH10232769A (ja) クラス追加支援方法
JPH0954688A (ja) Gui設計支援方法
JP2001134423A (ja) 対話型既存システムを利用する新システムの画面情報出力方法
JPH02162463A (ja) 工程ネットワーク作成支援装置
JPH0430230A (ja) 電力系統の設備データベース管理方式
JPH09114895A (ja) 業務処理実行支援システムの構成方法
Olsen Jr et al. Automatic generation of interactively consistent search dialogs
JPS63214831A (ja) ワ−クステ−シヨンにおけるフアイルの管理方法

Legal Events

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