JPS6022245A - ブロツク構造を持つ言語における構文チエツク方法 - Google Patents
ブロツク構造を持つ言語における構文チエツク方法Info
- Publication number
- JPS6022245A JPS6022245A JP58130088A JP13008883A JPS6022245A JP S6022245 A JPS6022245 A JP S6022245A JP 58130088 A JP58130088 A JP 58130088A JP 13008883 A JP13008883 A JP 13008883A JP S6022245 A JPS6022245 A JP S6022245A
- Authority
- JP
- Japan
- Prior art keywords
- symbol
- sentence
- syntax
- terminal
- symbols
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の技術分野〕
本発明は、ブロック構造を持っPASCALのような言
語で書かれたソース・プログラムの何れの部分が入力さ
れても、その入力部分が構文的に正しいか否かをチェッ
クできるようになったブロック構造を持つ言語における
構文チェック方法に関するものである。
語で書かれたソース・プログラムの何れの部分が入力さ
れても、その入力部分が構文的に正しいか否かをチェッ
クできるようになったブロック構造を持つ言語における
構文チェック方法に関するものである。
端末から入力されるソース・プログラムラ、ソの場で構
文チェックするには、一般に、−回の入力を一つの文又
は行というような単位に規制しなければならないが、P
ASCALのようなブロック構造を持つ言語では、文が
文を含むことがある等の理由により、−回で入力可能な
単位に分割することができない。以下にその理由につい
て説明する。
文チェックするには、一般に、−回の入力を一つの文又
は行というような単位に規制しなければならないが、P
ASCALのようなブロック構造を持つ言語では、文が
文を含むことがある等の理由により、−回で入力可能な
単位に分割することができない。以下にその理由につい
て説明する。
PASCAL言語の構文定義の一部を取出すと、下記の
ようになる。
ようになる。
開始記号=S
終端記号=(げ、then、begin、endH、単
純文9式)非終端記号=(S0文の列9文9条件文、複
合文) 生成規則=(S−一文の列。
純文9式)非終端記号=(S0文の列9文9条件文、複
合文) 生成規則=(S−一文の列。
文の列−文〔;文の列〕。
文−単純文1条件文1複合文。
条件文−if式then文。
複合文−hqin文の列end)・・・■ここでは、単
純文、式を終端記号とみなし、その内部の構文解析に対
する言及を省略している。この構文によシ生成されるプ
ログラムの一例は次のとお)である。
純文、式を終端記号とみなし、その内部の構文解析に対
する言及を省略している。この構文によシ生成されるプ
ログラムの一例は次のとお)である。
11式than
−f式than
b#!7Ln
単純文;
単純文
endj−1・・・―・・1・・…・l・・・・・拳・
・・・・e・jIT−・・・・■■の形式で書かれた入
力を構文チェックするだけならば、次に示す中のすで行
を区切れるものとすればよい。
・・・・e・jIT−・・・・■■の形式で書かれた入
力を構文チェックするだけならば、次に示す中のすで行
を区切れるものとすればよい。
S −文の列
↑
文の列一文〔;文の列〕
↑
条件文→if式tA#ル文
↑
しかし、この制限はきびしすぎ、一般的でない上に、構
文全体にわたって統一的に決めることがむずかしい。■
の例は、人により次のように書くかもしれない。
文全体にわたって統一的に決めることがむずかしい。■
の例は、人により次のように書くかもしれない。
l1式
thgn if式
(式が2行にわたる)
then begin
単純文;
単純文
and・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・■こ
のように、PAS CAL言語に対する従来の構文定義
では、行に分割するための制限を妥当な範囲で作ること
が出来ない。したが9て、任意の入力行を構文チェック
するためには、プログラムの任意の一部分に対して構文
チェックできる必要があるO 〔発明の目的〕 本発明は、上記の考察に基づくものであって、ブロック
構造を持つPASCALのような言語で書かれたソース
・プログラムの何れの部分が入力されても、その入力部
分が構文的に正しいか否かをチェックできるようになっ
たブロック構造を持った言語における構文チェック方法
を提供することを目的としている。
・・・・・・・・・・・・・・・・・・・・・・・■こ
のように、PAS CAL言語に対する従来の構文定義
では、行に分割するための制限を妥当な範囲で作ること
が出来ない。したが9て、任意の入力行を構文チェック
するためには、プログラムの任意の一部分に対して構文
チェックできる必要があるO 〔発明の目的〕 本発明は、上記の考察に基づくものであって、ブロック
構造を持つPASCALのような言語で書かれたソース
・プログラムの何れの部分が入力されても、その入力部
分が構文的に正しいか否かをチェックできるようになっ
たブロック構造を持った言語における構文チェック方法
を提供することを目的としている。
そしてそのため、本発明のブロック構造を持つ言語にお
ける構文チェック方法は、構文表上の全ての終端記号と
非終端記号に対し、その記号のあとに来る記号列を表す
非終端記号を新たに追加し、当該追加された非終端記号
を左辺とする生成規則を、 A−αXβ X’=βA′ (ただし、人は非終端記号、αとβは記号列、Xは記号
、X′とには新たに追加した非終端記号)なる式に従っ
て新たに作成し、さらに1開始記号からの生成規則を S→αα′ (ただし、Sは開始記号、αは終端記号、α′はαに対
応する非終端記号)で表わし、上記新しく追加された非
終端記号、新しく追加された非終端記号を左辺とする生
成規則および上記開始記号からの生成規則を含んだ拡大
された構文表を作成し、尚該拡大された構文表に基づい
て入力文のチェックを行うことを特徴とするものである
。
ける構文チェック方法は、構文表上の全ての終端記号と
非終端記号に対し、その記号のあとに来る記号列を表す
非終端記号を新たに追加し、当該追加された非終端記号
を左辺とする生成規則を、 A−αXβ X’=βA′ (ただし、人は非終端記号、αとβは記号列、Xは記号
、X′とには新たに追加した非終端記号)なる式に従っ
て新たに作成し、さらに1開始記号からの生成規則を S→αα′ (ただし、Sは開始記号、αは終端記号、α′はαに対
応する非終端記号)で表わし、上記新しく追加された非
終端記号、新しく追加された非終端記号を左辺とする生
成規則および上記開始記号からの生成規則を含んだ拡大
された構文表を作成し、尚該拡大された構文表に基づい
て入力文のチェックを行うことを特徴とするものである
。
以下、本発明を実施例を参照しつつ説明する。
任意の入力行の構文チェックを通常の構文解析の手法を
用いて行うために、非終端記号の追加、生成規則の追加
、開始記号からの生成規則の作成および生成規則の整理
統合を行って、構文を書換える。先ず非終端記号の追加
について説明する。
用いて行うために、非終端記号の追加、生成規則の追加
、開始記号からの生成規則の作成および生成規則の整理
統合を行って、構文を書換える。先ず非終端記号の追加
について説明する。
全ての終端記号と非終端記号に対し、「その記号のあと
にくる記号列」を表す非終端記号を追加する。ここでは
、もとの記号にダラシ:L(′ )を付けて表す。
にくる記号列」を表す非終端記号を追加する。ここでは
、もとの記号にダラシ:L(′ )を付けて表す。
非終端記号=(S1文の列1文1条件文、複合文。
829文の列′1文′0条件文′、複合丈。
げ’、 then’ 、 hgin’ 、 gnrl’
、 ;’ 。
、 ;’ 。
単純弐′、弐′ )
非終端記号を追加した後、生成規則の追加を行う。以下
に生成規則の追加について説明する◇もとの生成規則の
右辺に現れるすべての終端記号及び非終端記号に対応し
て、上述の追加した非終端記号を左辺とする生成規則を
作る。生成規則A−αXβ に対して に一βA′ を作る。ここで A :非終端記号 X :終端記号又は非終端記号 α、β:終端記号及び非終端記号の列(字列を含む) とする。これに従い、■の生成規則に対するものを作る
と 文の列′−8′ 文′−〔;文の列〕文の列′ ;′ −文の列、文の列′ 文の列′−文の列′ 単純文−文′ 条件文′−文′ 複合文′−文′ tfl →式theル文条件文I 弐′−tkgtL文条件文′ theル′→文一文文′ 文′ −条件文′ beqin’−文の列and複合文′ 文の列′→−nd複合文′ end’ →複合文′・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・■となる
。
に生成規則の追加について説明する◇もとの生成規則の
右辺に現れるすべての終端記号及び非終端記号に対応し
て、上述の追加した非終端記号を左辺とする生成規則を
作る。生成規則A−αXβ に対して に一βA′ を作る。ここで A :非終端記号 X :終端記号又は非終端記号 α、β:終端記号及び非終端記号の列(字列を含む) とする。これに従い、■の生成規則に対するものを作る
と 文の列′−8′ 文′−〔;文の列〕文の列′ ;′ −文の列、文の列′ 文の列′−文の列′ 単純文−文′ 条件文′−文′ 複合文′−文′ tfl →式theル文条件文I 弐′−tkgtL文条件文′ theル′→文一文文′ 文′ −条件文′ beqin’−文の列and複合文′ 文の列′→−nd複合文′ end’ →複合文′・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・■となる
。
生成規則の追加を行った後、開始記号からの生成規則の
作成を行う。以下に開始記号からの生成規則の作成につ
いて説明する0 構文チェックは任意の終端記号から開始するのであるか
ら、開始記号からの生成規則は、すべての終端記号を指
す。
作成を行う。以下に開始記号からの生成規則の作成につ
いて説明する0 構文チェックは任意の終端記号から開始するのであるか
ら、開始記号からの生成規則は、すべての終端記号を指
す。
S−αα′ S:開始記号
α:終端記号
α′:αに対応する非終端記号
■の文法においては、
S−げげ’ l than then’ l begi
n begin’ l endg3dJ ; ;’ I
単純文 単純文′1式 釘・・・・・・・・・・・・・
・・・・・■となる。
n begin’ l endg3dJ ; ;’ I
単純文 単純文′1式 釘・・・・・・・・・・・・・
・・・・・■となる。
開始記号からの生成規則の作成を行った後、生成規則の
整理統合を行う0以下に生成規則の整理統合について説
明する。
整理統合を行う0以下に生成規則の整理統合について説
明する。
無意味な生成規則、すなわち
A 与A A:非終端記号
となるものを削除し、共通の左辺のものを統合する。ま
た、S′は「開始記号のあとにくる文字列」を表してい
るものであるから、空で置きかえる。
た、S′は「開始記号のあとにくる文字列」を表してい
るものであるから、空で置きかえる。
■を書きかえ、■を含んで新しい文法全体を記述すると
、次のように橙る。
、次のように橙る。
開始記号=S
終端記号= (if、then、hすin、encL、
;+単純文。
;+単純文。
式)
非終端記号=(S1文の列1文9条件文、複合文
文の列′9文′9条件文′、複合文′
げ’、than’、begin’、arLd’弓’、単
純文′。
純文′。
弐′ )
生成規則= (S、if if’ l then th
gn’ l bgginbgyin’l and an
d′1; ;’ l単純文 単純文′1式 K。
gn’ l bgginbgyin’l and an
d′1; ;’ l単純文 単純文′1式 K。
文の列−文〔;文の列〕
文 −単純文1条件文1複合文
条件文−乙f式then文。
複合文−2qin文の列ggd。
文の列’−1−CgBd複合文′〕
文′−〔:文の列〕文の列′
条件文、4文・。
複合文′−文′。
tf′ 一式 then文条件デ。
t h g B’−文条件文′
6すtrL′−文の列−nd複合文′。
end’ −複合文′。
;′ −文の構文の列′。
学純文′−文′。
式’ −hthtn文条件文′) ・旧・・・・−1・
・川■■の文法に基づいて解析を行えば、解析結果がひ
ととおシ定まらずあいまいながらも、構文に合っている
か否かの検査ができ、目的を果たす。
・川■■の文法に基づいて解析を行えば、解析結果がひ
ととおシ定まらずあいまいながらも、構文に合っている
か否かの検査ができ、目的を果たす。
■に示すとおり、開始記号からの生成規則は、すべての
終端記号を指し、その終端記号に対応する非終端記号が
続くので、入力されたテキストの先頭の記号からいきな
り、対応する非終端記号を得ることが可能である。すな
わち 開始記号”’ (lf’* t A g n’* A
g j7 L rL’@ g rLd’e i’*単純
単純文武1式し、開始記号としてどの記号を選ぶかは、
入力されたテキストの先頭の記号で決まる。
終端記号を指し、その終端記号に対応する非終端記号が
続くので、入力されたテキストの先頭の記号からいきな
り、対応する非終端記号を得ることが可能である。すな
わち 開始記号”’ (lf’* t A g n’* A
g j7 L rL’@ g rLd’e i’*単純
単純文武1式し、開始記号としてどの記号を選ぶかは、
入力されたテキストの先頭の記号で決まる。
■の例で明らかなとおシ、生成規則中でダッシュ付きの
非終端記号は右端にしか現われない。したがって、その
位置には戻ってくる必要が無く、他の非終端記号のよう
に前の状態を保存してから次の処理へ移るとと々く、単
なるGOToで良い。
非終端記号は右端にしか現われない。したがって、その
位置には戻ってくる必要が無く、他の非終端記号のよう
に前の状態を保存してから次の処理へ移るとと々く、単
なるGOToで良い。
実際の解析処理に近い形、リストを用いて構文を表現す
ると、下記のようになる。第1図は■の構文をリストで
表現したものである。こ\で、太線は本来の構文で、細
線は他の非終端記号の呼出し、点線は呼出された非終端
記号からの戻りの動きを示すものであって、リンクでは
ない。
ると、下記のようになる。第1図は■の構文をリストで
表現したものである。こ\で、太線は本来の構文で、細
線は他の非終端記号の呼出し、点線は呼出された非終端
記号からの戻りの動きを示すものであって、リンクでは
ない。
第2図は拡大した■の構文をリストで表現したものであ
る。これは、第1図の点線の矢印をリンクとして生かし
たものである。太線の終点、すなわち点線の起点がダッ
シュ付き非終端記号に相当する。開始記号は、それぞれ
太線中に現われる対応する終端記号の次である。
る。これは、第1図の点線の矢印をリンクとして生かし
たものである。太線の終点、すなわち点線の起点がダッ
シュ付き非終端記号に相当する。開始記号は、それぞれ
太線中に現われる対応する終端記号の次である。
いま、第3図のような構文があったとする。
αξδという入力があれば通常の構文解析の手法どおり
■■■■■と進んでαξが解析され、次にδとβが一致
しないのでエラーである。ξδという入力ならば■から
C′に進む。こ\でリンクは二手に分かれ仮に■を選べ
ば■へ進んでξとβを比較する。こ\ではたとえ一致し
なくてもエラーとはならず、C′のところにあったもう
一つの候補[相]から■へ進み、δが一致して終了する
。
■■■■■と進んでαξが解析され、次にδとβが一致
しないのでエラーである。ξδという入力ならば■から
C′に進む。こ\でリンクは二手に分かれ仮に■を選べ
ば■へ進んでξとβを比較する。こ\ではたとえ一致し
なくてもエラーとはならず、C′のところにあったもう
一つの候補[相]から■へ進み、δが一致して終了する
。
第4図は本発明を実施するための手段を示す図である。
第4図において、1は構文表、2はエディタ、3は変換
処理部、4は内部テーブルをそれぞれ示している。構文
表とは、構文検査を行なおうとする言語の構文を一定の
規約に従って書いたものである。変換処理部3は、元の
構文表(例えば■の構文表)から拡大した構文表(例え
ば■の構文表)を作成するシステムである。エディタ2
は、利用者の入力に従ってデータを編集する機能をもつ
システムであり、従来機能とシンタックス・チェック機
能を有している。内部テーブル4は構文表をシンタック
ス・チェック機能が使い得る形に変換したものである。
処理部、4は内部テーブルをそれぞれ示している。構文
表とは、構文検査を行なおうとする言語の構文を一定の
規約に従って書いたものである。変換処理部3は、元の
構文表(例えば■の構文表)から拡大した構文表(例え
ば■の構文表)を作成するシステムである。エディタ2
は、利用者の入力に従ってデータを編集する機能をもつ
システムであり、従来機能とシンタックス・チェック機
能を有している。内部テーブル4は構文表をシンタック
ス・チェック機能が使い得る形に変換したものである。
以上の説明から明らかなように、本発明によれば、ブロ
ック構造を持ち、切れ目のはっきりしない言語で書かれ
た文に対し、一部分が入力されても、構文的に正しいか
否かをチェックすることが出来る。また、拡大した構文
を表現するには、元の構文を表現するリストにリンクを
追加するだけでよく、負担は大きくならない。
ック構造を持ち、切れ目のはっきりしない言語で書かれ
た文に対し、一部分が入力されても、構文的に正しいか
否かをチェックすることが出来る。また、拡大した構文
を表現するには、元の構文を表現するリストにリンクを
追加するだけでよく、負担は大きくならない。
第1図は元の構文をリストで表現した図、第2図は本発
明による拡大した構文をリストで表現した図、第3図は
構文解析の1例を説明するための図、第4図は本発明を
実施するための手段の1例を示す図である。 1・・・構文表、2・・・エディタ、3・・・変換処理
部、4・・・内部テーブル。 特許出願人 富士通株式会社 代理人弁理士 京 谷 四 部
明による拡大した構文をリストで表現した図、第3図は
構文解析の1例を説明するための図、第4図は本発明を
実施するための手段の1例を示す図である。 1・・・構文表、2・・・エディタ、3・・・変換処理
部、4・・・内部テーブル。 特許出願人 富士通株式会社 代理人弁理士 京 谷 四 部
Claims (1)
- 【特許請求の範囲】 構文表上の全ての終端記号と非終端記号に対し、その記
号のあとに来る記号列を表す非終端記号を新たに追加し
、当該追加された非終端記号を左辺とする生成規則を、 A−αXβ X′=βA′ (ただし、Aは非終端記号、αとβは記号列、Xは記号
、X′とには新たに追加した非終端記号)なる式に従っ
て新たに作成し、さらに、開始記号からの生成規則を S→αl (ただし、Sは開始記号、αは終端記号、α′はαに対
応する非終端記号)で表わし、上記新しく追加された非
終端記号、新しく追加された非終端記号を左辺とする生
成規則および上記開始記号からの生成規則を含んだ拡大
された構文表を作成し、当該拡大された構文表に基づい
て入力文のチェックを行うことを特徴とするブロック構
造を持つ言語における構文チェック方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58130088A JPS6022245A (ja) | 1983-07-15 | 1983-07-15 | ブロツク構造を持つ言語における構文チエツク方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58130088A JPS6022245A (ja) | 1983-07-15 | 1983-07-15 | ブロツク構造を持つ言語における構文チエツク方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS6022245A true JPS6022245A (ja) | 1985-02-04 |
Family
ID=15025683
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58130088A Pending JPS6022245A (ja) | 1983-07-15 | 1983-07-15 | ブロツク構造を持つ言語における構文チエツク方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS6022245A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS62272357A (ja) * | 1986-05-20 | 1987-11-26 | Sharp Corp | 機械翻訳システムにおける入力文のエラ−表示方式 |
| JPS6348621A (ja) * | 1986-08-19 | 1988-03-01 | Hitachi Ltd | デイジタル光デイスクのアクセス装置 |
| JPS63148339A (ja) * | 1986-12-12 | 1988-06-21 | Fujitsu Ltd | プログラムテスト処理方式 |
| US8248004B2 (en) | 2007-06-30 | 2012-08-21 | Trumpf Werkzeugmaschinen Gmbh + Co. Kg | Machine tool with a functional unit having a linear drive and linear drive for same |
-
1983
- 1983-07-15 JP JP58130088A patent/JPS6022245A/ja active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS62272357A (ja) * | 1986-05-20 | 1987-11-26 | Sharp Corp | 機械翻訳システムにおける入力文のエラ−表示方式 |
| JPS6348621A (ja) * | 1986-08-19 | 1988-03-01 | Hitachi Ltd | デイジタル光デイスクのアクセス装置 |
| JPS63148339A (ja) * | 1986-12-12 | 1988-06-21 | Fujitsu Ltd | プログラムテスト処理方式 |
| US8248004B2 (en) | 2007-06-30 | 2012-08-21 | Trumpf Werkzeugmaschinen Gmbh + Co. Kg | Machine tool with a functional unit having a linear drive and linear drive for same |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Nicolai et al. | Leveraging Inflection Tables for Stemming and Lemmatization. | |
| Gerdes et al. | Starting a new treebank? Go SUD! | |
| KR20040086775A (ko) | 단어 분석 시스템 및 방법 | |
| Sahala et al. | A neural pipeline for pos-tagging and lemmatizing cuneiform languages | |
| Friedman | A computer system for transformational grammar | |
| JPS6022245A (ja) | ブロツク構造を持つ言語における構文チエツク方法 | |
| JPS58192173A (ja) | 機械翻訳装置 | |
| JP5623380B2 (ja) | 誤り文修正装置、誤り文修正方法およびプログラム | |
| JPH0682377B2 (ja) | 感情情報抽出装置 | |
| Garside | The large-scale production of syntactically analysed corpora | |
| Sulubacak et al. | Representation of morphosyntactic units and coordination structures in the Turkish dependency treebank | |
| JP2626722B2 (ja) | 日本語生成装置 | |
| JPS61278970A (ja) | 自然言語処理装置における構文解析結果の表示及び校正のための制御方法 | |
| Delmonte | Treebanking in VIT: from phrase structure to dependency representation | |
| Osborne et al. | Learning unification-based grammars using the Spoken English Corpus | |
| Miller | Improved syntactic models for parsing speech with repairs | |
| JP2521435B2 (ja) | 日本語生成装置 | |
| Marchuk | Machine Translation in the USSR | |
| Huet | Design of a sanskrit reader assistant | |
| JP2959769B2 (ja) | 日本語文字列の形態素解析方法及び装置 | |
| Iyyappan | Online Tamil Error Correctors and Their Needs: Dr. K. Iyyappan Guest Lecturer, Department of Tamil, LN Government College, Ponneri-601204 Call: 9962660279 Email: agniiyyappan@ gmail. com | |
| JPH04313158A (ja) | 機械翻訳装置 | |
| Black | A computational description of Japanese morphology | |
| Hulden | Rewrite rule gram mars with multitape automata | |
| JPH07113925B2 (ja) | 文字表記結果の対応関係判定システム |