JPH04178837A - 字句エラー訂正方法 - Google Patents

字句エラー訂正方法

Info

Publication number
JPH04178837A
JPH04178837A JP2306324A JP30632490A JPH04178837A JP H04178837 A JPH04178837 A JP H04178837A JP 2306324 A JP2306324 A JP 2306324A JP 30632490 A JP30632490 A JP 30632490A JP H04178837 A JPH04178837 A JP H04178837A
Authority
JP
Japan
Prior art keywords
lexical
error
errors
analysis
compiler
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
JP2306324A
Other languages
English (en)
Inventor
Hiroko Yamaguchi
裕子 山口
Noriyasu Mori
森 教安
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 JP2306324A priority Critical patent/JPH04178837A/ja
Publication of JPH04178837A publication Critical patent/JPH04178837A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は字句解析におけるエラー処理に係り、特にユー
ザが入力した仕様に基づいた訂正をする字句エラー訂正
方法に関する。
〔従来の技術〕
コンパイラ等で行なわれている字句解析処理とはソース
プログラムを1文字ずつ読んで、字句という文字列に切
り出していく処理である。字句エラーとは字句のつづり
誤りを指す。
字句解析処理で字句エラーを回復する方法は、A、V、
エイホ、J、D、ウルマン著「コンパイラJ  (19
86年、培風館発行)第349頁から第351頁に論じ
られている。よくとられている方法の一つを以下、述へ
る。
字句が誤っていたら、現在の文脈で次に現われうる字句
の一覧を構文解析部からもらい、その中から現在の文字
列に最も近いものをみつける。実際の字句のつづり誤り
のほとんどは、1文字の誤りにあることから、現在の文
字列を1文字変えたものが候補の一覧にあるかどうかで
調へる。
〔発明が解決しようとする課題〕
上記従来技術では、字句のつづりの誤りと思われるもの
があると、無条件に訂正する。しかし、現実には字句に
もつづりを誤り易いものとそうでないものがある。また
、正しい字句を他の字句のつづり誤りとみなして、間違
った訂正をしてしまう恐れがある。
上記の問題を解決するために1本発明ではユーザがあら
かじめ入力しておいた字句のつづり誤りを訂正するため
の情報をもとに訂正を行なう。
本発明ではどの程度までつづり誤りを訂正する(もしく
はエラーにする)かを字句解析の実行時にユーザが指定
できるようにすることも目的とする。
〔課題を解決するための手段〕
ユーザは字句毎につづり誤りを訂正するための誤り許容
情報を指定した仕様を入力する。本発明のシステムは、
字句解析時に使う誤り検索用字句テーブルにこの情報を
設定する。
ユーザは字句解析部を実行する時に、字句のつづり誤り
をどの程度まで許すか(誤り許容度)を指定する。つづ
りの誤った字句を検出したら、前記字句テーブルを用い
て、(誤り許容度範囲内の)もとのつづりを検索し、つ
づりを訂正する。
〔作用〕
ユーザが入力する誤り許容情報とは、字句毎に何箇所ま
でかの誤りを許す、あるいは特定の(誤った)つづりを
許すという情報である。字句解析時に使う誤り検索用字
句テーブルにこの情報は設定される。
字句解析時に、ユーザが指定した誤り許容度範囲内のつ
づりの誤った字句を検出したら、前記字句テーブルの誤
り許容情報に基づいて、もとのつづりを検索することが
できる。
〔実施例〕
以下、本発明の一実施例を図面を用いて説明する。実施
例では、字句エラーを訂正する対象の字句はキーワード
(予約語)に限定する。
字句解析部の処理では、識別子を字句として切りだした
ら、あらかじめ設定されているキーワードテーブルを検
索して、どのキーワードか(あるいは識別子か)を判定
する方法(キーワード方式)をとるものが多い。実施例
の字句解析もこの方法をとるものとする。
第1図は本発明の字句エラー訂正方法を実現するための
計算機システムの構成図である。本実施例の計算機シス
テムは、CPUl0I、主記憶装置!102.制御装M
103より構成される。また、制御装置103は外部記
憶装置104に接続している。外部記憶装置1104に
は本システムの入力となるキーワードの誤り許容情報1
05および本システムの出力となる誤り検索用キーワー
ドテーブル106および誤り許容度107が格納される
主記憶装置102には、字句解析エラー訂正方法を実現
する字句解析部を含んだコンパイラ108および前記誤
り検索用キーワードテーブルを生成するキーワードテー
ブル生成ルーチン109が格納されている。
CPUl0Iはキーワードテーブル生成ルーチン109
を実行することにより、誤り検索用キーワードテーブル
106を生成する。字句解析時には、コンパイラ108
は前記誤り検索用キーワードテーブルを参照して、字句
のつづり誤りを修正する。
第2図に字句解析部のキーワードのエラー訂正方法の処
理の流れを示す。コンパイラ108を実行するときに、
ユーザが指定したキーワードの誤り許容度を読み込む(
ステップ201)。字句解析部は字句として識別子を切
りだしたら、キーワードテーブルからつづりが完全に一
致するキーワードを検索する(ステップ204)。該当
するキーワードがなければ誤り検索用キーワードテーブ
ル106を検索する。このときは、各キーワードの誤り
許容情報および誤り許容度指定に基づいた解析゛を行な
い(ステップ205)=つづり誤りを修正し、メツセー
ジを出力する(ステップ206)。
(キーワード方式を採らない字句解析部の処理では、ス
テップ204がなくなる) 本システムでのキーワードのつづり誤りとは、1文字が
余計に挿入されている、1文字が欠けている、1文字が
誤っている、隣あう2文字が入れ替わっている場合をい
う。以上のうちの1つに該当したら字句誤りが一箇所あ
るという。キーワードのつづり誤り許容情報として、ユ
ーザは字句誤りを一箇所許すキーワードに対してr#p
ermit I Jと書く。三箇所まで許す場合にはr
#permit 2 Jと、レベル分けして書く(三箇
所以上の場合はキーワードの誤りというより、識別子で
ある可能性の方が高いので、許容情報はr#permi
t 2 Jまでとする)。
また、本システムを使うユーザがよく間違えるつづり誤
りについては、とくにそのつづりを誤り情報として書け
る。正しいキーワードのつづりに対して誤ったつづりを
(r#recover、1指定して)書く。
第3図はキーワードの誤り許容情報105の一例である
・ r procedure Jのように比較的文字数
の多いものにはI’lpermit 2 Jを指定して
いる。
r #recover Jの直後に指定しである[ρr
ogran JはrprograllJのつづり誤りと
なる。つづり誤りを許さないキーワードに関しては何の
記述もしない。
コンパイラを実行するときに、ユーザが誤り許容度を[
1」と指定した場合はr#permit I Jまたは
Nlpermit 2 Jが指定されているキーワード
のつづり誤りは一箇所まで許される。誤り許容度を「2
」と指定した場合は、これらの誤りに加えr#perm
it 2 Jが指定されているキーワードのつづり誤り
が三箇所まで許される。許容情報および誤り許容度と、
誤りを許す程度の関係を第4図に示す。
例えば、ソースプログラムを初めてコンパイルするとき
には、許容度を「2」と指定し、キーワードのつづり誤
りのせいでコンパイルが中断されないようにする。メツ
セージをみてつづり誤りを修正し、最終的なコンパイル
の段階になって、つづり誤りを許さないように(許容度
を指定しない)すればよい。
上記の誤り許容情報の例から、生成される誤り検索用キ
ーワードテーブルの一例を第5図に示す。
一般のキーワードテーブルにはキーワードの(正しい)
つづりと、(字句解析部の処理結果として返す)対応す
るコードとが設定されている。これらに加え、本シテム
では誤り許容情報のレベルを設定する。r#recov
er J指定されたつづりも登録するが、誤り許容情報
欄でr #recoνerJ指定されたものとわかるよ
うにする。
誤り検索用キーワードテーブルを生成する代わりに、通
常のキーワードテーブルに誤り許容情報欄を設け、レベ
ルを設定する方法もある。この場合、テーブルにはキー
ワード(#recover指定されている誤ったつづり
も含める)をアルファベット順に登録しておく。文字列
比較して一致していれば0を、アルファベット順で先(
後)ならば負(正)を返す関数(例えばC言語の標準関
数strcmp )を用いてテーブルを二分探索する。
切り出した文字列と一致するものがなければ、つづりが
1番近いキーワードの添字が返る(ただし、1文字目が
違っている場合はそうならない)。このキーワードと周
辺のもので#permit指定されているものが誤りの
もとのキーワードの候補となる。
#recover指定されている誤ったつづりと一致し
たときは、これかもとのキーワードとなる。
誤り検索用キーワードテーブルの検索方法(ステップ2
05)の−例を説明する。上記のように誤りのもとのキ
ーワードの候補が求まったら、これらと切りだした文字
列のつづりを1文字ずつ比較していく。
つづり誤りのパターンと文字列比較処理の流れ図を第6
図に示す。文字列中で現在みている文字をポインタで指
すとする。流れ図は、始めて文字が一致しなかったとこ
ろから始まり、現在調べている候補のつづりが本当に誤
りのもとである可能性があるか、否かで終っている。可
能性があれば残りの文字を比較して、全て一致すれば現
在の候補が誤りのもとのキーワードとなる。可能性がな
ければ、別の候補を調べる。
1文字目が違っている場合は上記の方法とは異なる処理
にいく。しかし、1文字目から間違っている可能性は少
ない。
$recover指定されている候補はつづりが全て等
しいかどうかでみる。
第2図に示した処理の流れとは異なる処理の流れを第7
図に示す。(字句エラーの回復などしない)通常の字句
解析をして、構文解析をする。キーワードがくるべきは
ずなのに、そうならなかった場合に構文解析部はくるべ
きキーワードのコード(複数ありうる)を返す(ステッ
プ211)。
誤り検索用キーワードテーブルを用いて、これらのコー
ドに対応するキーワードのつづりと、切り出した字句の
つづりとを比較して該当するキーワードを検索する(ス
テップ212)。
この方法だと第2図に示したものよりも、誤り検索用キ
ーワードテーブルを検索する処理が単純になる。ただし
、構文解析部がエラー時に、くるべきキーワードのコー
ド(複数ありうる)を字句解析部に返す処理が増える。
本発明は字句解析生成系にも適用できる。第8図に字句
解析生成系の処理の流れ図と入力例と出力例を示す。字
句解析生成系110は字句仕様111を入力し1字句解
析プログラム112を出力する。字句の仕様としてキー
ワードの仕様を定義するとき誤り許容情報を付加すれば
よい。
字句の仕様は一般に正規表現で表わされるが、正規表現
では識別子や文字列リテラルの字数の上限値を表わすこ
とができない6本発明では字数の上限値を表わす入力仕
様も提供する。第7図(b)の入力例のようにr#11
m1t 14 Jとある場合は、対応する字句(ここで
は識別子)の字数の上限値を14文字とできる。字句解
析生成系は、字句解析プログラム上で、r#11m1t
」指定のある字句の処理部に字数の上限値チエツクを付
加すればよい。
誤り許容度としてrl」以上が指定さ九た場合は上限値
を超えたものはエラーとし、そうでなければエラーメツ
セージを出すだけでエラーにはしない。
〔発明の効果〕
本発明は以下に記載するような効果を持つ。コンパイラ
において字句解析時に入力プログラム中の字句のつづり
誤りを訂正することにより、字句解析以降の処理を続行
できる。
字句の誤りを検出・訂正するためのテーブルを生成する
ための仕様(各字句毎につづり誤りをどの程度許すかと
いう情報を含む)をあらかじめユーザが入力することに
より、ユーザが誤りを許すとした字句毎に指定した範囲
(何箇所までの誤りを許すか、あるいは特定の誤ったつ
づりを許すという情報)での訂正が行なえる。これによ
り処理の効率が良くなるばかりでなく、ある字句と似た
字句をつづり誤りとみなして間違った訂正をしてしまう
危険もなくなる。
つづり誤りを訂正するか否かの情報を字句解析実行時に
ユーザが入力することにより、ユーザはつづりの誤りを
訂正するか、否かを実行時に選択できる。
字句解析生成系への入力仕様に字句の誤りを検出・訂正
するための情報を付加することで字句の誤りを検出・訂
正する字句解析プログラムを生成できる。
【図面の簡単な説明】
第1図は本発明の計算機システムの構成図、第2図は本
発明の一実施例の処理の流れ図、第3図はキーワードの
誤り許容情報の一例、第4図は許容情報および誤り許容
度と、誤りを許す程度の関係を示す図、第5図は生成さ
れる誤り検索用キーワードテーブルの一例、第6図はつ
づり誤りのパターンと文字列の比較処理の流れ図、第7
図は本発明の一実施例の処理の流れ図、第8図は字句解
析生成系の処理の流れ図と入力例と出力である。 符号の説明 101・・・CPU、102・・・主記憶装置、]03
・・・制御装置、1o3・・・制御装置、104・・・
外部記憶装置1104.1.05・・・誤り許容情報、
106・・・誤り検索用キーワードテーブル、107・
・誤り許容度、108・・・コンパイラ、109・・・
キーワードテーブル生成ルーチン。 茅1M 第2図 峯3図 ′f−外図 正しい、プ゛l):f’にKect ■1虻すuhLい ■j(i余訂   O丸す逆籾 e
1丸字丸↓FA d Led  BtxtLOke、d
  PIL rce、cl−go<才tl穿?図 似)

