JPH10240533A - オブジェクト指向プログラミング言語プログラムテキスト編集用タグジャンプ方法及び編集装置 - Google Patents

オブジェクト指向プログラミング言語プログラムテキスト編集用タグジャンプ方法及び編集装置

Info

Publication number
JPH10240533A
JPH10240533A JP6189897A JP6189897A JPH10240533A JP H10240533 A JPH10240533 A JP H10240533A JP 6189897 A JP6189897 A JP 6189897A JP 6189897 A JP6189897 A JP 6189897A JP H10240533 A JPH10240533 A JP H10240533A
Authority
JP
Japan
Prior art keywords
tag
file
candidates
name
jump
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
JP6189897A
Other languages
English (en)
Other versions
JP3125706B2 (ja
Inventor
Toshio Touchi
敏夫 登内
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP09061898A priority Critical patent/JP3125706B2/ja
Publication of JPH10240533A publication Critical patent/JPH10240533A/ja
Application granted granted Critical
Publication of JP3125706B2 publication Critical patent/JP3125706B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】編集者が意図するジャンプ先を選ぶことができ
るオブジェクト指向プログラミング言語用エディタの提
供。 【解決手段】タグファイル30にはメソッド名とともに
クラス名を記録しておく。タグ切り出し手段20は、オ
ブジェクト間の継承関係を記録した継承関係ファイル3
5も生成する。タグジャンプをおこなうとき、タグ位置
検索手段40はタグファイル30を検索し、複数の候補
を選び出し、候補を継承関係ファイル35を基に、可能
性のあるものだけに絞り込み、タグ候補ウィンドウ70
に表示し、編集者にジャンプ先を選択させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、文書作成編集を行
うエキストエディタに関し、特に、オブジェクト指向プ
ログラミング言語プログラムテキスト編集用のタグジャ
ンプ方法に関する。
【0002】
【従来の技術】この種のタグジャンプは、例えば、文献
(「1994年4月 GNU Toolオンラインマニ
ュアル“etags”」)に記載されるように、Cプロ
グラミング言語などで記述されたプログラムテキストの
見出し語が定義されている箇所を、文書(テキスト)作
成編集用のエディタで即座に表示するための機構であ
る。
【0003】図12は、従来のタグジャンプ機能を具備
したエキストエディタの構成をブロック図にて示したも
のである。図12を参照して、テキストエディタ310
は、プログラムテキスト等を内容とする編集対象のテキ
ストファイルを表示し、編集者の操作に従いテキストフ
ァイルの内容を変更する。テキストファイルは、編集対
象格納手段350に格納されている。テキストエディタ
310は、編集対象ファイルをディスクアクセス手段3
60を通してアクセスする。タグ切り出し手段320
は、ディスクアクセス手段360を通して編集対象ファ
イル格納手段350内のファイルにアクセスし、関数定
義箇所の情報を取り出し、タグファイル330に格納す
る。
【0004】編集者がファイル中における関数名の定義
位置を知りたい場合、タグ位置検索手段340を起動す
る。タグ位置検索手段340は、関数名を基に、タグフ
ァイル330を調べて取得した情報を、テキストエディ
タ310に渡す。
【0005】次に図12に示した従来方式の動作につい
て説明する。編集者は、予め、「etagsコマンド」
に代表されるタグ切り出し手段320を使用し、タグフ
ァイル330を作成しておく。
【0006】タグファイル330は、図13にその内容
の一例を示すように、関数名(図ではfunc())を
キーとし、関数を定義しているファイル名(図ではfi
le.c)と、ファイル内での位置(図では34)を索
けるようになっている。
【0007】編集者が、テキストエディタ310上でタ
グジャンプを行なうと、テキストエディダ310が関数
名を取り出し、タグ位置検索手段340に渡す。タグ位
置検索手段340は、与えられた関数名をキーとしてタ
グファイル330を検索し、該当する関数名を得る。そ
の際、もし、複数個の関数名と一致した場合は、最初に
検索したタグファイルのエントリを得る。
【0008】タグファイル330を検索して取得したエ
ントリからは、関数を定義しているファイル名とファイ
ル内での位置がわかる。テキストエディタ310は、デ
ィスクアクセス手段360を通して、編集対象ファイル
格納手段350にアクセスし、指定ファイルを得、指定
ファイルの指定箇所を画面上に表示する。
【0009】また、例えば特開平4−170638号公
報には、Smalltalk−80、Common L
isp等のオブジェクト指向言語を用いてプログラミン
グを行う際のプログラム編集用エディタとして、メッセ
ージ式を記述する際、そのオブジェクトに対して適用で
きるメソッドをユーザがいちいち検索したりすることな
く、且つキーボードからタイピングすることなく記述で
きるようにするエディタを提供することを目的として、
指定されたオブジェクトのクラスが受信可能なメソッド
の一覧を作成して表示するようにしたオブジェクト指向
プログラミング用エディタが提案されている。
【0010】この上記公報に記載されたエディタは、タ
グジャンブ方法ではないが、メソッドを静的に選びだし
編集者に対して候補を挙げるものであり、プログラムテ
キストを記述している時のメソッド名の文字列補填を図
るようにしたものである。
【0011】
【発明が解決しようとする課題】上記した従来方式は、
下記記載の問題点を有している。
【0012】(1)第1の問題点として、オブジェクト
指向言語では、同じメソッド名に対して、複数のメソッ
ド定義が存在する、ということである。このため、複数
個の同じメソッド名もしくは関数名がある場合、タグジ
ャンプ機構は、編集者が意図する先に、タグジャンプす
ることはできない、という問題が生じる。その理由は以
下の通りである。
【0013】すなわち、オブジェクト言語では、クラス
が異なれば、同じメソッド名のメソッドを定義すること
ができる。しかも、メソッド名とメソッドとの対応関係
は、原理的に、静的に定まらず、動的に定まる。このた
め、プログラムを実際に動作させてみないと、本当のタ
グジャンプ先は定まらない。
【0014】したがって、プログラムを実行する前に作
成したタグファイルでは、一意にジャンプ先を特定する
ことは不可能である。
【0015】例えば、図12に示した従来方式における
「etags」では、複数の同じ関数名がある場合のこ
とを考慮していない。単に、タグファイル内で最初に見
つけた関数の定義にタグジャンプする。この方法では、
編集者が意図する関数定義とは異なる関数定義にタグジ
ャンプする可能性がある。
【0016】(2)第2の問題点として、意味的にタグ
ジャンプ先になり得ないメソッドであっても、メソッド
名が文字列的に同じものもあるため、多くのタグジャン
プ先が現れる、ということである。このため、あり得な
いメソッドもタグジャンプ先の候補として挙がってしま
う、という問題が生じる。その理由は以下の通りであ
る。
【0017】オブジェクト指向言語でのクラス間の継承
問題がある場合以外でも、同じ名前のメソッド名のメソ
ッドが定義できる。オブジェクト指向言語においては、
継承関係にあるクラスの同じ名前のメソッドが起動され
る。そして、継承関係にないクラスのメソッドが起動さ
れることはない。このことを考慮せずに、タグジャンプ
先を選ぶと、結果的に、あり得ないところにタグジャン
プをしたり、多数の候補が現れ編集者を混乱させること
になる。
【0018】例えば図12に示した従来方式において、
「etags」では、タグファイル内を関数名の文字列
を検索している。そのために、継承関係をまったく考慮
していない。
【0019】したがって、本発明の目的は、上記問題点
を解消し、編集者が意図するジャンプ先を選ぶことがで
きるオブジェクト指向プログラミング言語用エキストエ
ディタを提供することにある。
【0020】また、本発明の他の目的は、継承を考慮す
ることにより、無意味なタグジャンプ候補を表示せずに
すみ、ユーザが適切なジャンプ先を選ぶことを可能とし
たオブジェクト指向プログラミング言語用エキストエデ
ィタを提供することにある。
【0021】
【課題を解決するための手段】前記目的を達成するた
め、本発明は、その概要を述べれば、オブジェクトの継
承関係も考慮し、編集者に複数のタグジャンプ先の候補
を示すようにしたものである。
【0022】本発明は、メソッド名、クラス名を含むタ
グファイルに、メソッド名が同一である複数のエントリ
を有することを許し、タグジャンプを行う際に、前記タ
グファイルを参照して複数の候補をウィンドウに表示
し、編集者に、該複数の候補の中からタグジャンプ先を
選択させるようにしたことを特徴とする。
【0023】また、本発明においては、オブジェクトの
継承関係を記憶した継承関係ファイルを参照して、可能
性のある候補だけに絞り込んで前記ウィンドウに表示す
ることを特徴とする。
【0024】本発明においては、前記継承関係ファイル
を参照して、オーバライドされるメソッドを候補の中か
ら削除し、候補の絞りこみを行って、前記ウィンドウに
表示する、ことを特徴とする。
【0025】また本発明においては、前記継承関係ファ
イルを参照し、継承関係にあるクラスのメソッドのみを
候補に挙げることにより、候補を絞り込む、ことを特徴
とする。
【0026】本発明においては、オブジェクトの継承関
係を記憶した前記継承関係ファイルを、前記タグファイ
ルと同時に生成する。
【0027】
【発明の実施の形態】本発明の好ましい実施の形態につ
いて以下に説明する。本発明の実施の形態において、オ
ブジェクトの継承関係も考慮し、編集者に複数のタグジ
ャンプ先の候補を示すようにしたものである。これによ
り、本発明は、メソッドの定義箇所を参照する作業を支
援する。
【0028】より具体的には、本発明の第1の実施の形
態は、タグファイル(図1の30)において、複数のメ
ソッドをエントリとして有することを許し、タグ位置検
索手段(図1の40)は、複数個の候補を、タグ候補ウ
ィンドウ(図1の70)に表示し、編集者に、タグジャ
ンプ先を選択させる。
【0029】これにより、上記第1の問題点として説明
した、同じメソッド名が複数あることによる問題点を解
決している。すなわち、本発明の第1の実施の形態によ
れば、可能性のある複数個の候補を編集者に提示し、編
集者が候補を選択することにより、編集者の意図に対応
したタグジャンプを行うことができる。
【0030】加えて、本発明の第1の実施の形態におい
ては、好ましくは、継承関係ファイル(図1の35)も
生成する。タグ位置検索手段(図1の40)は、この継
承関係ファイルを参照することにより、タグ候補ウィン
ドウに表示するメソッドのうち、サブクラスのメソッド
によりオーバライドされるメソッドを候補から外し、候
補を絞り込むことができる。
【0031】さらに、本発明の第1の実施の形態におい
ては、好ましくは、タグ位置検索手段は継承関係ファイ
ルを参照し、同じメソッド名でも継承関係にないメソッ
ドを候補から外すことにより、候補を絞り込むことがで
きる。
【0032】両者の候補絞り込みにより、編集者は、よ
り少ない候補から、タグジャンプ先を選ぶことができ
る。すなわち、本発明の第1の実施の形態においては、
これら二つの候補絞り込みにより、上記した第2の問題
点を解決している。
【0033】また、本発明の第2の実施の形態において
は、前記第1の実施の形態から、継承関係ファイルを省
いている。これにより、継承関係による絞り込みは行わ
ないが、タグ位置検索手段(図7の240)が高速に処
理ができる。
【0034】また、本発明の第3の実施の形態は、前記
第1の実施の形態において、サブクラスによりオーバラ
イドされるメソッドを候補から外す作業を行わない、よ
うにしたものである。これにより、タグジャンプ先の候
補の数は、前記第1の実施の形態よりも、多くなるが、
タグ位置検索手段(図1の40)が高速に処理ができ
る。
【0035】また、本発明の第4の実施の形態は、前記
第1の実施の形態において、継承関係のないメソッドを
候補から外す作業を行わない、ようにしたものである。
これにより、タグジャンプ先の候補の数は、前記第1の
実施の形態よりも、多くなるが、タグ位置検索手段(図
1の40)が高速に処理ができる。
【0036】本発明は、上記実施の形態で説明したよう
に、タグ切り出し手段は、同じメソッド名であっても、
その情報をクラス名と一緒にタグファイルに出力する。
タグ位置検索手段は、複数の候補をタグ候補ウィンドウ
に表示することで、編集者にジャンプ先を選ばせる。こ
うするのは、前述したように、静的に、正確なタグジャ
ンプ先を求めることは不可能であり、本発明の実施の形
態においては、編集者の意図を質する(すなわち編集者
の選択に委ねる)ことにより、編集者の意図通りのジャ
ンプ先を得ることができるという作用効果を奏する。
【0037】また、本発明は、上記実施の形態で説明し
たように、オブジェクト指向言語でのクラス間の継承関
係を使用することにより、ジャンプ先の候補を絞り込む
ことができ、より少数の的確な候補を編集者に示すこと
ができるという作用効果を奏する。具体的には、2つの
方法によりジャンプ先の候補の絞り込みを行う。その1
つは、同じメソッド名がサブクラスで定義されている場
合、スーパクラスのメソッド定義はオーバライドされて
おり、起動されない。このスーパクラスのメソッドは候
補から外すことができる。
【0038】2つ目の方法は、同じメソッド名でもクラ
スが継承関係にないオブジェクトのメソッドは起動させ
る可能性がない、ことである。
【0039】
【実施例】上記した本発明の実施の形態について更に詳
細に説明すべく、本発明の実施例について図面を参照し
て以下に説明する。
【0040】図2は、本発明の実施例のテキストエディ
タが実装されるシステムの全体構成を示す図である。図
2を参照して、CPU110と、CPU110の指示に
従って画面表示を行う表示手段120と、編集者がCP
U110に対して指示を与えるための入力手段130
と、タグファイルや編集対象ファイルを記録しておく記
憶装置140と、から構成されるシステムを用いて、編
集者は、プログラムテキストを編集する。
【0041】
【実施例1】図1は、本発明の第1の実施例の機能構成
をブロック図にて示したものである。図1を参照する
と、ユーザ(編集者)は、表示手段120上に表示され
たテキストエディタ10を見ながら、編集対象のファイ
ルを編集する。編集対象のファイルは編集対象ファイル
格納手段50に格納されている。ディスクアクセス手段
60を通して編集対象ファイルを、編集対象ファイル格
納手段50への格納・取り出しを行うことができる。
【0042】タグ候補ウィンドウ70は、テキストエデ
ィタ110が生成し、編集者にタグジャンプ先の候補と
してメソッド名のリストを提示する。編集者は、タグ候
補ウィンドウ70が示すメソッドから一つをタグジャン
プ先として選択できる。そうすると、タグ候補ウィンド
ウ70は、テキストエディタ10に対して、編集者が選
択した候補を知らせ、自身は画面から消滅する。
【0043】タグ切り出し手段20は、編集者により、
ファイル群を引数として、起動される。タグ切り出し手
段20は、引数で指示されたファイル群を、ディスクア
クセス手段60を通して、編集対象ファイル格納手段5
0にアクセスし、ファイルの内容であるプログラムテキ
ストを構文解析する。そして、解析した結果を、タグフ
ァイル30と継承関係ファイル35とに記録する。
【0044】タグ位置検索手段40は、編集者が指定し
たメソッド名とオブジェクトの型名とをテキストエディ
タ10から得、タグファイル30と継承関係ファイル3
5とを検索する。検索した結果得られたタグジャンプ先
の候補を、タグ候補ウィンドウ70に提示する。
【0045】編集対象ファイル格納手段50は、記憶装
置140(図2参照)により実現される。また、この記
憶装置140はタグファイル30と継承関係ファイル3
5も格納する。
【0046】図3は、本発明の一実施例におけるタグフ
ァイル30の構成及び内容の一例を示す図である。図3
を参照すると、タグファイル30は、一エントリあた
り、メソッド名、クラス名、ファイル名、行番号の4欄
を有する、表を記録する。各エントリは、メソッド名を
キーとし、メソッドの定義箇所を示す。またクラス名
は、そのメソッド定義を有するクラスである。そして、
その定義箇所を、ファイル名と行番号と、で示してい
る。
【0047】図3に示したタグファイル30において、
例えば、クラス“classA”のメソッド“meth
odA”をファイル“file.c”の30行めに定義
していることを示している。
【0048】タグファイル30は、メソッド名でソート
されている。すなわち、メソッド名をキーとして検索す
ることにより、容易に該当エントリを得ることができ
る。この場合、同じメソッド名のエントリは、連続して
タグファイル30の表中に存在する。
【0049】図4は、本発明の第1の実施例における継
承関係ファイル35の構成及び内容の一例を示す図であ
る。図4を参照すると、継承関係ファイル35におい
て、各エントリには、順番にエントリ番号がふられてい
る。エントリは、エントリ番号と、クラス名と、そのス
ーパクラスのエントリ番号を格納した3つの欄で構成さ
れている。もし、あるクラスが、スーパクラスを有して
いなければ、スーパクラスの欄は空欄であり、また指定
したスーパクラスが継承関係ファイル35内に定義され
ていなければ、不定値(N/A)になる。
【0050】図4に示した継承関係ファイル35におい
ては、例えばクラス“classA”のスーパクラス
は、エントリ番号18のクラス“baseClass”
である。そしてクラス“baseClass”はスーパ
クラスを有しない。
【0051】図5は、本発明の第1の実施例におけるタ
グファイルの生成の処理フローを示す流れ図である。図
1および図5を参照して、本発明の一実施例において、
タグファイルの生成について説明する。
【0052】編集者は、対象となるプログラムファイル
群を指定し、タグ切り出し手段20を起動する。タグ切
り出し手段20は指定されたファイルを構文解析する
(ステップS10)。
【0053】構文解析の結果、ファイル群内で定義して
いるメソッド名を検出する。タグ切り出し手段20は構
文解析の結果を、図3で示すようなタグファイル30に
して出力する(ステップS20)。
【0054】タグ切り出し手段20は、タグファイル3
0と同様に、構文解析の結果を、図4で示すような継承
関係ファイル35として出力する(ステップS30)。
【0055】図6は、本発明の第1の実施例におけるタ
グジャンプの処理フローを示す流れ図である。図1およ
び図6を参照して、本発明の第1の実施例におけるタグ
ジャンプについて説明する。
【0056】編集者は、テキストエディタ10上で、定
義箇所にタグジャンプしたいメソッド名を指定する(ス
テップS110)。例えばファイル“bbb.c”の1
11行めでコールされているメソッド名“method
A”を指定したとする。
【0057】テキストエディタ10は、まだ何もタグジ
ャンプ先の候補を表示していないタグ候補ウィンドウ7
0を、表示手段120上に表示する。
【0058】テキストエディタ10は、現在の編集対象
のファイル名“bbb.c”と、編集者が指定したメソ
ッドの使用箇所111行目とを、タグ位置検索手段40
に教える(ステップS120)。
【0059】タグ位置検索手段40は、指定されたファ
イル“bbb.c”をディスクアクセス手段60を通し
てアクセスする。そして構文解析を行い、指定されたメ
ソッドの名前“methodA”と、そのターゲットで
あるオブジェクトの静的に指定されたクラスの名、例え
ばクラス“classA”を得る(ステップS13
0)。ただし、静的に得られたクラス“classA”
は、実行時のオブジェクトの本当のクラスであるという
保証はない。オブジェクトは、クラス“classA”
のサブクラスであることのみが保証されている。
【0060】タグ位置検索手段40は、与えられたメソ
ッド名“methodA”をキーとし、タグファイル3
0を検索する。検索の結果、該当エントリをみつける
(ステップS140)。ただし、該当エントリは一つと
は限らない。一般に、一つのメソッド名は、複数のエン
トリに対応する。
【0061】この場合だと、タグファイルの“meth
odA”のエントリは、“classA”、“clas
sB”、“baseClass”、“subClas
s”の計4つである。
【0062】次に、取得した複数のエントリのうち、静
的に得られたクラス“classA”のスーパクラスで
定義しているメソッドのエントリを、今後の検索対象か
ら外す。具体的な手順は次の2ステップである。
【0063】第1のステップとして、クラス名“cla
ssA”をキーとして、そのクラスとスーパークラスの
一覧を得る(ステップS150)。継承関係ファイル3
5から、クラス名に対応するエントリを得る。エントリ
のスーパクラス欄を辿っていき、継承上のルートオブジ
ェクトまでスーパクラス欄を辿っていく。この場合、図
4を参照すると、“classA”および“baseC
lass”が得られる。
【0064】第2のステップとして、ステップS140
で見つけたエントリ群から、ステップS150で得たク
ラスの一覧を除く(ステップS160)。ただし、取り
除こうとするエントリのクラスのうち、継承上最下層の
ものだけは、検索対象に残しておく。こうして、ステッ
プS140で見つけたエントリ群を減らすことができ
る。この場合、最下層の“classA”を検索対象と
して残し、“baseClass”を検索対象から外
す。検索対象は“classA”、“classB”、
“subClass”の3つになる。
【0065】ステップS160で、エントリ群の数を減
らした、各エントリについて、以下に説明するステップ
S180からステップS250の処理を行う(ステップ
S170)。
【0066】継承関係ファイル35を使い、エントリが
示すクラスのスーパクラスを検索する(ステップS18
0)。検索の結果得られたスーパクラスがステップS1
30で得たクラス名”classA”と同一であるかを
調べる(ステップS190)。もし、同一ならば(ステ
ップS200のYes分岐)、タグ候補ウィンドウ70
に、エントリの情報を追加表示させる(ステップS22
0)。一方、同一でなければ(ステップS200のNo
分岐)、ステップS190で得たスーパクラスのさらに
そのスーパクラスが存在するかを調べる(ステップS2
10)。さらにスーパークラスがあれば(ステップS2
30のYes分岐)、同じエントリに対してステップS
180を繰り返す。
【0067】エントリについてスーパクラスの検索が終
了した後、ステップS160で得たエントリで、ステッ
プS180〜S230までの処理を経ていないエントリ
がまだ残っているかを調べる(ステップS240)。エ
ントリが残っていれば(ステップS250のYes分
岐)、残ったエントリのうちの一つに対してステップS
170以降の処理を行う。一方、すべてのエントリにつ
いて処理済みならば、ステップS260に進む。
【0068】ステップS180からステップS250の
処理の結果、“classA”と継承関係にない“cl
assB”のエントリは外される。タグ候補ウィンドウ
70には、タグファイルのメソッド“methodA”
のエントリのうち“classA”と“subClas
s”のエントリの情報が表示される。
【0069】編集者は、ステップS160からステップ
S250によりタグ候補ウィンドウ70に表示されたメ
ソッドから望むものを一つ選ぶ(ステップS260)。
例えば、編集者がクラス“subClass”の“me
thodA”を選んだとする。
【0070】タグ候補ウィンドウ70は編集者が指定し
たメソッドに対応したタグファイル30のエントリに書
かれたファイル名を“sub.c”と行番号“63”
(図3参照)をテキストエディタ10に知らせる。テキ
ストエディタ10は指定されたファイル“sub.c”
をディスクアクセス手段60を通じて編集対象ファイル
格納手段50からとりだし、指定された行番号位置63
行を表示する。
【0071】
【実施例2】次に、本発明の第2の実施例について説明
する。図7は、本発明の第2の実施例の機能構成をブロ
ック図にて示した図である。
【0072】図7を参照すると、本発明の第2の実施例
は、図1を参照して説明した継承関係ファイルがなくな
り、これに伴いタグ切り出し手段220が継承関係ファ
イルを生成せず、タグ位置検索手段240が継承関係フ
ァイルを参照しないように構成されている点が、前記第
1の実施例と相違している。
【0073】本発明の第2の実施例の動作について以下
に詳細に説明する。図8は、本発明の第2の実施例のタ
グファイルの生成動作を示すフローチャートである。
【0074】編集者が対象となるプログラムファイルを
1又は複数指定し、タグ切り出し手段220を起動す
る。タグ切り出し手段220は、指定されたファイル群
を構文解析する(ステップS310)。
【0075】タグ切り出し手段220は、構文解析の結
果をもとに、図3のその内容の一例を示したタグファイ
ルを生成する。
【0076】図9は、本発明の第2の実施例におけるタ
グジャンプの動作を示すフローチャートである。図7及
び図9を参照して、本発明の第2の実施例におけるタグ
ジャンプの動作を説明する。
【0077】編集者はテキストエディタ210上で、定
義箇所にタグジャンプしたいメソッド名を指定する(ス
テップS410)。例えばファイル“bbb.c”の1
11行めでコールされているメソッド名“method
A”を指定したとする。
【0078】テキストエディタ210は、まだ何もタグ
ジャンプ先の候補を表示していないタグ候補ウィンドウ
270を、表示手段上に表示する。テキストエディタ2
10は、現在の編集対象のファイル名“bbb.c”
と、編集者が指定したメソッドのメソッド使用箇所11
1行とを、タグ位置検索手段240に教える(ステップ
S420)。
【0079】タグ位置検索手段240は、指定されたフ
ァイル“bbb.c”をディスクアクセス手段260を
通してアクセスする。そして、構文解析し、指定された
メソッドの名前“methodA”の名前を得る(ステ
ップS430)。前記第1の実施例とは異なり、ここ
で、ターゲットであるオブジェクトのクラス名を得る必
要はない。
【0080】タグ位置検索手段240は、与えられたメ
ソッド名を“methodA”をキーとし、タグファイ
ル230を検索する。検索の結果、該当エントリをみつ
ける(ステップS440)。ただし、該当エントリは一
つとは限らない。一般に、一つのメソッド名は複数のエ
ントリに対応する。この例では、タグファイルの“me
thodA”のエントリ(図3のタグファイル参照)
は、“classA”、“classB”、“base
Class”、及び“subClass”の4つであ
る。
【0081】ステップS440で得たエントリの各群に
対して、タグ候補ウィンドウ270にその候補を表示し
ていく(ステップS520)。すべてのエントリが、タ
グ候補ウィンドウ270に表示し終えるまで、追加表示
する(ステップS540、S550)。
【0082】編集者は、タグ候補ウィンドウ270に表
示されたメソッドから望むものを一つ選ぶ(ステップS
560)。例えば、編集者が、クラス“subClas
s”の“methodA”を選んだとする。
【0083】タグ候補ウィンドウ270は、編集者が指
定したメソッドに対応したタグファイル230のエント
リに書かれたファイル名“sub.c”と行番号“6
3”をテキストエディタ210に知らせる。テキストエ
ディタ210は指定されたファイル“sub.c”をデ
ィスクアクセス手段260を通じて編集対象ファイル格
納手段250からとりだし、指定された行番号63行を
表示する。
【0084】この第2の実施例は前記第1の実施例より
も簡易な作業であるため、高速にタグジャンプを行うこ
とができる。しかし、継承関係を考えずにタグ候補ウィ
ンドウにメソッドを表示するため、不必要なメソッドま
で編集者に提示する可能性がある。
【0085】
【実施例3】次に、本発明の第3の実施例について説明
する。本発明の第3の実施例のブロック構成は、図1に
示した構成と同一であるため、説明を省略する。本発明
の第3の実施例の動作を図面を参照して詳細に説明す
る。なお、タグファイル生成に関する本実施例の動作
は、図5に示した前記第1の実施例の動作のと同一のた
め、説明を省略する。
【0086】図10は、本発明の第3の実施例のタグジ
ャンプの動作を示すフローチャートである。図10を参
照して、ステップS610からステップS660までの
処理は、前記第1の実施例の説明で参照した図6のステ
ップS110からステップS260までの動作と同一で
あるため、その説明を省略する。
【0087】ステップS640で得たエントリの群“c
lassA”、“classB”、“subClas
s”に対して、タグ候補ウィンドウ70にその候補を表
示していく(ステップS720)。すべてのエントリが
タグ候補ウィンドウ70に表示し終えるまで、追加表示
する(ステップS740、S750)。
【0088】編集者は、タグ候補ウィンドウ70に表示
されたメソッドから望むものを一つ選ぶ(ステップS7
60)。例えば、編集者が、クラス“subClas
s”の“methodA”を選んだとする。
【0089】タグ候補ウィンドウ70は、編集者が指定
したメソッドに対応したタグファイルのエントリに書か
れたファイル名“sub.c”と行番号“63”をテキ
ストエディタ10に知らせる。テキストエディタ10
は、指定されたファイル“sub.c”をディスクアク
セス手段60を通じて編集対象ファイル格納手段50か
ら指定したファイルをとりだし、指定された行番号63
行を表示する。
【0090】
【実施例4】次に、本発明の第4の実施例について説明
する。本発明の第4の実施例のブロック構成は、図1に
示したブロック構成と同一であるため、その説明を省略
する。
【0091】本発明の第4の実施例の動作について図面
を参照して詳細に説明する。なお、タグ生成に関する本
実施例の動作は、図5を参照して説明した前記第1の実
施例と同一であるため、その説明を省略する。
【0092】図11は、本発明の第4の実施例のタグジ
ャンプの動作を示すフローチャートである。図11を参
照して、ステップS810からステップS840までの
処理は、前記第1の実施例の説明で参照した図6のステ
ップS110からステップS140までの動作と同一で
あるため、その説明を省略する。
【0093】図11を参照すると、ステップS840で
得た各エントリは、“classA”、“class
B”、“baseClass”、及び、“subCla
ss”の4つである。これら4エントリについて、ステ
ップS880からステップS950の処理を行う(ステ
ップS870)。
【0094】継承関係ファイル35を使い、エントリが
示すクラスのスーパクラスを検索する(ステップS88
0)。検索の結果得られたスーパクラスがステップS8
30で得たクラス名“classA”と同一であるかを
調べる(ステップS990)。同一ならば、タグ候補ウ
ィンドウ70にエントリの情報を追加表示させる(ステ
ップS920)。一方、同一でなければ、ステップS8
90で得たスーパクラスのそのスーパクラスが存在する
かを調べる。存在すれば、同じエントリに対してステッ
プS880を繰り返す(ステップS930)。
【0095】エントリについて、スーパクラスの検索が
終了した後、ステップS860で得たエントリでステッ
プS880〜S930までの処理を経ていないエントリ
がまだ残っているかを調べる(ステップS940)。
【0096】もし、エントリが残っていれば、残ったエ
ントリのうちの一つに対してステップS870以降の処
理を行う(ステップS950)。一方、すべてのエント
リについて処理済みならば、ステップS960に進む。
【0097】ステップS880からステップS950の
結果、“classA”と継承関係にない“class
B”のエントリは外される。タグ候補ウィンドウ70に
は、タグファイルのメソッド“methodA”のエン
トリのうち、“classA”と“subclass”
と“baseClass”のエントリの情報が表示され
る。
【0098】編集者は、ステップS860からステップ
S950の処理により、タグ候補ウィンドウ70に表示
されたメソッドから望むものを一つ選ぶ(ステップS9
60)。例えば、編集者が、クラス“subClas
s”の“methodA”を選んだとする。
【0099】タグ候補ウィンドウ70は、編集者が指定
したメソッドに対応したタグファイルのエントリに書か
れたファイル名“sub.c”と行番号“63”をテキ
ストエディタ10に知らせる。エディタ10は指定され
たファイルをディスクアクセス手段60を通じて編集対
象ファイル格納手段50から指定したファイル“su
b.c”をとりだし、指定された行番号63行を表示す
る。
【0100】
【発明の効果】以上説明したように、本発明によれば、
下記記載の効果を奏する。
【0101】(1)本発明の第1の効果は、複数個の候
補が考えられるタグジャンプ先を編集者に候補として示
すことにより、編集者は自らが意図するジャンプ先を選
ぶことができる、ということである。
【0102】その理由は、本発明においては、可能な候
補をすべてタグファイルに登録するように構成している
からである。そのタグファイルを使用し、全候補をウィ
ンドウに表示することにより、編集者は、タグジャンプ
先として可能なすべての候補からジャンプ先を選ぶこと
ができる。
【0103】(2)本発明の第2の効果は、継承を考慮
することにより、無意味なタグジャンプ候補を表示せず
にすみ、ユーザである編集者は、適切なジャンプ先を選
ぶことができる、ということである。
【0104】その理由は、本発明においては、タグファ
イルに加えて、クラス間の継承関係を記述した継承関係
ファイルを作成し、参照することにより、継承関係上候
補となり得ないメソッドを候補から外す、ように構成し
たことによる。
【図面の簡単な説明】
【図1】本発明の第1、第3、第4の実施例の構成を示
すブロック図である。
【図2】本発明の実施例のシステム構成を示す図であ
る。
【図3】本発明の実施例を説明するための図であり、タ
グファイルの構造及び内容の一例を示す図である。
【図4】本発明の実施例を説明するための図であり、継
承関係ファイルの構造及び内容の一例を示す図である。
【図5】本発明の第1、第3、第4の実施例におけるタ
グファイルを生成する処理動作を説明するためのフロー
チャートである。
【図6】本発明の第1の実施例におけるタグジャンプの
処理動作を説明するためのフローチャートである。
【図7】本発明の第2の実施例の構成を示すブロック図
である。
【図8】本発明の第2の実施例におけるタグファイルを
生成する処理動作を説明するためのフローチャートであ
る。
【図9】本発明の第2の実施例におけるタグジャンプの
処理動作を説明するためのフローチャートである。
【図10】本発明の第3の実施例におけるタグジャンプ
の処理動作を説明するためのフローチャートである。
【図11】本発明の第4の実施例におけるタグジャンプ
の処理動作を説明するためのフローチャートである。
【図12】従来のタグジャンプ機能を備えたエディタの
構成を示すブロック図である。
【図13】従来のタグファイルの構造及び内容の一例を
示す図である。
【符号の説明】
10 テキストエディタ 20 タグ切り出し手段 30 タグファイル 35 継承関係ファイル 40 タグ位置検索位置 50 編集対象ファイル格納手段 60 ディスクアクセス手段 70 タグ候補ウィンドウ 210 テキストエディタ 220 タグ切り出し手段 230 タグファイル 240 タグ位置検索位置 250 編集対象ファイル格納手段 260 ディスクアクセス手段 270 タグ候補ウィンドウ 310 テキストエディタ 320 タグ切り出し手段 330 タグファイル 340 タグ位置検索位置 350 編集対象ファイル格納手段 360 ディスクアクセス手段

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】オブジェクト指向プログラミング言語を対
    象としたプログラムテキスト編集用のタグジャンプ方法
    において、 タグジャンプを行う際に、メソッド名が同一である複数
    のエントリを有することを許すタグファイルを参照し
    て、ジャンプ先の複数の候補をウィンドウに表示し、編
    集者に、該複数の候補の中からタグジャンプ先を選択さ
    せるようにしたことを特徴とするタグジャンプ方法。
  2. 【請求項2】同じメソッド名であってもその情報をクラ
    ス名と一緒に前記タグファイルに出力し、前記タグファ
    イルにメソッド名が同一である複数のエントリを有する
    ようにしたことを特徴とする請求項1記載のタグジャン
    プ方法。
  3. 【請求項3】オブジェクトの継承関係を記憶した継承関
    係ファイルを参照して、可能性のある候補だけに絞り込
    んで前記ウィンドウに表示する、ことを特徴とする請求
    項1又は2記載のタグジャンプ方法。
  4. 【請求項4】前記継承関係ファイルを参照して、オーバ
    ライドされるメソッドを候補の中から削除し、候補の絞
    りこみを行って、前記ウィンドウに表示する、ことを特
    徴とする請求項3記載のタグジャンプ方法。
  5. 【請求項5】前記継承関係ファイルを参照し、継承関係
    にあるクラスのメソッドのみを候補に挙げることによ
    り、候補の絞り込みを行う、ことを特徴とする請求項3
    又は4記載のタグジャンプ方法。
  6. 【請求項6】オブジェクトの継承関係を記憶した前記継
    承関係ファイルを、前記タグファイルと同時に生成する
    ようにしたことを特徴とする請求項3記載のタグジャン
    プ方法。
  7. 【請求項7】指示されたファイルについて編集対象ファ
    イルを格納した記憶装置にアクセスし、該ファイルのプ
    ログラムテキストを解析し、解析結果を、メソッド名と
    ともに該メソッド定義を有するクラス名を記録するタグ
    ファイルに記録し、その際、同じメソッド名であっても
    メソッド名及び位置情報をクラス名とともに前記タグフ
    ァイルに出力するタグ切り出し手段と、 タグジャンプを行うとき、前記タグファイルを検索し、
    複数のジャンプ先の候補を選び出してウィンドウに表示
    し、表示された候補の中から、編集者にジャンプ先を選
    択させるタグ位置検索手段と、 を含むことを特徴とする、オブジェクト指向プログラミ
    ング言語プログラムテキスト編集装置。
  8. 【請求項8】指示されたファイルについて編集対象ファ
    イルを格納した記憶装置にアクセスし、該ファイルのプ
    ログラムテキストを解析し、解析結果を、メソッド名と
    ともに該メソッド定義を有するクラス名を記録するタグ
    ファイルと、オブジェクト間の継承関係を記録する継継
    承関係ファイルと、に記録し、同じメソッド名であって
    もメソッド名及び位置情報をクラス名とともに前記タグ
    ファイルに出力するタグ切り出し手段と、 タグジャンプを行うとき、前記タグファイルを検索し、
    複数のジャンプ先の候補を選び出し、該候補を前記継承
    関係ファイルの情報を参照して、可能性のある候補だけ
    に絞り込んでウィンドウに表示し、表示された候補の中
    から、編集者にジャンプ先を選択させるタグ位置検索手
    段と、 を含むことを特徴とする、オブジェクト指向プログラミ
    ング言語プログラムテキスト編集装置。
  9. 【請求項9】オブジェクトの継承関係を保持する継承関
    係ファイルを参照し、オーバライドされるメソッドを候
    補から削除し、候補の絞りこみを行う、ことを特徴とす
    る請求項8記載のオブジェクト指向プログラミング言語
    プログラムテキスト編集装置。
  10. 【請求項10】オブジェクトの継承関係を保持する継承
    関係ファイルを参照し、継承関係にあるクラスのメソッ
    ドのみ候補に挙げることにより、候補の絞り込みを行
    う、ことを特徴とする請求項8又は9記載のオブジェク
    ト指向プログラミング言語プログラムテキスト編集装
    置。
  11. 【請求項11】オブジェクト指向プログラミング言語を
    対象としたプログラムテキスト編集において、タグジャ
    ンプを行う際に、メソッド名が同一である複数のエント
    リを有することを許すタグファイルを参照して、ジャン
    プ先の複数の候補をウィンドウに表示し、編集者に、該
    複数の候補の中からタグジャンプ先を選択させるように
    制御する処理を情報処理装置上で実行させるためのプロ
    グラムを記録した記録媒体。
  12. 【請求項12】同じメソッド名であってもメソッド名及
    び位置情報をクラス名とともに前記タグファイルに出力
    するように制御する処理を前記情報処理装置上で実行さ
    せるためのプログラムを記録した請求項11記載の記録
    媒体。
  13. 【請求項13】オブジェクトの継承関係を記憶した継承
    関係ファイルを参照して、可能性のある候補だけに絞り
    込んで前記ウィンドウに表示するような処理を前記情報
    処理装置上で実行させるためのプログラムを記録した請
    求項11記載の記録媒体。
  14. 【請求項14】前記継承関係ファイルを参照して、オー
    バライドされるメソッドを候補の中から削除し、候補の
    絞りこみを行って、前記ウィンドウに表示するような処
    理を前記情報処理装置上で実行させるためのプログラム
    を記録した請求項11又は13記載の記録媒体。
JP09061898A 1997-02-28 1997-02-28 オブジェクト指向プログラミング言語プログラムテキスト編集用タグジャンプ方法及び編集装置 Expired - Fee Related JP3125706B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP09061898A JP3125706B2 (ja) 1997-02-28 1997-02-28 オブジェクト指向プログラミング言語プログラムテキスト編集用タグジャンプ方法及び編集装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP09061898A JP3125706B2 (ja) 1997-02-28 1997-02-28 オブジェクト指向プログラミング言語プログラムテキスト編集用タグジャンプ方法及び編集装置

Publications (2)

Publication Number Publication Date
JPH10240533A true JPH10240533A (ja) 1998-09-11
JP3125706B2 JP3125706B2 (ja) 2001-01-22

Family

ID=13184434

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09061898A Expired - Fee Related JP3125706B2 (ja) 1997-02-28 1997-02-28 オブジェクト指向プログラミング言語プログラムテキスト編集用タグジャンプ方法及び編集装置

Country Status (1)

Country Link
JP (1) JP3125706B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009009314A (ja) * 2007-06-27 2009-01-15 Digital Electronics Corp エディタ装置、エディタプログラムおよびそれを記録した記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009009314A (ja) * 2007-06-27 2009-01-15 Digital Electronics Corp エディタ装置、エディタプログラムおよびそれを記録した記録媒体

Also Published As

Publication number Publication date
JP3125706B2 (ja) 2001-01-22

Similar Documents

Publication Publication Date Title
JP4876511B2 (ja) ロジック抽出支援装置
JP2005182280A (ja) 情報検索システム、検索結果加工システム及び情報検索方法並びにプログラム
US20080098352A1 (en) User configureable language independent code assist method, system, article of manufacture, and computer program product
KR20100038378A (ko) 지능적인 텍스트 주석을 위한 방법, 시스템 및 컴퓨터 프로그램
JP2006350686A (ja) 命令セット・シミュレータ生成装置及びシミュレータ生成方法
WO2004001570A1 (ja) 自然言語による既存データの記述方法及びそのためのプログラム
JP4001283B2 (ja) 形態素解析装置および自然言語処理装置
US20070083855A1 (en) Method and apparatus to enhance context for specific instances of output text in source files
US7562343B2 (en) User configurable language independent code assist engine method, system, article of manufacture, and computer program product
JP6690828B2 (ja) キーワードに基づくテキスト検索の方法及び装置
JP2000276485A (ja) 電子辞書装置及び電子辞書プログラムを記録した記録媒体
EP0605973A1 (en) Augmenting a lexical transducer by analogy
JP3125706B2 (ja) オブジェクト指向プログラミング言語プログラムテキスト編集用タグジャンプ方法及び編集装置
JPH10149301A (ja) スクリプト作成装置
JP3714723B2 (ja) 文書表示システム
JP4587908B2 (ja) メタデータ生成装置、メタデータ制約定義処理装置およびその制御方法
JP2006343821A (ja) 翻訳支援プログラム、方法及び装置
CN109710844A (zh) 基于搜索引擎的快速准确定位文件的方法和设备
JP3166699B2 (ja) オブジェクト指向プログラム設計支援装置、方法および記録媒体
JP7244756B2 (ja) 分析プログラム、プログラム分析方法およびプログラム分析装置
JP3537260B2 (ja) リンク付文書検索表示システム
JPH07281879A (ja) アプリケーションプログラム編集装置
JPH04281558A (ja) 文書検索方法および装置
JP2724235B2 (ja) 変数名称推論装置
JPS62182913A (ja) ヘルプガイド表示機能付き情報処理装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20001003

LAPS Cancellation because of no payment of annual fees