JPH01118925A - プログラム入力ガイド方法 - Google Patents

プログラム入力ガイド方法

Info

Publication number
JPH01118925A
JPH01118925A JP63102507A JP10250788A JPH01118925A JP H01118925 A JPH01118925 A JP H01118925A JP 63102507 A JP63102507 A JP 63102507A JP 10250788 A JP10250788 A JP 10250788A JP H01118925 A JPH01118925 A JP H01118925A
Authority
JP
Japan
Prior art keywords
program
input
guide
parameter
parameters
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
JP63102507A
Other languages
English (en)
Inventor
Toshihisa Aoshima
青島 利久
Masaaki Kurosu
黒須 正明
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 JP63102507A priority Critical patent/JPH01118925A/ja
Publication of JPH01118925A publication Critical patent/JPH01118925A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野コ 本発明は、多種類の構文や関数参照を伴うブローグラミ
ング言語、あるいは対話型計算機システムのコマンドの
入力を誘導・支援するのに好適な入力ガイド方法に関す
る。
[従来の技術] プログラミングにおいて、既存の関数やサブルーチンの
参照(コール)を表現するとき、その引数の並べ方が重
要である。特にL I S P (ListP roc
essor)のような関数型言語のプログラムは、関数
参照によってプログラムが構成されるので、プログラマ
は、関数毎の構文規則を正しく記憶していないと、誤り
が多発し、プログラミングの生産性を阻害する。特にC
ommon L 工S Pでは、予め処理系に用意され
ている関数だけでも500を越え、パラメタの並びを確
認するために、たびたび言語マニュアルを参照する状況
になっている。
ところで従来の汎用のプログラム入力編集装置(エディ
タ)では、プログラムの構文の入力に対してパラメタの
並びをガイドしたり、現入力のパラメタの並びをチェッ
クする機能はなかった。
プログラム言語の構文のガイド方式に関する代表的な公
知例が、文献T 、 Teitelbaum。
: the Cornell Program 5yn
thesizer (以下cpsと記す) : a 5
yntax directed Programmin
g Environment : Communica
tions of the A CM、Vo124.N
a9.pp、563−573 (1981,9)に紹介
されている。これは、構文の固定パターンの部分とパラ
メタの入力スロットを組にした構文の型紙であるテンプ
レートを提示して、該テンプレートのパラメタ部を順次
埋め込みながら、トップダウン(下向き)に、プログラ
ムを入力する方式である。従って、入力順序に制約があ
り、プログラムの構造の変更を伴う追加・修正の手順が
、複雑となることを、現入力のパラメタ部分をそのまま
生かして、テンプレートの固定部分。
即ち予約語や関数名などを、別の関数名に直接変更する
ようなことはできない欠点を持っている。
具体的に第2図にてCPSの場合の入力ガイドの表示例
と、その入力編集手順の概略を説明する。
第2図(a)の21は、IF構文のテンプレートを表示
したもので1.ifコマンドの入力によって、画面上の
予め定められた場所に表示される。
四角で囲んだ場所22が、IF構文のパラメタの入力ス
ロットであり、パラメタの説明がその場所にガイド表示
されている。文字カーソルは、最初に、第1パラメタの
先頭に位置付けられ、文字の入力によってガイド文字は
消去される。入力スロットの大きさは可変であるが、固
定パターンの部分は位置も内容も変更することはできな
い仕掛けになっている。入力スロットの中に更に新たな
構文のテンプレートを挿入することは可能であるが、第
2図(a)のIF構文を、WHILE構文で直接囲むこ
とはできない。これには、cliplミルコマンドてI
F構文を1度別の場所に退避し。
、dwコマンドでWHILE構文のテンプレートを先に
挿入する。その状態が第2図(b)の23である。次に
文字カーソルを(statement )へ動かした後
、1nsertコマンドで、先に退避したIF構文を挿
入する。その結果が第2図(C)である。
簡単な構文の追加の為に、既に入力の構文を画面上から
退避したり、復帰するためにコマンドを入力しなければ
ならないことはとても煩わしい。このような制約は、C
PSが修正途中のすべての段階で構造の正しさを保証す
ること、及びテンプレートの配置を階層的に記憶してい
るためと考えられる。
もう1つの公知例として、特願昭58−181148“
S式入力方式″に記載のように、LISPプログラムの
特定のタイプの関数の新規入力時に、当該関数の引数の
個数をチェックする方式が知られている。該公知例も、
トップダウンに入力する場合のごく限定した適用範囲し
か考慮されていない。
また別の入力ガイドの公知例として、“オンライン・マ
ニュアル機能”あるいは” HE L P @能″と称
して、対話システムのコマンドやプログラム言語の仕様
等を、コマンド名や関数名、予約語等のプログラム語を
キーとして検索し、画面の別領域に表示するものや、専
用ガイド画面を提示して、指定したプログラム語のパラ
メタのみを入力する入力方法が知られているが、プログ
ラム領域に直接入力した文字列に対して内容をチェック
したり、入力状況に応はた配置(インデンテーション)
や、既入力内容に即したガイドを表示するものではなく
、適用場面と、適用効果は限定されたものである。
[発明が解決しようとする課題] cpsに代表される上記従来技術は、トップダウン的な
プログラムの入力が前提になっており、またガイド表示
した構文の正しさを保証するために、入力や編集の手順
に制約があり、使い勝手が悪いという問題があった。
本発明の目的は、フリーフォーマットのプログラムの入
力環境に、自由度の制限を加えず、入力過程の任意の時
点でプログラムのパラメタの並びをチェックし、正しい
パラメタの効率の良い入力を誘導し、支援するためのガ
イドを表示するプログラム入力ガイド方法及びプログラ
ムの入力方法を提供することにある。
[課題を解決するための手段] 上記目的は、フリーフォーマットの全画面エディタにお
いて、入力されたプログラムの関数名や予置語、または
コマンド(総称して″プログラム言語”と言う)とパラ
メタ(引数)部分を抽出する手段と、各プログラム語ご
とにパラメタのガイド文字、及びパラメタの並びの記憶
ルールを記憶した記法データベースと、該記法ルールと
前記抽出の入力パラメタ(実引数)を照合する手段と、
未入力または不足パラメタに対応するパラメタのガイド
文字を切り出して、入力プログラムの次に入力すべき位
置に挿入表示する手段、挿入ガイド文字を識別するため
に、挿入ガイドの配置位置を、入力プログラムのテキス
トとは別のガイド属性リストに記憶し管理する手段によ
り達成される。
[作用] 入力した構文のプログラム語やパラメタの抽8手段は、
以下に示すように、構文の入力位置、入力の途中、ある
いは入力完了にかかわらず動作する。構文の形式は、ブ
ローグラミング言語の文法によって異なるが、特にLI
SP言語の場合、プログラムは(11*12+13・・
・)のように、リストの要素を左右の括弧で囲んだ形式
で表現される。
特殊の形式の一部の構文を除き、原則として、左括弧の
次の11は関数名、12以降をパラメタと判定できる。
パラメタは、1要素(アトム)の場合と、さらに同様の
リスト形式によって表現され、構文が関数参照の入れ子
となる場合がある。ガイドの対象とする構文の範囲は、
現在の文字カーソル位置と同じ括弧の深さレベルの左括
弧から、対応する右括弧までとし、対応する右括弧が未
入力の時は、現在の文字カーソル位置までの範囲とする
。従って入力途中の構文が対象となりうる。
次に指定された対象範囲から、関数名と個々のパラメタ
の範囲が抽出されたならば、該関数名に対応するパラメ
タのガイド文字と、記法ルールを関数記法データベース
から抽出し、記法ルールと先に求めた実引数の照合によ
り、パラメタの過不足、各パラメタの形式がチェックさ
れる。そして不足のパラメタ部分に対応するパラメタの
ガイド文字をテキストの次に入力すべき位置に挿入する
以上のパラメタのチェックとガイド表示は、プログラム
の先頭から順次入力する新規六方の場合でも、また現入
力部分の編集・更新時にも全く同様に動作する。また前
記関数記法データベースには、処理系に用意されている
すべての関数およびユーザが定義した関数の記法データ
が登録されており、指定した構文の関数が記法データに
ない場合は、該関数名の警告表示によって、関数名のミ
ス・スペルや未定義状態を確認できる。
また、挿入ガイドを含む構文の一部を更新した場合でも
、ガイド位置は別途属性リストに記憶しであるため、再
度、ガイド要求のあった時点に。
旧ガイドは削除して、新たなガイドを挿入することによ
り、ガイドの更新ができる。また挿入したガイド上への
文字の置換入力、挿入したガイドを、の文字に移行する
ことも、該ガイド属性リストの参照と更新により容易に
実現可能である。
[実施例〕 第1図は、本発明のプログラム入力ガイド方法を実現す
るハードウェア構成で、通常のワークスチージョンやパ
ソコンの機器構成と同様である。
第1図11の箱の中にある主記憶には、オペレーティン
グシステムや本発明の入力ガイドを表示するプログラム
群と、入力・編集中のプログラム・データを記憶する。
また11の中には、ハードディスクがあり、現在実行中
でないプログラムやデータを記憶する。12はビットマ
ツプデイスプレィで、入力したプログラムやガイド文字
列を表示する。入力装置は13のキーボードと14のマ
ウスが標準装備されている。キーボードには、プログラ
ムの文字列を入力するキーと、文字カーソルや画面の表
示範囲を移動するキーや、後述する各種ガイド機能を選
択要求するファンクションキーがある。マウスは、ボタ
ンの押下によって、画面上に表示されているメニューや
文字列を、直接指示したり1選択するのに利用する。1
5は、フロッピーディスクをセットする場所で、プログ
ラムやデータを外部記憶として保存する場合に使用する
第3図は、プログラム入力ガイドを表示した画面例であ
る。本人力ガイドはエディタの1機能として実現してい
るため1画面の最上行30には、エディタとしてのヘッ
ダを表示する。第2行目31はメツセージ領域、その下
の広い領域33がプログラム入力・編集領域であり、全
画面(フルスクリーン)エディタの画面構成である。第
3図では、LISP言語のDO構文のパラメタのガイド
を表示しているが、最初、31と32のガイドは表示さ
れていない。ユーザがプログラム入力領域に、左括弧と
’ D O”の文字を入力した後、挿入ガイドの表示要
求である。特定のファンクションキーを押下すると、関
数名Doを抽出し、D。
に対するパラメタのガイド33を、次に入力すべき位置
に表示する本実施例では、プログラムとガイド・パラメ
タを区別できるように別の色または異なる字体で表示す
る。
ガイド表示内容について、初心者には更に説明の表示が
必要かも知れないが、少し慣れた人にとっては、このパ
ラメタの意味は理解可能である。
ここで、ガイド文字中の「・・・・」は、省略可能なパ
ラメタであること、(・・・・)は、0個以上複数個を
意味している。このように特にLISPの関数は、可変
長や省略可能なパラメタをもつものが多く、パラメタの
記述に自由度が多い。従ってそのルールをすべて記憶し
ておくことは難しいため、パラメタのガイドは大変膜に
立つ。
ところで、DOの文字入力後、別の特定のファンクショ
ンキーを押下すると、第3図34のように、プログラム
入力領域とは別の領域に、当該構文の全パラメタ形式の
ガイドを表示する。34の表示文字列の中で、現入力部
分と未入力部分は異なる色または字体で表示している。
なお該間接ガイドの先頭には、構文の種類(LISPに
は、関数、マクロ、スペシャルフオームの区別がある)
を表示している。なお挿入ガイドか間接ガイドかの選択
は、マウスによる選択も可能である。
本実施例は、従来の構文ガイドとは違って、入力したプ
ログラムに対して、構文の範囲と関数名を見つける手段
を含んでいるのでガイドを要求するために9文字カーソ
ルの移行を伴うようなコマンドの入力は不要であり、プ
ログラムの入力途中の任意の時点にガイドを要求するこ
とができる。
また挿入したガイドパラメタ上に文字カーソルを位置付
け、新たな文字をキー人力すると゛、その場所のガイド
パラメタの1つを削除して、実パラメタへの置換を容易
にしている。
第4図(a)は、Do構文の第1パラメタを入力した時
点で、挿入ガイドを要求して表示した例である。パラメ
タの1部分を入力した時点での挿入ガイドは、不足のパ
ラメタのガイドのみを表示する。
第4図(b)のようにDo構文の第2パラメタ入力後、
挿入ガイドを要求すると、Do構文の記法ルールとして
第3引数以降は省略可能となっているので、パラメタの
不足とは判断されず、ガイドパラメタは挿入されない。
本実施例では、余分なパラメタの並びをプログラム入力
領域に挿入しないようにしている。全パラメタの並びを
参照するには、間接ガイドを選択すればよい。同図の4
2が間接ガイドで、未入力部分43は別の色で識別表示
される。
第5図は、パラメタの挿入ガイドを含む構文のプログラ
ム語を現入力のパラメタを残したまま、変更した場合の
表示例である。
本実施例では、構文ガイドの表示のために、入力プログ
ラムを特別なデータ構造に組み立てるわけではないので
、プログラム入力領域中のすべての文字は自由に修正が
可能である。第5図(a)のAPPEND関数のAPP
ENDを直接LISTに書きかえが可能である。これは
汎用のエディタ機能として実現される。次に、ガイド更
新要求を指示すると、同図(b)のように、現入力のパ
ラメタを保持したまま、最新のプログラム語(ここでは
LISTという関数)に対するパラメタのガイドに更新
する。APPEND関数は、パラメタで与えられるリス
トを連結した1つのりスト[第5図(a)の例の結果は
(A−13−C−I)−E−F)]を作成するのに対し
て、LIST関数は、パラメタを要素とするリストを作
成する。[第5図(b)の例の結果は、((A−B、=
C)(D。
E、−F))]このような修正は、たびたび経験するも
のであり、構文ガイドの使用によって、これらの修正の
手間が増大しないことが必須である。
なお本実施例では、ガイド更新要求のキーの押下によっ
て、挿入ガイドを更新するようにしたが、プログラム語
の更新を逐次チェック検出して、自動的にガイドを更新
するような設定も可能である。
第6図は、キーワードパラメタ(:で始まる)を含む構
文のガイド61を表示した例である。配列を作成する関
数MAKE−ARRAYは、配列の次元を指定するパラ
メタdimensionの他に、配列の要求のタイプや
内容等を初期設定する7つのキーワードパラメタを持つ
。キーワードパラメタは、キーワードの一致によって次
のパラメタが解釈され、任意の順序でパラメタを与える
ことができる言語仕様である。挿入したガイド文字列は
、そのままプログラムで利用できるので、キーワードの
入力ミスが防げ、かつ入力の手間を削減する効果がある
。LISPでは、このようなキーワードパラメタを含む
関数が100近く存在する。
第7図は、入力ガイドのもう1つの実施例で、プログラ
ム語に対するパラメタのガイド領域を別領域に設定し、
さらにその領域へのパラメタの入力・修正を可能にした
例である。72で設定したプログラムの1部またはすべ
てを71のプログラム領域に転記することを可能にする
。挿入ガイドによって、既入カプログラムの配置(イン
デンテーション)が変更される心配がないこと、不要な
ガイドパラメタの後始末が楽になること、入力プログラ
ムのインデンテーションをシステムに任せる等の場合に
用いられる。
第8図は、入力ガイドとして、プログラム語のパラメタ
以外をガイドする場合の機能拡張例である。ユーザが同
図81の“ガイド”というメニューをマウスによって指
示すると、82のように展開されたメニューを表示し、
ガイド内容を選択できるようにする。82の各メニュー
に対応する各種のガイドデータをデータベースに用意し
ておき、指定されたプログラム語に対する。指定された
種類のガイドデータを取り出して画面の別領域に表示す
る。特に構文の記述例は、パラメタの並びのガイドだけ
でよくわからない場合に役立つことが多い。1つのプロ
グラム語(例えば関数)で、複数の異なる使い方が存在
するような場合、あるいは初心者が誤まり易い記述例を
表示すれば、目的の記述を表示から見つけることにより
、プログラムの負担が軽減する0本機能を実行する場合
も、ユーザは新たなコマンドを入力する必要はなく、操
作が簡単である。
以上は、特定のキーの押下など、ユーザの要求動作を伴
って、パラメタのガイドを起動するものであったが、以
下に示すように、プログラム入力の過程で、プログラム
語の入力を検知して、ガイドを起動することや、構文や
コマンドの入力完了を示す記号(LISPの場合、右括
弧)を検知して、ガイドを起動することもできる。
第9図は、プログラムの入力の過程で、プログラム語が
入力されたことを検知して、パラメタのガイドを表示す
る例で、LISP言語の場合は、特殊な場合を除き、左
括弧の次がプログラム語であるので、検出が容易である
。同図(a)は文字列“IF−”が入力された直後の画
面の表示例で、IFに対するパラメタ・ガイド91を挿
入する。
次にtest部の入力“(EQL−”が入力されると該
パラメタのガイドを同図(b)92のように挿入する。
次にthen部の入力“(PRINT−”の文字が入力
されたことを検知して、同図(c)93のガイドを挿入
する。同図に示すように、先に提示したパラメタのガイ
ドは、その部分の実パラメタが入力されるまで、次々に
後ろにシフトされ、残っている。
本実施例により、常に次に入力すべき位置に、パラメタ
のガイドが自動挿入されるので、パラメタの入力もれが
なく、特にプログラムの初心者や、教育用として有効で
ある。
本実施例は、ガイド表示のための要求をキー人力するこ
とが不要である利点がある。
第1o図は、プログラムの入力過程で、プログラム語が
入力されたことを検知して、プログラムの入力領域とは
別の領域に該プログラム語のパラメタを間接表示し、以
後、実パラメタの入力に対応して、対応するガイド・パ
ラメタの部分を識別表示する例である。
第10図(a)は、プログラム入力領域に” D 0−
″の文字が入力された直後の画面で101の領域に、D
O構文のパラメタ形式を表示する。次に第1パラメタを
プログラム入力領域に入力し始めると、第1パラメタの
入力完了まで、同図(b)102のように、対応するガ
イド・パラメタ部を識別表示する。同図(c)は、第2
パラメタ入力中の表示で、ガイド・パラメタ103の部
分を識別表示する。本実施例により、現在入力している
パラメタの位置付けを確認しながら、プログラムを入力
できる。
もう一つの実施例は、パラメタの間接ガイド表示におい
て、間接ガイド文字と入力テキストとの対応を表示する
実施例である。
第11図は、IF構文を指定し、その間接ガイドを表示
した画面例で、同図(a)の111の間接ガイド上に文
字カーソル112を置き、対応要素の表示を要求すると
、入力プログラム中の113の範囲を識別表示する。同
図(b)は反対に、文字カーソル115を入力プログラ
ム中に置き、対応するガイドの表示の要求を受け、間接
ガイド114の中の116の範囲を識別表示する。
本機能は間接ガイドを表示するとき、構文の各パラメタ
ごとのテキスト位M(範囲)と1間接ガイドの各パラメ
タごとの位置の対応を記憶し、文字カーソルがどの位置
にあるかを対応表から見つけることにより、実現される
。本機能は、プログラムの構造を把握する場合に特に有
効な手段となる。
次に、第12図において、プログラム構文のパラメタ・
ガイド表示の内部の処理手順を、以下。
第3のDo構文のガイド表示の場合の例で説明する。
プログラムの入力領域にl(D O11を入力した時点
でガイドが要求されると、最初に現在の文字カーソル位
置から、その手前で最も新い左括弧を見つけ構文の先頭
とする。次に該左括弧に対応する同じ括弧レベルの右括
弧を検索する。本例では入力途中のため右括弧はない。
このときは、前記抽出の左括弧から、現在の文字カーソ
ル位置までを当該構文の範囲とする(121)。
次に左括弧の次に位置する文字列をプログラム語(関数
)として解釈する(122)。
次に抽出された関数名がLISPの処理系に定義された
関数であるかをチェックしく123)、未定義関数であ
れば、テキスト中の該関数名をエラーとして識別表示す
る(124)。なお参照するユーザ定義関数は、あらか
じめ定義しておく必要があり、ユーザ関数の定義のとき
、後述の記法データを登録するようにしている。
次に、該構文の各引数(パラメタ)の文字列の範囲を抽
出する(125)。本例では実引数はなしと判定する。
次に関数Doの記法データベースから記法ルールを抽出
する(126)。
第13図は、LISP関数の記法データベースである。
ここには、関数ごとに関数名130、パラメタガイドの
文字列131.記法ルール132、関数の分類133、
関数の出力結果の型134を保持している。記法ルール
132には、パラメタの並び、パラメタの個数、パラメ
タのデータ型の情報を含んでいる。括弧を用いたリスト
形式で、関数名とそのパラメタの並びをLISPのプロ
グラムのように記述しているが、プログラムではなくデ
ータである。パラメタの記述部分において“:LIST
”は、後にリスト形式のパラメタが続くことを意味し、
II m > =Onは、0個以上のパラメタの並びを
意味する。“:OR”は、以降に続くパラメタが選択可
能であることを示し、“: OPT”は、次のパラメタ
が省略可能であることを示す。また、”:LIST”の
存在により、パラメタの型はリスト型であることを示す
。また”TAG” 、”NAME”などの特定の文字は
、該引数がシンボル型であることを意味している。
以上のように、引数の数と並びに加えて、データ型を含
めた本記法ルールの表現方法は、全く独自のものである
。関数の分類データ133は、前述の間接ガイドの先頭
の表示(第3図31の例)に使用し関数の種類によって
パラメタの評価が異なることをプログラムに提示する。
結果のデータ型134は、該関数を用いた構文を、パラ
メタとして指定したとき、上位の関数のパラメタとして
データ型が妥当か否かをチェックするのに使用する。
“ANY”と記述されている場合については、結果の型
をチェックしないことを意味する。
次に前記125で抽出した入力パラメタと、前記126
で抽出した記法ルールを比較照合する(127)。本例
では実引数がないので、パラメタが不足であるというフ
ラグをセットする。
実引数の入力が存在した場合には、前記125で抽出し
た入力パラメタについてパラメタの過不足。
形式の不正を判定し、余分パラメタ、不足パラメタの存
在フラグと該パラメタの文字位置をセットする。LIS
Pのパラメタには必須パラメタ以外に可変長、省略可能
、キーワードのパラメタがある。パラメタの最小個数は
必須パラメタの数とし、それ以下の実引数のとき、パラ
メタの不足と判定する。可変長パラメタがルールに存在
すれば最大個数はチェックしない。なお形式のチェック
は、特殊形式・マクロの構文についてのみ行った。
次にガイド表示要求が間接ガイド要求であれば、第3図
31のように全パラメタのガイド文字列を表示する(1
28)。入力パラメタの照合結果、エラーのフラグが立
っていないときは、当該入力構文を白色表示する。ここ
で不足のパラメタがあり、挿入ガイド表示要求であれば
、挿入ガイド表示を実行する(129)。挿入ガイドは
、パラメタのガイド文字から、未入力部分に対応する文
字列を切出し、該切り出した文字列を、当該構文のパラ
メタ入力位置に、1パラメタごとに改行した位置に挿入
する。
挿入ガイド文字は、特定の色(例えば黄色)で表示する
と共に、後でガイド内容の更新に対応できるように、別
途、ガイドテキストの表示位置と表示属性を記憶してお
く。
また、不正な形式のパラメタについては、該パラメタ部
分を赤色で表示する。
ところで、LISPのような関数型言語においては、関
数のパラメタが、さらに関数となった入れ子の構造にプ
ログラムを記述することが多いが、それらの構文のパラ
メタのチェックを、最も外側の関数についてのみ行う場
合と、指定した構文の内部の全関数について、挿入ガイ
ド処理を再帰的に実行して、−括してパラメタのチェッ
クとその結果の表示を行う場合を選択できるようにした
以上記述した実施例は、LISP言語のプログラムの入
力ガイドに関するものであったが、他の言語に対しても
構文の記法データベースを変更することによって、容易
に適用可能である。
第14図は、最近ワークステーションやパソコンで主流
になっているC言語のプログラム入力ガイドの例で、同
図(a)は、C言語の予約語114 f ljをキーボ
ードから入力した後、挿入ガイドを要求すると141の
ように構文の記述形式を入力プログラムに挿入し、表示
する。挿入された文字列は、入力プログラムの1部とし
て利用することや、その文字列の上に上書きすることも
可能である。Cの言語仕様には30個以上の予約語とそ
の構文の記述ルールが定められており、それらを記法ル
ールとしてデータベースに設定して、ガイド要求にもと
づいて参照する。LISP言語の挿入ガイドと同様、構
文人力の任意の時点にガイドの要求を受けつけ、その時
点の入力パラメタに対応して、ガイド文字を構成する。
同図(b)は、Cのライブラリ関数が入力された時のパ
ラメタのガイド(142)の表示例である。
前記予約語の場合と同様、ライブラリ関数のパラメタの
記法ルールを予めデータベースに記憶しておき、ガイド
要求時に参照する。C言語の場合、継続行でない行の先
頭の文字列は、予約語か関数名の候補として扱う。同図
(b)143には、パラメタのガイド挿入と同時に、同
関数の機能と記述例を同時に表示している。
本発明のプログラム入力ガイドは、プログラミング言語
だけでなく、各種対話システムのコマンドのパラメタ・
ガイドにも適用できる。
第15図(a)は、UNIXコマンドのパラメタガイド
の例である。UNIXのコマンドは、名称−[オプショ
ン・・・・コ [コマンド引数・・・・]の形式からな
る。オプションはマイナス記号“−″が先頭に付き、判
別が可能である。記法ルールには、オプションとして許
されるものと、引数の個数を形式を記憶する。同図15
1は、コマンドcmpに対する全パラメタのガイドであ
るが、パラメタの入力途中で、ガイドを要求することも
可能で、それぞれ入力状況に応じて、次に入力すべき位
置にパラメタのガイドを挿入する。なお同図152には
、同時に該コマンドの機能と関連コマンドを別領域に表
示している。
ところでUNIXのコマンドの解釈実行はシェルとよば
れるプログラムが行うが、同シェルの機能として、シェ
ルスクリプトと呼ばれるコマンドの実行手順を書いたフ
ァイルを作成し、実行することができ、該シェルスクリ
プトの制御文として、C言語に似たいくつかの構文が用
意されている。
これらの構文を支援するガイド挿入例が同図(b)であ
る。制御文の予約語ifを入力した後、ガイド要求によ
って、153のガイド文字列を挿入し表示する。実現の
方法はC言語の場合と同様である。
以上1本実施例により、プログラムの構文やコマンドの
入力途中に、パラメタのガイドを要求すると、その時点
の入力状況に応じて、不足のパラメタをガイドし、誤り
を指摘してくれるので、マニュアルを参照したり、入力
の確認作業の負担が大幅に削減される。
[発明の効果] 本発明によれば、プログラムの構文やコマンドのパラメ
タのガイド表示において、対象の関数名やコマンド名(
プログラム語)を要人力の文字列から抽出できるので、
プログラム入力の任意の時点に、特定のキーの押下だけ
で、ガイドを要求でき、カーソルを移動してコマンドを
入力したりする手間がなく、操作が極めて簡単で、プロ
グラム入力の効率を向上させる。また、パラメタのガイ
ドの文字列を、入力状況に応じて、次に入力すべき位置
に、挿入し、ガイドのためにプログラムを特徴な構造に
再構成するようなことをしないので。
挿入したガイドを、プログラムの1部として利用したり
、削除・移動等の修正が従来通りの手順ででき、入力・
編集の効率がよい。また実パラメタやガイドを含む構文
やコマンドのプログラム語を更新したとき、現入力のパ
ラメタをそのままに、挿入ガイドを更新するできるので
、ガイドを挿入したプログラムの修正も容易である。
また、プログラム入力の任意の時点で、パラメタのガイ
ドを要求でき、現入力のパラメタについては、パラメタ
の個数と形式のチェックができるので、パラメタの入力
前、入力後の両方において、同じ手順で、パラメタのガ
イドとチェックが可能となり、使い勝手が良い。
また本発明は、プログラムの配置の自由度を保証してい
るので、プログラムの初心者から熟練者まで広く利用可
能である。
【図面の簡単な説明】
第1図は本発明を実施するワークステーションの構成を
、 第2図は従来の構文テンプレート方式のガイド例を、 第3図はLISPのDo構文のパラメタの挿入ガイド、
間接ガイドの表、示例を、 第4図は、パラメタ入力途中のガイド表示例を、第5図
は、パラメタとガイド入力後の関数名変更に対する挿入
ガイド更新例を、 第6図は、キーワード・パラメタのガイド表示例を、 第7図は、ガイドに基づく入力領域を別画面領域に設定
表示した例を。 第8図はパラメタ以外の情報のガイドをメニュー選択し
、別画面領域に表示した例を。 第9図は、関数名人力を検出し、逐次挿入パラメタガイ
ドを追加していく例を、 第10図は、プログラムの入力に対応するt間接ガイド
の対応場所の識別表示例を、 第11図は、入力済のプログラムと、間接ガイドの対応
表示例を、 第12図は、構文のチェックとガイドを行う内部の処理
手順を、 第13図は、LISPの関数毎のパラメタのガイド文字
列や記法ルールを記述した記法データベースの内容を、 第14図は、C言語の予約語と関数に対するパラメタの
ガイド表示例を。 第15図は、UNIXのコマンドに対するパラメタのガ
イド表示例を、それぞれ示す図である。 :# 1 図 蓼4 口 滲 5 図 (久) (b) 季 乙 芭 隼 7 口 あ(メl 凹 串 74 口 (b)

Claims (1)

  1. 【特許請求の範囲】 1、計算機のプログラムの入力表示装置において、プロ
    グラムの1構文やコマンドの文字列の入力途中の任意の
    時点に、特定のキーまたはボタンの押下を契機として、
    該入力文字列中のプログラム語(プログラム言語で規定
    されている予約語、関数名及びコマンド名称)を検出し
    、該プログラム語に対するパラメタの記述形式を、入力
    状況に応じた内容でガイド表示することを特徴とするプ
    ログラム入力ガイド方法。 2、第1項記載のプログラム入力ガイド方法において、
    既入力のプログラム語及びパラメタの入力状況に応じて
    、未入力または不足のパラメタをガイドする文字列を、
    次にユーザが入力すべき位置に挿入表示することを特徴
    とするプログラム入力ガイド方法。 3、第2項記載のプログラム入力ガイド方法において、
    挿入ガイドを含むプログラムの1構文または1コマンド
    のプログラム語の変更が発生したとき、既挿入ガイド文
    字列を、最新のプログラム語に対応するガイド文字列に
    更新することを特徴とするプログラム入力ガイド方法。 4、第1項記載のプログラム入力ガイド方法において、
    表示したパラメタのガイド文字列が、プログラムやコマ
    ンドの1部として利用可能であることを特徴とするプロ
    グラム入力ガイド方法。 5、計算機のプログラムの入力表示装置において、入力
    したプログラムからプログラム語を抽出し、該プログラ
    ム語に対するパラメタの記述をガイドする文字列を、プ
    ログラムの入力領域とは別の表示領域に、ユーザの上書
    き、削除等の更新が可能な状態で表示し、更に該ガイド
    文字列の1部またはすべてをプログラム入力表示領域に
    転記する手段を有することを特徴とするプログラム入力
    ガイド方法。 6、計算機のプログラムの入力表示装置において、プロ
    グラム語に対する機能要約説明、プログラム語の詳細仕
    様、プログラム語に対するパラメタの記述形式、プログ
    ラム語の実際の記述例のデータベースを保持し、入力し
    たプログラムから抽出されるプログラム語に対して、前
    記いずれかのガイドを選択して表示する手段を有するこ
    とを特徴とするプログラム入力ガイド方法。 7、計算機のプログラムの入力表示装置において、プロ
    グラムの入力途中に、 プログラム語が入力されたことを検出し、該プログラム
    語に対するパラメタのガイド文字列を、次にパラメタを
    入力すべき位置に挿入表示することを特徴とするプログ
    ラム入力ガイド方法。 8、計算機のプログラム入力表示装置において、プログ
    ラムの入力途中に、 プログラム語が入力されたことを検出し、該プログラム
    語に対する構文またはコマンドの形式を、プログラムの
    入力表示領域とは別の表示領域に表示し、更に実パラメ
    タの入力に対応するガイド・パラメタの位置を逐次識別
    表示することを特徴とするプログラム入力ガイド方法。 9、計算機のプログラムの入力装置表示装置において、 プログラムの構文やコマンドの記述終了を示す区切り記
    号の入力を検知し、次に該プログラムからプログラム語
    を抽出し、次に、該プログラム語に対するパラメタの過
    不足をチェックし、不足のパラメタのガイドを、該プロ
    グラムの入力すべき位置に挿入表示することを特徴とす
    るプログラム入力ガイド方法。 10、計算機のプログラムの入力表示装置において、 プログラムの入力途中での特定のキーまたはボタンの押
    入とその時点の文字カーソル位置から、指定されたプロ
    グラムの1構文またはコマンドのプログラム語と該プロ
    グラム語の入力されたパラメタの文字列を抽出し、更に
    予め保持した該プログラム語のパラメタの記法ルールと
    ガイド文字列を検索抽出し、前記入されたパラメタの文
    字列と、該抽出の記法ルールを比較照合して、未入力ま
    たは不足のパラメタ部分のガイド文字列を、入力プログ
    ラムの入力すべき位置に挿入表示することを特徴とする
    プログラム入力ガイド方法。 11、計算機のプログラムの入力表示装置において、入
    力途中の構文やコマンド、あるいは指定した入力剤の1
    つの構文やコマンドに対するプログラム語とパラメタを
    抽出し、別途記憶した該プログラム語のパラメタの記法
    ルールと照合して、形式の不正なパラメタ、余分なパラ
    メタを識別表示し、不足のパラメタの内容をガイド表示
    することを特徴とするプログラム入力ガイド方法。 12、計算機のプログラムの入力表示装置において、 プログラムの1構文のパラメタがさらに関数である多重
    の関数の記述からなる構文に対して、指定した構文の最
    外殻の関数に対するパラメタの形式のみをチェックし、
    不足や余分・不正のパラメタをガイド表示する手段と、
    各パラメタの引数のチェックを、関数でない要素に至る
    まで再帰的に行って、内部の全関数のパラメタの形式を
    チェックし、ガイド表示する手段を選択できることを特
    徴とするプログラム入力ガイド方法。 13、計算機のプログラムの入力表示装置において、 プログラムの入力表示領域とは別の表示領域に、指定し
    た構文のプログラム語に対するパラメタの記述形式を表
    示し、ガイドパラメタ上に文字カーソルを位置付けたと
    きは、対応するプログラムのパラメタを識別表示し、入
    力プログラムの構文をパラメタ上に文字カーソルを位置
    付けたときは、対応するガイドパラメタを識別表示する
    ことを特徴とするプログラム入力ガイド方法。 14、第1項乃至第13項のいずれか一つに記載のプロ
    グラム入力ガイドを利用してプログラムを生成するプロ
    グラム入力方法。
JP63102507A 1987-07-06 1988-04-27 プログラム入力ガイド方法 Pending JPH01118925A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63102507A JPH01118925A (ja) 1987-07-06 1988-04-27 プログラム入力ガイド方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP16678487 1987-07-06
JP62-166784 1987-11-02
JP63102507A JPH01118925A (ja) 1987-07-06 1988-04-27 プログラム入力ガイド方法

Publications (1)

Publication Number Publication Date
JPH01118925A true JPH01118925A (ja) 1989-05-11

Family

ID=26443225

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63102507A Pending JPH01118925A (ja) 1987-07-06 1988-04-27 プログラム入力ガイド方法

Country Status (1)

Country Link
JP (1) JPH01118925A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9164736B2 (en) 2013-11-11 2015-10-20 Renesas Electronics Corporation Data processing system, input support method, and input support program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9164736B2 (en) 2013-11-11 2015-10-20 Renesas Electronics Corporation Data processing system, input support method, and input support program

Similar Documents

Publication Publication Date Title
KR0125774B1 (ko) 대화형 소프트웨어 애플리케이션내 텍스트 필드의 번역을 용이하게 하기 위한 방법 및 그를 포함하는 데이터 처리 시스템
JP4448881B2 (ja) コンピュータプログラムを発生する方法及びシステム
US5513305A (en) System and method for documenting and displaying computer program code
Meyrowitz et al. Interactive editing systems: Part I
US6115544A (en) Method and system for displaying error messages
US5070478A (en) Modifying text data to change features in a region of text
EP0261845A2 (en) Data processing apparatus for extracting documentation text from a source code program
US20050005239A1 (en) System and method for automatic insertion of cross references in a document
US5982365A (en) System and methods for interactively generating and testing help systems
JP3444948B2 (ja) 文書編集装置および文書編集方法
US20040003349A1 (en) Content segments
JPS6170660A (ja) 機械翻訳システムにおける多義表示・選択方法
JPH01118925A (ja) プログラム入力ガイド方法
US7613709B2 (en) System and method for editing operations of a text object model
Correll Graphite: an extensible rendering engine for complex writing systems
US20040205666A1 (en) System and method for anticipated file editing
WO2024014354A1 (ja) 制御プログラム編集装置、編集方法、およびプログラム
JP2001282773A (ja) 構造化文書編集装置及び、構造化文書編集方法及び記録媒体
JPS5985532A (ja) 文章編集範囲指定方式
JPH08185401A (ja) 文書検索装置
JPH07219946A (ja) 文書作成装置
JP2607976B2 (ja) デバック方式
JP2008033556A (ja) プログラム管理台帳作成システム
JPH1011438A (ja) 単語チェッカ
JPS63101925A (ja) 論理図制御レベル印刷制御方式