Claims (1)

  1. 【特許請求の範囲】 1、入力プログラムの字句を解析し、前記字句解析の結
    果に基づいて入力プログラムの構文を解析し、前記構文
    解析の結果から計算機で実行されるコードを生成するコ
    ンパイラにおいて、あらかじめ字句の誤りを検出・訂正
    するためのテーブルと処理部を設け、前記字句解析にお
    いて前記入力プログラムの各字句に前記処理を適用し、
    前記入力プログラムの字句におけるつづり誤りを訂正す
    ることを特徴とするコンパイラ。 2、第1項記載のコンパイラにおいて前記テーブルと前
    記処理部があらかじめ記憶装置に格納されていることを
    特徴とするコンパイラ。 3、第1項記載のコンパイラにおいて前記テーブルを生
    成するための仕様をユーザが入力装置から入力すること
    を特徴とするコンパイラ。 4、第3項記載の前記テーブルを生成するための仕様が
    、各字句毎につづり誤りをどの程度許すかという情報を
    含むことを特徴とするコンパイラ。 5、第1項記載のコンパイラにおいて字句のつづり誤り
    を訂正するか否かの情報をコンパイラ実行時にユーザが
    入力装置から入力することを特徴とするコンパイラ。 6、字句解析において、ユーザがあらかじめ字句のつづ
    り誤りを検出・訂正するための仕様を入力し、字句のつ
    づり誤りを検出・訂正するためのテーブルと処理部を生
    成し、字句解析において入力プログラムの各字句に前記
    処理を適用し、前記入力プログラムの字句におけるつづ
    り誤りを訂正することを特徴とする字句エラー訂正方法
    。 7、第6項記載の字句のづづり誤りを検出・訂正するた
    めの仕様が、各字句毎につづり誤りをどの程度許すかと
    いう情報を含むことを特徴とする字句エラー訂正方法。 8、第6項記載の字句解析において、字句のつづり誤り
    を訂正するか否かの情報をコンパイラ実行時にユーザが
    入力装置から入力することを特徴とする字句エラー訂正
    方法。 9、字句解析生成系において、字句解析生成系への入力
    仕様に字句の誤りを検出・訂正するための情報を付加す
    ることで字句の誤りを検出・訂正する字句解析プログラ
    ムを生成することを特徴とする字句解析生成方法。
