JPS63170742A - 共通文字列検索処理装置 - Google Patents

共通文字列検索処理装置

Info

Publication number
JPS63170742A
JPS63170742A JP62002317A JP231787A JPS63170742A JP S63170742 A JPS63170742 A JP S63170742A JP 62002317 A JP62002317 A JP 62002317A JP 231787 A JP231787 A JP 231787A JP S63170742 A JPS63170742 A JP S63170742A
Authority
JP
Japan
Prior art keywords
identification number
character string
character strings
hash function
common
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
JP62002317A
Other languages
English (en)
Other versions
JPH07113894B2 (ja
Inventor
Yukihiko Nishina
仁科 幸彦
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP62002317A priority Critical patent/JPH07113894B2/ja
Publication of JPS63170742A publication Critical patent/JPS63170742A/ja
Publication of JPH07113894B2 publication Critical patent/JPH07113894B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概 要〕 計算機のコンパイラ等の処理において、共通文字列の検
索能力を向上する処理方式である。
文字列のハツシュ関数値によって、文字列の識別番号を
第1のテーブルに順次分類し、同一関数値に分類される
文字列が2個あると、各識別番号に対応する項を持つ第
2のテーブルの、一方の識別番号に対応する項と第1の
テーブルの項とに、他方の識別番号を置(。以上の操作
を全文字列について行うと、第2のテーブルには、共通
文字列のチェインが構成される。
この方式により、共通文字列が示されると共に、連続す
る2以上の文字列の列の共通列を容易に識別できる結果
が得られ、共通列の検索が高速化される。
〔産業上の利用分野〕
本発明は、計算機におけるコンパイラ等の処理において
、共通文字列を検索するための処理方式計算機で実行さ
れるプログラムを生成する、いわゆるコンパイラの処理
における、目的プログラムの最適化処理等において、共
通の命令を検出して、冗長部分の有無をチェックする等
のために、命令の文字列を走査して、共通文字列を検索
する処理がある。
〔従来の技術〕
第3図は、公知の計算機のいわゆる機械語プログラムの
命令列の文字列表現の例である。図の1行の文字列がそ
れぞれ1命令に対応し、命令の左側の■、■等は、処理
上で各命令に付与する識別番号を示すものとする。
このような命令の文字列の並びから、共通の文字列(同
じ命令)を検索する場合には、例えば各命令の文字列か
ら適当なハツシュ関数によって値を求め、ハツシュ関数
値によって、同値の命令を先ず検索し、同一ハツシュ関
数値を持つ命令について、各命令の文字列の一致を検査
することにより、共通文字列を検出する。
この場合のハツシュ関数としては、例えば文字列の各文
字を構成するビット列を、バイトごとに整数とみて、1
文字列内の全バイトの和をとり、それを適当な整数で割
った剰余を用いる。
第3図の命令列について、このようにして求めたハツシ
ュ関数値が、図の各命令の右側に示すような値であると
すると、コンパイラは例えば命令■のハツシュ関数値が
「1」であるので、各命令のハツシュ関数値を順次走査
して、「1」のものを探索することにより、命令■を検
出する。
そこで、命令■と■の文字列を比較し、両文字列が一致
することにより、この対を共通文字列の命令と識別する
この命令は公知のように、処理装置の第2レジスタの内
容を第3レジスタにロードする命令の例であり、このよ
うな場合にコンパイラは、例えば次のような処理をする
即ち、命令■と命令■の間にある命令を調べて、第2レ
ジスタの内容を変更するような命令が有るか検査し、も
しそのような命令が無ければ、命令■は命令■に対して
冗長な命令と判断して適当な最適化の処置をする。なお
、図の例の場合には、この判定によって命令■は冗長で
はないと判断される。
〔発明が解決しようとする問題点〕
前記のような処理のために、共通文字列を検索する場合
において、第3図の命令■〜■の命令列と■〜■の命令
列のように、命令列として共通な文字列を容易に検出す
ることができれば、以後の処置を例えば命令列を一括し
て行うことにより、効率よく処理できる場合がある。
しかし、前記のようなハツシュ関数値を走査する検索で
は、そのような命令列間の共通性を検出することが困難
であるという問題があった。
〔問題点を解決するための手段〕
第1図は、本発明の構成を示すブロック図である。
図は文字列データ1を入力として処理する共通文字列検
索部2の構成を示し、3はハツシュ関数値に対応する項
からなるハツシュテーブル、4は文字列の識別番号に対
応する項からなる識別番号テーブル、5はハツシュテー
ブル3と識別番号テーブル4を使って文字列データ1の
共通文字列チェインを識別番号テーブル4に生成する検
索処理部である。
〔作 用〕
検索処理部は、文字列データ1の各文字列を識別番号順
に1文字列づつ取り出し、その文字列の所定のハツシュ
関数としてハツシュ関数値を求める。
ハツシュテーブル3の、求めたハフシュ関数値の項を見
て、識別番号が記入されていなければ、そこへ現処理中
の識別番号(現識別番号)を書き込む。
その項に既に識別番号が記入されていれば、識別番号テ
ーブル4の、その識別番号の項に現識別番号を書込み、
又ハツシュテーブル3の項も現識別番号に書き換える。
以上の処理を文字列データ1の全文字列について実行す
ると、識別番号テーブル4の各項に記入された識別番号
と、その項に対応する識別番号の両文字列が、ハツシュ
関数値を同じくする共通文字列を示し、又記入された識
別番号をポインタとしてチェインされる各識別番号の文
字列も共通である。
又、前記のような、連続する文字列の並びの共通列の場
合には、識別番号テーブル4上で連続する項に、連続す
る識別番号が記入されることになる。
〔実施例〕
第1図において、ハフシュテーブル3は後述の処理によ
り文字列から求めるハツシュ関数値がとり得る値の数だ
けの項を有し、例えばハツシュ関数が前記従来の説明の
例のような場合に、剰余を算出するための除数を例えば
97にすれば、剰余はθ〜96の整数であるので、ハフ
シュテーブル3は97項からなる。
識別番号テーブル4は、文字列データ1の文字列に対応
する項を有し、文字列データ1が例えば第3図に例示し
たものであれば、識別番号テーブル4は識別番号■〜[
相]に対応する10項が必要である。
第2図は検索処理部5の処理の流れを示す図である。処
理の開始において、処理ステップ1oでハツシュテーブ
ル3と識別番号テーブル4の全項を、各項の記入の有無
が識別できるように、適当な値に初期設定する。
次に処理ステップ11で文字列データ1の先頭から1文
字列を取り出し、その文字列からハツシュ関数値を計算
する。ハツシュ関数の計算機能は検索処理部5に組み込
まれ、例えば前記の例のようなハツシュ関数計算を行う
ものとする。
処理ステップ12でハフシュテーブル3の、今求めたハ
ツシュ関数値の項にアクセスし、その項に識別番号が記
入されているか判定する。この判定は、例えばハツシュ
テーブル3の全項が識別番号の最大値より大きな値に初
期設定することにより容易に判定できる。
初めての項であれば直ちに処理ステップ14に進み、そ
の項に現識別番号を記入し、処理ステップ15で文字列
データ1の全文字列を処理したか識別し、未処理があれ
ば処理ステップ11に戻って次の文字列の処理に入る。
処理ステップ12で、ハツシュテーブル3の項に、既に
識別番号が書き込まれていると判定した場合(即ち同じ
ハツシュ関数値をとる文字列が既に少なくとも1つあっ
た場合)には、処理ステップ13に進んで、その項に書
かれている識別番号を読み、識別番号テーブル4のその
識別番号の項に、現識別番号を記入する。
次に処理ステップ14に進むので、ハツシュテーブル3
の項も現識別番号に書き換えられる。
以上のようにして、全文字列を処理したことを処理ステ
ップ15で識別すれば処理を終了する。
第4図は、第3図の命令文字列データを処理する場合の
、ハツシュテーブル3及び識別番号テーブル4の状態を
示す図である。
命令■の文字列のハツシュ関数値が「1」であるので、
その処理の結果第4図(a)に示すようにハツシュ関数
値「1」に該当する項に識別番号■が記入され、同様に
命令■、■、■の文字列の処理により、各ハフシュ関数
値に応じた項に識別番号が記入される。
次の命令■の文字列を処理すると、ハフシュ関数値がr
lJであるが、ハツシュテーブル3の該当項には前記の
ように識別番号■が既に入っているので、識別番号テー
ブル4の識別番号■に対応する第1項に識別番号■を記
入し、ハツシュテーブル3の項も識別番号■に書き換え
る。
命令■及び■の文字列も同様の処理のケースとなり、そ
の結果両テーブルの内容は第4図(b)のようになる。
次の命令■、■の文字列の処理では、ハツシュテーブル
3のみに識別番号が記入されるが、最後の命令[相]の
文字列はハツシュ関数値が再び「1」であるので、前記
と同様にして識別番号テーブル4の識別番号■に対応す
る項に識別番号[相]を記入し、ハツシュテーブル3の
項は識別番号■を[相]に書き換えて、第4図(C)の
結果を得る。
こ\で、第4図(C)の識別番号テーブル4を見ると、
第1項に識別番号■があることにより、識別番号■と■
が共通文字列であることが知られ、更に識別番号■をチ
ェインポインタとして、第5項を読むと、識別番号[相
]が書かれているのでこの文字列も共通文字列であり、
識別番号[相]をポインタとして第10項を読むと、識
別番号が記入されていないので、チェインの終わりが識
別できる。
このようにして、識別番号■と■と[相]、識別番号■
と■、識別番号■と■の文字列が、それぞれ共通文字列
であることが、識別番号テーブル4から知られる。
又、識別番号テーブル4の連続する第1〜3項に、同様
に連続する識別番号■〜■があることから、識別番号■
〜■の文字列の並びと■〜■の並びとが、共通列をなす
文字列の並びであることを容易に識別することができる
〔発明の効果〕
以上の説明から明らかなように、本発明によれば、計算
機のコンパイラ等の共通文字列検索処理において、文字
列ごとの共通文字列の対応及び連続する2以上の文字列
の並びの共通列を容易に識別できる結果を高速に得るこ
とができるという著しい工業的効果がある。
【図面の簡単な説明】
第1図は本発明の原理構成ブロック図、第2図は本発明
の処理の流れ図、 第3図は文字列データ例を示す図、 第4図は識別番号テーブル等の説明図 である。 図において、 1は文字列データ、  2は共通文字列検索部、3はハ
ツシュテーブル、4は識別番号テーブル、5は検索処理
部、   10〜15は処理ステップを示す。

Claims (1)

  1. 【特許請求の範囲】 複数の文字列から、共通の該文字列を検索する処理にお
    いて、 該文字列の所定のハッシュ関数値に対応する項を有する
    ハッシュテーブル(3)、 該文字列の識別番号に対応する項を有する識別番号テー
    ブル(4)、及び、 該文字列ごとの該ハッシュ関数値を生成し、該各文字列
    の識別番号を、該文字列のハッシュ関数値により分類し
    て、前記ハッシュテーブルの該当項に記憶し、 該ハッシュテーブルの、該識別番号を既に記憶した項に
    、該他の識別番号を記憶する場合には、該項を該他の識
    別番号を記憶するように更新し、前記識別番号テーブル
    の該識別番号に対応する項に、該他の識別番号を記憶す
    る手段(5)を有することを特徴とする共通文字列検索
    処理方式。
JP62002317A 1987-01-08 1987-01-08 共通文字列検索処理装置 Expired - Fee Related JPH07113894B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62002317A JPH07113894B2 (ja) 1987-01-08 1987-01-08 共通文字列検索処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62002317A JPH07113894B2 (ja) 1987-01-08 1987-01-08 共通文字列検索処理装置

Publications (2)

Publication Number Publication Date
JPS63170742A true JPS63170742A (ja) 1988-07-14
JPH07113894B2 JPH07113894B2 (ja) 1995-12-06

Family

ID=11525952

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62002317A Expired - Fee Related JPH07113894B2 (ja) 1987-01-08 1987-01-08 共通文字列検索処理装置

Country Status (1)

Country Link
JP (1) JPH07113894B2 (ja)

Also Published As

Publication number Publication date
JPH07113894B2 (ja) 1995-12-06

Similar Documents

Publication Publication Date Title
US4785400A (en) Method for processing a data base
JPS61210478A (ja) ベクトル処理装置
US4839799A (en) Buffer control method for quickly determining whether a required data block is in the buffer
JPS63170742A (ja) 共通文字列検索処理装置
JPH07146880A (ja) 文書検索装置及び方法
JPS62241026A (ja) 文字列検索方式
JPS617936A (ja) 情報検索方式
US5748965A (en) Language processing method for calculating optimum address of array
JP3018579B2 (ja) 名前検索処理装置
JPH0423167A (ja) コマンド検索方式
JPH04279973A (ja) 文字列比較方式
JPS62187930A (ja) 検索方法及び装置
JPH07168719A (ja) 冗長式除去装置
JPH06162096A (ja) レコード検索方法
JP2722684B2 (ja) ファイルシステムの検索装置
JPS62169273A (ja) 言語処理プログラムにおけるラベル情報の登録・参照方式
JP3223559B2 (ja) ディジタル保護継電装置の整定方法
JP2838972B2 (ja) 自動索引作成装置
JP2835065B2 (ja) 文字列検索方法
JP2735255B2 (ja) ハツシング処理方法
JPH04250526A (ja) ファイル処理装置
JPH01284922A (ja) マッチング検査装置
JPH07160492A (ja) 資源アクセスプログラムのチェック装置
JPH04241672A (ja) 文字列検索方式
JPH04230576A (ja) 項目選択装置

Legal Events

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