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
Application number
JP58130088A
Other languages
English (en)
Inventor
Shuichi Nakamura
修一 中村
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 JP58130088A priority Critical patent/JPS6022245A/ja
Publication of JPS6022245A publication Critical patent/JPS6022245A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements 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のようなブロック構造を持つ言語では、文が
文を含むことがある等の理由により、−回で入力可能な
単位に分割することができない。以下にその理由につい
て説明する。
PASCAL言語の構文定義の一部を取出すと、下記の
ようになる。
開始記号=S 終端記号=(げ、then、begin、endH、単
純文9式)非終端記号=(S0文の列9文9条件文、複
合文) 生成規則=(S−一文の列。
文の列−文〔;文の列〕。
文−単純文1条件文1複合文。
条件文−if式then文。
複合文−hqin文の列end)・・・■ここでは、単
純文、式を終端記号とみなし、その内部の構文解析に対
する言及を省略している。この構文によシ生成されるプ
ログラムの一例は次のとお)である。
11式than −f式than b#!7Ln 単純文; 単純文 endj−1・・・―・・1・・…・l・・・・・拳・
・・・・e・jIT−・・・・■■の形式で書かれた入
力を構文チェックするだけならば、次に示す中のすで行
を区切れるものとすればよい。
S −文の列 ↑ 文の列一文〔;文の列〕 ↑ 条件文→if式tA#ル文 ↑ しかし、この制限はきびしすぎ、一般的でない上に、構
文全体にわたって統一的に決めることがむずかしい。■
の例は、人により次のように書くかもしれない。
l1式 thgn if式 (式が2行にわたる) then begin 単純文; 単純文 and・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・■こ
のように、PAS CAL言語に対する従来の構文定義
では、行に分割するための制限を妥当な範囲で作ること
が出来ない。したが9て、任意の入力行を構文チェック
するためには、プログラムの任意の一部分に対して構文
チェックできる必要があるO 〔発明の目的〕 本発明は、上記の考察に基づくものであって、ブロック
構造を持つPASCALのような言語で書かれたソース
・プログラムの何れの部分が入力されても、その入力部
分が構文的に正しいか否かをチェックできるようになっ
たブロック構造を持った言語における構文チェック方法
を提供することを目的としている。
〔発明の構成〕
そしてそのため、本発明のブロック構造を持つ言語にお
ける構文チェック方法は、構文表上の全ての終端記号と
非終端記号に対し、その記号のあとに来る記号列を表す
非終端記号を新たに追加し、当該追加された非終端記号
を左辺とする生成規則を、 A−αXβ X’=βA′ (ただし、人は非終端記号、αとβは記号列、Xは記号
、X′とには新たに追加した非終端記号)なる式に従っ
て新たに作成し、さらに1開始記号からの生成規則を S→αα′ (ただし、Sは開始記号、αは終端記号、α′はαに対
応する非終端記号)で表わし、上記新しく追加された非
終端記号、新しく追加された非終端記号を左辺とする生
成規則および上記開始記号からの生成規則を含んだ拡大
された構文表を作成し、尚該拡大された構文表に基づい
て入力文のチェックを行うことを特徴とするものである
〔発明の実施例〕
以下、本発明を実施例を参照しつつ説明する。
任意の入力行の構文チェックを通常の構文解析の手法を
用いて行うために、非終端記号の追加、生成規則の追加
、開始記号からの生成規則の作成および生成規則の整理
統合を行って、構文を書換える。先ず非終端記号の追加
について説明する。
全ての終端記号と非終端記号に対し、「その記号のあと
にくる記号列」を表す非終端記号を追加する。ここでは
、もとの記号にダラシ: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’ →複合文′・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・■となる
生成規則の追加を行った後、開始記号からの生成規則の
作成を行う。以下に開始記号からの生成規則の作成につ
いて説明する0 構文チェックは任意の終端記号から開始するのであるか
ら、開始記号からの生成規則は、すべての終端記号を指
す。
S−αα′ S:開始記号 α:終端記号 α′:αに対応する非終端記号 ■の文法においては、 S−げげ’ l than then’ l begi
n begin’ l endg3dJ ; ;’ I
単純文 単純文′1式 釘・・・・・・・・・・・・・
・・・・・■となる。
開始記号からの生成規則の作成を行った後、生成規則の
整理統合を行う0以下に生成規則の整理統合について説
明する。
無意味な生成規則、すなわち A 与A A:非終端記号 となるものを削除し、共通の左辺のものを統合する。ま
た、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。
文の列−文〔;文の列〕 文 −単純文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式し、開始記号としてどの記号を選ぶかは、
入力されたテキストの先頭の記号で決まる。
■の例で明らかなとおシ、生成規則中でダッシュ付きの
非終端記号は右端にしか現われない。したがって、その
位置には戻ってくる必要が無く、他の非終端記号のよう
に前の状態を保存してから次の処理へ移るとと々く、単
なるGOToで良い。
実際の解析処理に近い形、リストを用いて構文を表現す
ると、下記のようになる。第1図は■の構文をリストで
表現したものである。こ\で、太線は本来の構文で、細
線は他の非終端記号の呼出し、点線は呼出された非終端
記号からの戻りの動きを示すものであって、リンクでは
ない。
第2図は拡大した■の構文をリストで表現したものであ
る。これは、第1図の点線の矢印をリンクとして生かし
たものである。太線の終点、すなわち点線の起点がダッ
シュ付き非終端記号に相当する。開始記号は、それぞれ
太線中に現われる対応する終端記号の次である。
いま、第3図のような構文があったとする。
αξδという入力があれば通常の構文解析の手法どおり
■■■■■と進んでαξが解析され、次にδとβが一致
しないのでエラーである。ξδという入力ならば■から
C′に進む。こ\でリンクは二手に分かれ仮に■を選べ
ば■へ進んでξとβを比較する。こ\ではたとえ一致し
なくてもエラーとはならず、C′のところにあったもう
一つの候補[相]から■へ進み、δが一致して終了する
第4図は本発明を実施するための手段を示す図である。
第4図において、1は構文表、2はエディタ、3は変換
処理部、4は内部テーブルをそれぞれ示している。構文
表とは、構文検査を行なおうとする言語の構文を一定の
規約に従って書いたものである。変換処理部3は、元の
構文表(例えば■の構文表)から拡大した構文表(例え
ば■の構文表)を作成するシステムである。エディタ2
は、利用者の入力に従ってデータを編集する機能をもつ
システムであり、従来機能とシンタックス・チェック機
能を有している。内部テーブル4は構文表をシンタック
ス・チェック機能が使い得る形に変換したものである。
〔発明の効果〕
以上の説明から明らかなように、本発明によれば、ブロ
ック構造を持ち、切れ目のはっきりしない言語で書かれ
た文に対し、一部分が入力されても、構文的に正しいか
否かをチェックすることが出来る。また、拡大した構文
を表現するには、元の構文を表現するリストにリンクを
追加するだけでよく、負担は大きくならない。
【図面の簡単な説明】
第1図は元の構文をリストで表現した図、第2図は本発
明による拡大した構文をリストで表現した図、第3図は
構文解析の1例を説明するための図、第4図は本発明を
実施するための手段の1例を示す図である。 1・・・構文表、2・・・エディタ、3・・・変換処理
部、4・・・内部テーブル。 特許出願人 富士通株式会社 代理人弁理士 京 谷 四 部

Claims (1)

  1. 【特許請求の範囲】 構文表上の全ての終端記号と非終端記号に対し、その記
    号のあとに来る記号列を表す非終端記号を新たに追加し
    、当該追加された非終端記号を左辺とする生成規則を、 A−αXβ X′=βA′ (ただし、Aは非終端記号、αとβは記号列、Xは記号
    、X′とには新たに追加した非終端記号)なる式に従っ
    て新たに作成し、さらに、開始記号からの生成規則を S→αl (ただし、Sは開始記号、αは終端記号、α′はαに対
    応する非終端記号)で表わし、上記新しく追加された非
    終端記号、新しく追加された非終端記号を左辺とする生
    成規則および上記開始記号からの生成規則を含んだ拡大
    された構文表を作成し、当該拡大された構文表に基づい
    て入力文のチェックを行うことを特徴とするブロック構
    造を持つ言語における構文チェック方法。
JP58130088A 1983-07-15 1983-07-15 ブロツク構造を持つ言語における構文チエツク方法 Pending JPS6022245A (ja)

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)

* Cited by examiner, † Cited by third party
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

Cited By (4)

* Cited by examiner, † Cited by third party
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) 文字表記結果の対応関係判定システム