JP2306324A 1990-11-14 1990-11-14 字句エラー訂正方法 Pending JPH04178837A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2306324A JPH04178837A (ja) 1990-11-14 1990-11-14 字句エラー訂正方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2306324A JPH04178837A (ja) 1990-11-14 1990-11-14 字句エラー訂正方法

Publications (1)

Publication Number Publication Date
JPH04178837A true JPH04178837A (ja) 1992-06-25

Family

ID=17955743

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2306324A Pending JPH04178837A (ja) 1990-11-14 1990-11-14 字句エラー訂正方法

Country Status (1)

Country Link
JP (1) JPH04178837A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006215896A (ja) * 2005-02-04 2006-08-17 Nec Micro Systems Ltd 条件付コンパイル用識別子の管理方法、コンピュータプログラムの作成支援装置及びプログラム
JP2010225140A (ja) * 2009-03-17 2010-10-07 Technology Currents Llc 意図的なエラーによるエネルギー最適化
JP2018084939A (ja) * 2016-11-22 2018-05-31 富士通株式会社 修正支援プログラム、修正支援方法、修正支援装置、およびコンパイラ

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006215896A (ja) * 2005-02-04 2006-08-17 Nec Micro Systems Ltd 条件付コンパイル用識別子の管理方法、コンピュータプログラムの作成支援装置及びプログラム
JP2010225140A (ja) * 2009-03-17 2010-10-07 Technology Currents Llc 意図的なエラーによるエネルギー最適化
JP2018084939A (ja) * 2016-11-22 2018-05-31 富士通株式会社 修正支援プログラム、修正支援方法、修正支援装置、およびコンパイラ

Similar Documents

Publication Publication Date Title
US5895446A (en) Pattern-based translation method and system
JP4306894B2 (ja) 自然言語処理装置及びその方法、及び自然言語認識装置
US6618697B1 (en) Method for rule-based correction of spelling and grammar errors
Miłkowski Developing an open‐source, rule‐based proofreading tool
EP0266001A2 (en) A parser for natural language text
Reese Natural language processing with Java
Ingerman A syntax-oriented translator
Jacob et al. Code template inference using language models
JP3794716B2 (ja) 単語を語形変化させる方法及びその方法を実行するデータ処理装置
US5283737A (en) Mechanism for generating linguistic expressions based on synonyms and rules derived from examples
Kataria et al. Natural language interface for databases in Hindi based on karaka theory
Kaur et al. Spell checker for Punjabi language using deep neural network
JPH04178837A (ja) 字句エラー訂正方法
Earl The resolution of syntactic ambiguity in automatic language processing
US6742164B1 (en) Method, system, and program for generating a deterministic table to determine boundaries between characters
Kirby et al. Computer translation of IUPAC systematic organic chemical nomenclature. 6.(Semi) automatic name correction
Lu et al. Xmlvalue: Xml configuration attribute value recommendation
Hema et al. Malayalam spell checker using n-gram method
Hanna An Automatic Parser and Translator
JPH07244669A (ja) 文書検索方式
Hendry et al. An automatic parser and translator
JP2704945B2 (ja) 重複表現処理装置
TW452711B (en) Method using word affix for word search
Siragusa et al. Automatic extraction of correction patterns from expert-revised corpora
Pradhan et al. Design of Odia Spell Checker with word Prediction