[go: up one dir, main page]

JP2002007169A - 文法網羅率計測方式 - Google Patents

文法網羅率計測方式

Info

Publication number
JP2002007169A
JP2002007169A JP2000189832A JP2000189832A JP2002007169A JP 2002007169 A JP2002007169 A JP 2002007169A JP 2000189832 A JP2000189832 A JP 2000189832A JP 2000189832 A JP2000189832 A JP 2000189832A JP 2002007169 A JP2002007169 A JP 2002007169A
Authority
JP
Japan
Prior art keywords
bnf
grammar
coverage
file
rule
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.)
Withdrawn
Application number
JP2000189832A
Other languages
English (en)
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 JP2000189832A priority Critical patent/JP2002007169A/ja
Priority to US09/887,818 priority patent/US7062760B2/en
Publication of JP2002007169A publication Critical patent/JP2002007169A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3604Analysis of software for verifying properties of programs
    • G06F11/3616Analysis of software for verifying properties of programs using software metrics
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 検査対象の言語処理システムで開発したBN
Fファイル・字句解析ファイルをそのまま使用した文法
網羅率の計測や、検査工数の削減を実現する。 【解決手段】 文法網羅率計測器プログラム生成器10
0は、BNFファイル220を読み込んで構文解析を行
い、当該構文解析に基づいて生成したBNFデータをB
NF規則データベース130に格納し、当該BNF規則
データベース130に基づいて構文解析手段プログラム
およびBNF規則チェック表プログラムを生成する。文
法網羅率計測器300は、構文解析手段プログラムおよ
びBNF規則チェック表プログラムを読み込み、それら
の内容に従ってテスト用入力ファイル390に存在する
BNF文法規則を表すBNF規則チェック表330内の
BNFデータをチェックし、当該チェックに基づきテス
ト用入力ファイル390に関するBNF文法規則の網羅
状況を示す情報および網羅率を生成・出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、新たな文法(言語
文法)を受理する言語処理システムにおける検査に関
し、特に検査データ(BNF(Backus Norm
al(Naur) Form)文法規則に則って記述さ
れたテスト用入力ファイルのデータ)の文法網羅率(B
NF文法規則に則って記述されたテスト用入力ファイル
において使用されているBNF文法規則群のBNF文法
規則群全体に対する割合。以下では、単に「網羅率」と
記述することもある)の測定に用いられる文法網羅率計
測器と当該文法網羅率計測器を実現するためのプログラ
ムを生成する文法網羅率計測器プログラム生成器とによ
って構成される文法網羅率計測方式に関する。
【0002】
【従来の技術】本発明に対する従来技術(従来の検査デ
ータ生成システムや検査プログラム・データ生成システ
ムに該当する技術)としては、例えば、特開平3−07
5840号公報に記載された技術(テストデータ作成支
援装置),特開平6−214775号公報に記載された
技術(テストプログラム作成支援装置),および特開平
1−220044号公報に記載された技術(言語処理プ
ログラム検証方式)がある。以下に、これらの技術につ
いて説明する。
【0003】(1) 特開平3−075840号公報に
記載された技術 図19に示すように、当該従来技術(検査データ生成シ
ステムの一例)は、言語処理プログラムをテストする際
に用いる既存のテスト用ソースプログラム(図19中の
「テスト用ソース」)の文法網羅性を判定し、その判定
結果をもとにして、既存のテスト用ソースプログラムに
おいて使用していない文法規則を使用するようなソース
プログラムを生成・補充し、文法網羅性を確保したテス
ト用ソースプログラムの集合を得るためのテストデータ
作成支援装置に関するものである。
【0004】当該従来技術では、各既存テスト用ソース
プログラムの文法は固定的であり、文法網羅判定部はあ
らかじめ決まった文法に対してのみ網羅率を計測してい
た。したがって、この従来技術によって「新しい文法を
有する言語処理システムの検査」に対処するには、検査
データが新規の文法に従っているため、文法網羅判定部
を作り直す必要がある。
【0005】(2) 特開平6−214775号公報に
記載された技術 図20に示すように、当該従来技術(検査データ生成シ
ステムの一例)は、文パターン生成部がBNFファイル
に記述されたBNF文法規則に合致するテストデータ
(テストプログラム)を自動生成する。
【0006】しかし、BNF文法規則に適合するテスト
データは無限に存在する。したがって、その中から一部
を取り出しても、それが有意な検査項目を効率的に検査
している可能性は低い。
【0007】また、当該従来技術では、文法規則から検
査データを自動生成しているので、生成検査データが意
味的に何を検査しているのかは、検査者からは不明であ
る。つまり、検査データを通したからとはいえ、それが
十分な検査かどうかは不明である。
【0008】さらに、当該従来技術では、検査データの
加工に検査者が関わることができるが、その工数が膨大
となる。
【0009】(3) 特開平1−220044号公報に
記載された技術 図21に示すように、当該従来技術(検査プログラム・
データ生成システムの一例)は、TP自動作成部が構文
・意味記述を入力し、その中の規則を生成規則選択部が
ランダムに選び、テストプログラム(検証プログラム)
を生成する。
【0010】当該従来技術では、意味記述を導入するこ
とにより、有意な検査項目を生成することができる。し
かし、通常、言語処理システム開発の際に、文法規則は
機械が可読なように記述するが、意味記述は自然言語で
行うことがほとんどである。そのため、この従来技術を
適用するためには、機械可読なフォーマットで意味記述
を書き直してやる必要があり、そのための検査工数が必
要となる。
【0011】
【発明が解決しようとする課題】上述したように、従来
から、検査データ生成システム/検査プログラム・デー
タ生成システムは存在していた。
【0012】しかし、このような従来の検査データ生成
システム/検査プログラム・データ生成システムより
も、検査者が検査項目を意識して検査データを作成し、
そのデータの網羅していない個所を指摘する方が、検査
効率は向上する。
【0013】特に、言語処理システム開発の際の検査に
おいては、文法に基づく網羅率計測は効果を発揮する。
なぜならば、検査者は検査対象の言語処理システムが受
理する文法毎に検査項目を設定することが多いため、網
羅されていない文法から未検査の検査項目を容易に推測
できるからである。
【0014】ここで、上述した従来技術では、新たな言
語を設計し、その言語処理システムを検査する際に、テ
ストデータは新たな言語文法に従ったデータであるた
め、文法網羅率計測器(文法網羅率検査器)も新たに構
築する必要があり、新規に文法網羅率計測器を開発する
ための工数が必要になるという問題点があった。
【0015】本発明の目的は、上述の点に鑑み、新たな
文法を受理する言語処理システムにおいて文法網羅率を
計測する方式(文法網羅率計測器および文法網羅率計測
器プログラム生成器からなる文法網羅率計測方式)を提
供することができ、しかも文法網羅率計測器プログラム
生成器で文法網羅率計測器を実現するプログラムの自動
生成を行う際に、言語処理システム開発で使用した仕様
表現の他に新たな仕様等を作成せずに済む文法網羅率計
測方式を提供することにある。
【0016】すなわち、本発明においては、言語処理シ
ステムの開発における検査工程において、当該言語処理
システムが受理可能な文法について、テスト用入力ファ
イルがその文法をどの程度網羅しているかを示す文法網
羅率を計測し、かつ、当該文法網羅率を出力(表示等)
することにより、検査者が検査データの妥当性を判別す
ることができる文法網羅率計測器を提供する。また、こ
のような文法網羅率計測器を実現するためのプログラム
を生成する文法網羅率計測器プログラム生成器を提供す
る。これによって、当該文法網羅率計測器プログラム生
成器と当該文法網羅率計測器とからなる文法網羅率計測
方式が実現される。
【0017】なお、本発明に対する従来技術に関する特
許公報としては、上記の公報の他に、特開平10−04
9378号公報がある。当該公報に記載された技術(コ
ンパイラ開発装置)は、コンパイラを開発する際に描く
構文図をBNF形式構文解析生成系コードおよび字句解
析生成系コードに変換する技術に関するものである。当
該技術は、BNFを使用する技術である点で本発明と共
通しているが、出力するBNF形式構文解析生成系コー
ドの役割(使用目的)が本発明における「BNF文法規
則の網羅状況を示す情報および網羅率の生成・出力」と
は異なっており、その差異に基づいて構成に関しても本
発明とは本質的に相違している。
【0018】また、上記の各特許公報記載の技術を組み
合わせても、当該各技術が本発明とは本質的に相違して
いる(各技術には「BNF文法規則の網羅状況や網羅率
の生成・出力」という観点がない)ので、本発明に至る
ものではない。
【0019】
【課題を解決するための手段】本発明の文法網羅率計測
方式は、BNFファイルを読み込み、そのBNFファイ
ルのデータをトークン単位に切り分ける文法網羅率計測
器プログラム生成器内のファイル読み取り手段と、前記
ファイル読み取り手段により切り分けられたトークンに
基づいて前記ファイル読み取り手段により読み込まれた
BNFファイルに対する構文解析を行い、BNF文法規
則に基づいてBNF文法規則を表すデータ構造であるB
NFデータを生成し、当該BNFデータをBNF規則デ
ータベースに格納する文法網羅率計測器プログラム生成
器内のBNF構文解析手段と、前記BNF規則データベ
ースに蓄積されたBNFデータに基づいて文法網羅率計
測器内の構文解析手段を実現するための構文解析手段プ
ログラムを生成する文法網羅率計測器プログラム生成器
内の構文解析手段生成手段と、前記BNF規則データベ
ースに蓄積されたBNFデータに基づいて文法網羅率計
測器内のBNF規則チェック表の内容を埋めるためのB
NF規則チェック表プログラムを生成する文法網羅率計
測器プログラム生成器内のBNF規則チェック表生成手
段と、BNF規則番号,BNFデータ,およびチェック
部の3欄を含むエントリを有するBNF文法規則の一覧
表である文法網羅率計測器内の前記BNF規則チェック
表と、BNFデータの総数をカウントするための記憶領
域である文法網羅率計測器内のBNFデータカウンタ
と、前記BNF規則チェック表の「チェック部」欄にチ
ェックがつけられたBNFデータの数をカウントするた
めの記憶領域である文法網羅率計測器内のチェックカウ
ンタと、BNFファイルで定義された文法に則った1つ
以上のテスト用入力ファイルを読み込み、その字句解析
を行う文法網羅率計測器内のファイル読み取り手段と、
前記構文解析手段生成手段により生成された構文解析手
段プログラムを解釈することにより動作し、前記ファイ
ル読み取り手段による字句解析が行われたテスト用入力
ファイルの構文解析を行い、当該テスト用入力ファイル
に存在するBNF文法規則を表すBNFデータに関して
前記BNF規則チェック表中の該当するエントリにチェ
ックをつけるように制御する文法網羅率計測器内の前記
構文解析手段と、前記BNF規則チェック表内のBNF
データおよびそのチェック内容を得て、テスト用入力フ
ァイルにおけるBNF文法規則の網羅状況を示す情報を
生成し、前記BNFデータカウンタおよび前記チェック
カウンタの値に基づいて網羅率を算出する文法網羅率計
測器内の網羅率出力手段と、前記網羅率出力手段の要求
に応じ、前記網羅率出力手段により生成・算出された情
報をCRT(Cathode Ray Tube)に出
力する文法網羅率計測器内のCRT出力手段(プリンタ
等のCRT以外の出力装置に出力する出力手段(当該出
力装置に応じた出力手段)に代替することも可能であ
る)と、BNF規則チェック表プログラムに従い前記B
NF規則チェック表のデータの内容を初期設定し、他の
モジュールからの要求に応じて前記BNF規則チェック
表に対する読み書きを行う文法網羅率計測器内のBNF
規則チェック表格納手段とを有する。
【0020】また、本発明の文法網羅率計測方式は、上
記の文法網羅率計測方式に、全てのBNF文法規則に関
してBNF構文解析手段により生成されたBNFデータ
がBNF規則データベースに蓄積された後に、前記BN
F規則データベースにアクセスし、各BNFデータによ
って表されるBNF文法規則が意味的に妥当か否かを検
査し、BNF文法規則の意味的な不整合を発見した場合
にその旨を示すエラーメッセージを出力する文法網羅率
計測器プログラム生成器内のBNF意味検査器を加える
構成にすることも可能である。
【0021】さらに、本発明の文法網羅率計測方式は、
上記の各文法網羅率計測方式に対して、網羅状況を示す
情報および網羅率をCRTに表示(出力)するCRT出
力手段の代わりに、網羅状況を示す情報および網羅率を
網羅状況報告ファイルに出力するファイル出力手段を有
する構成にすることも可能である。
【0022】なお、本発明の文法網羅率計測方式は、よ
り一般的には、文法網羅率計測器が検査対象の言語処理
システムの受理する文法(言語文法)に対して網羅率
(文法網羅率)を測定できるように、検査対象の文法を
表すBNFファイルを読み込んで構文解析を行い、当該
構文解析に基づいて生成したBNFデータをBNF規則
データベースに格納し、当該BNF規則データベースに
基づいて構文解析手段プログラム(BNFファイルで定
義された言語文法の構文解析を行う構文解析手段を実現
するプログラム)およびBNF規則チェック表プログラ
ム(BNF規則チェック表のエントリを設定するプログ
ラム)を生成する文法網羅率計測器プログラム生成器
と、前記文法網羅率計測器プログラム生成器によって生
成された構文解析手段プログラムおよびBNF規則チェ
ック表プログラムを読み込み、それらの内容に従ってテ
スト用入力ファイルに存在するBNF文法規則を表すB
NF規則チェック表内のBNFデータをチェックし、当
該チェックに基づきテスト用入力ファイルに関するBN
F文法規則の網羅状況を示す情報および網羅率を生成・
出力する前記文法網羅率計測器とを有する構成であると
表現することができる。
【0023】また、本発明の文法網羅率計測方式は、文
法網羅率計測器プログラム生成器および文法網羅率計測
器からなる文法網羅率計測方式における当該文法網羅率
計測器プログラム生成器を、文法網羅率計測器が検査対
象の言語処理システムの受理する文法に対して網羅率を
測定できるように、検査対象の文法を表すBNFファイ
ルを読み込んで構文解析を行い、当該構文解析に基づい
て生成したBNFデータをBNF規則データベースに格
納し、当該BNF規則データベースに基づいて構文解析
手段プログラムおよびBNF規則チェック表プログラム
を生成するように機能させるためのプログラムを記録し
た記録媒体として実現することも可能である。
【0024】
【発明の実施の形態】次に、本発明について図面を参照
して詳細に説明する。
【0025】(1) 第1の実施の形態 図1は、本発明の第1の実施の形態に係る文法網羅率計
測方式の構成を示すブロック図である。
【0026】図1を参照すると、本実施の形態に係る文
法網羅率計測方式は、文法網羅率計測器プログラム生成
器100と、文法網羅率計測器300と、BNFファイ
ル220と、構文解析手段プログラムファイル230
と、BNF規則チェック表プログラムファイル240
と、テスト用入力ファイル390と、CRT400とを
含んで構成されている。
【0027】文法網羅率計測器プログラム生成器100
は、ファイル読み取り手段110と、BNF構文解析手
段120と、BNF規則データベース130と、BNF
意味検査器140と、構文解析手段生成手段150と、
BNF規則チェック表生成手段160と、ファイル出力
手段170と、ファイル出力手段180と、ファイル名
格納手段190と、行番号カウンタ200と、表示手段
210とを含んで構成されている。
【0028】ファイル読み取り手段110は、BNFフ
ァイル220を読み込み、そのBNFファイル220の
データを単語であるトークン単位に切り分ける。なお、
ファイル読み取り手段110は、BNFファイル220
を読み取る際に、行番号をカウントし、その結果を行番
号カウンタ200に格納する。
【0029】BNF構文解析手段120は、ファイル読
み取り手段110が切り分けたトークンを読み取り(受
け取り)、構文解析し、BNF文法規則に基づいてBN
F文法規則を表すデータ構造であるBNFデータを生成
する。
【0030】BNF規則データベース130は、BNF
構文解析手段120によって生成されたBNFデータ
(BNFファイル220で定義されたBNF文法規則に
対応するBNFデータ)を格納する。
【0031】BNF意味検査器140は、全てのBNF
文法規則に関してBNF構文解析手段120により生成
されたBNFデータがBNF規則データベース130に
蓄積された後に、BNF規則データベース130にアク
セスする。
【0032】BNF意味検査器140は、BNF規則デ
ータベース130にアクセスし、BNFデータを得て、
BNF文法規則が意味的に妥当(正しい)か否かを検査
する。
【0033】BNF意味検査器140は、BNF文法規
則の意味的な不整合を発見した場合には、その旨を示す
エラーメッセージと不整合の個所(不具合の発生箇所)
を示す情報を表示手段210に出力する。ここで、不具
合の発生個所のファイル名は、ファイル名格納手段19
0を参照することで得ることができる。また、不具合の
発生個所の行番号は、行番号カウンタ200を参照する
ことで得ることができる。
【0034】例えば、BNF文法規則「segment::= SEG
MENT:e segNo:e;」では、同じオプション「e」が同一右
辺式で複数回使用されている。これは意味的に不正であ
る。そこで、BNF意味検査器140は、「同じオプシ
ョン"e"を使用している」という旨のエラーメッセージ
を出力し、ファイル名格納手段190が示すファイル名
と行番号カウンタ200が示す発生行番号とを表示手段
210に出力する。
【0035】構文解析手段生成手段150は、文法網羅
率計測器300内の構文解析手段320を実現するプロ
グラム(構文解析手段プログラム)を生成する。
【0036】BNF規則チェック表生成手段160は、
文法網羅率計測器300内のBNF規則チェック表33
0の内容を埋めるプログラム(BNF規則チェック表プ
ログラム)を生成する。
【0037】ファイル出力手段170は、構文解析手段
生成手段150によって生成された構文解析手段プログ
ラムを構文解析手段プログラムファイル230に出力す
る。
【0038】ファイル出力手段180は、BNF規則チ
ェック表生成手段160によって生成されたBNF規則
チェック表プログラムをBNF規則チェック表プログラ
ムファイル240に出力する。
【0039】ファイル名格納手段190は、BNFファ
イル220のファイル名を指定する情報を格納してい
る。
【0040】行番号カウンタ200は、ファイル読み取
り手段110が読み取っているBNFファイル220の
データを特定する行番号を格納している。
【0041】表示手段210は、BNF意味検査器14
0が発見した意味上の不整合をユーザに知らせる。
【0042】BNFファイル220は、検査対象の言語
処理システムが入力データとする文法(言語文法)を定
義するBNFファイルである。
【0043】構文解析手段プログラムファイル230
は、構文解析手段生成手段150によって生成された構
文解析手段プログラムを格納するファイルである。な
お、この構文解析手段プログラムは、BNFファイル2
20中の全てのBNF文法規則毎に次のaおよびbに示
す2つのコードを有する。
【0044】a.BNF文法規則 これは、BNFファイル220中のBNF文法規則を、
そのまま、出力したものである。例えば、BNFファイ
ル220中のBNF文法規則「segment::= SEGMENT seg
No:e;」については、このBNF文法規則がそのまま「s
egment::= SEGMENT segNo:e;」と出力される。
【0045】b.アクション部 これは、BNF文法規則に合致した入力を文法網羅率計
測器300が受理したときにすべき振る舞いを記述した
ものである。文法網羅率計測器300内の構文解析手段
320は、BNF文法規則に合致するエントリをBNF
規則チェック表330から見つけ出し、BNF規則チェ
ック表330の該当エントリにチェックをつける。この
ようなチェックを実現するためのコードを、アクション
部とする。なお、このチェックは、BNF文法規則を網
羅したことを示す。例えば、BNF文法規則「segmen
t::= SEGMENT segNo:e;」に対するアクション部は、B
NF文法規則「segment::= SEGMENT segNo:e;」に合致
するエントリをBNF規則チェック表330から見つけ
出し、このエントリにチェックをつけるコードである。
【0046】BNF規則チェック表プログラムファイル
240は、BNF規則チェック表生成手段160によっ
て生成されたBNF規則チェック表プログラム(BNF
規則チェック表生成手段160がBNF規則データベー
ス130中のBNFデータにアクセスすることによって
生成したBNF規則チェック表330中のエントリを埋
めるプログラム)を格納するファイルである。
【0047】文法網羅率計測器プログラム生成器100
が実現する文法網羅率計測器300は、ファイル読み取
り手段310と、構文解析手段320と、BNF規則チ
ェック表330と、網羅率出力手段340と、CRT出
力手段350と、BNF規則チェック表格納手段360
と、BNFデータカウンタ370と、チェックカウンタ
380とを含んで構成されている。
【0048】ファイル読み取り手段310は、BNFフ
ァイル220で定義された文法に則った1つ以上のテス
ト用入力ファイル390を字句解析し、トークンに分割
する。
【0049】ここで、ファイル読み取り手段310によ
るテスト用入力ファイル390の字句解析の処理は、検
査対象の言語処理システムでの字句解析処理と同一であ
る。そのため、次のようにして、容易にファイル読み取
り手段310を構築することができる。言語処理システ
ムを構築する際には、LexやJavaLex等の字句
解析器生成器を使用する。字句解析器生成器の入力が字
句解析ファイルである。検査対象の言語処理システムに
おいて、字句解析ファイルと字句解析器生成器とを使用
し、字句解析器を開発していると仮定する。文法網羅率
計測器300についても、字句解析器生成器と検査対象
の言語処理システム用の字句解析ファイルとを使用し、
容易にファイル読み取り手段310を構築することがで
きる。
【0050】構文解析手段320は、ファイル読み取り
手段310の字句解析によって分割されたトークンの構
文解析を行い、BNF規則チェック表格納手段360を
通して、BNF規則チェック表330中の該当するBN
Fデータに対してチェックをつける。
【0051】なお、構文解析手段320は、文法網羅率
計測器プログラム生成器100が生成した構文解析手段
プログラムファイル230内のプログラムを解釈するこ
とにより動作を行う。
【0052】構文解析手段320は、ファイル読み取り
手段310からトークンを受け取り、構文解析を行う。
この構文解析の結果、BNFファイル220で定義され
たBNF文法規則群の中のどのBNF文法規則に合致す
るかを判別することができる。そして、合致したBNF
文法規則に対するBNF規則チェック表330のエント
リにチェックをつけるよう、BNF規則チェック表格納
手段360に依頼する。
【0053】BNF規則チェック表330は、以下のa
〜cに示す3つの欄(BNF規則番号,BNFデータ,
チェック部の3欄)で構成されるエントリを有するBN
F文法規則の一覧表であり、BNFデータを管理する。
【0054】a.「BNF番号」欄 これは、BNFデータに1から順に一意に与えられる識
別番号を示す欄である。この欄をキーとし、BNF規則
チェック表330を検索することができる。BNF規則
チェック表格納手段360が本欄の値を埋め込む。
【0055】b.「BNFデータ」欄 これは、BNFデータを登録するための欄である。この
欄をキーとし、BNF規則チェック表330を検索する
ことができる。BNF規則チェック表格納手段360が
本欄の内容を埋め込む。
【0056】c.「チェック部」欄 これは、BNF文法規則に則る検査入力データ(テスト
用入力ファイル390内のデータ)が入力された場合
に、チェックがつけられる欄である。当初、全てのエン
トリの本欄にはチェックがついていない。構文解析手段
320が本欄のチェックをつける。
【0057】なお、BNF規則チェック表330に対し
て、BNF番号を1から順に指定することにより、BN
F規則チェック表330中の全てのBNFデータおよび
そのチェック内容をもれなく得ることができる。
【0058】網羅率出力手段340は、構文解析手段3
20がBNF規則チェック表330につけたチェックを
読み取り、網羅状況をCRT出力手段350を介してC
RT400に表示する。
【0059】すなわち、網羅率出力手段340は、BN
F番号を指定し、BNF規則チェック表格納手段360
を介して、BNF規則チェック表330から該当するB
NFデータおよびそのチェック内容を得ることができ
る。
【0060】また、網羅率出力手段340は、上記のよ
うにして得たBNFデータをBNF文法規則としてCR
T出力手段350を介してCRT400に出力すること
ができる。その際に、「チェック部」欄にチェックがつ
いているBNF文法規則に印(マーク)をつけて出力す
る。
【0061】さらに、網羅率出力手段340は、BNF
データの総数とチェックつきのBNFデータの数とをカ
ウントし、処理の終了時に当該カウントに基づいて網羅
率を計算し、CRT出力手段350を介してCRT40
0にその網羅率を出力する。
【0062】CRT出力手段350は、網羅率出力手段
340の要求に応じ、網羅率出力手段340が与えた文
字列をCRT400に出力する。
【0063】BNF規則チェック表格納手段360は、
BNF規則チェック表330のデータの内容を初期設定
し、かつ、他のモジュールからの要求に応じてBNF規
則チェック表330に読み書きを行う。
【0064】なお、BNF規則チェック表格納手段36
0は、BNF規則チェック表プログラムファイル230
内のプログラム(BNF規則チェック表330の初期デ
ータを示すプログラム)に従い、BNF規則チェック表
330の初期設定を行う。
【0065】また、BNF規則チェック表格納手段36
0は、構文解析手段320が指定するBNF文法規則を
BNF規則チェック表330の「BNFデータ」欄から
探し、対応する「チェック部」欄にチェックをつける。
【0066】さらに、BNF規則チェック表格納手段3
60は、網羅率出力手段340の要求に従い、BNF規
則チェック表330中のBNFデータを渡したり、その
BNFデータの「チェック部」欄がチェック済みである
か否かを与える。
【0067】BNFデータカウンタ370は、網羅率出
力手段340がBNFデータの総数をカウントするため
の記憶領域である。
【0068】チェックカウンタ380は、BNF規則チ
ェック表330の「チェック部」欄にチェックがつけら
れたBNFデータの数を網羅率出力手段340がカウン
トするための記憶領域である。
【0069】図2は、図1中の文法網羅率計測器プログ
ラム生成器100の処理を示す流れ図である。この処理
は、BNFファイル読み取りステップA1と、BNFデ
ータ作成ステップA2と、意味検査ステップA3と、エ
ラー有無判定ステップA4と、BNFデータ取り出しス
テップA5と、全BNFデータ取り出し終了判定ステッ
プA6と、BNF規則チェック表プログラムコード生成
ステップA7と、BNFデータ取り出しステップA8
と、全BNFデータ取り出し終了判定ステップA9と、
BNF文法規則作成・出力ステップA10と、アクショ
ン部生成ステップA11とからなる。
【0070】図3は、図1中の文法網羅率計測器300
の処理を示す流れ図である。この処理は、構文解析手段
プログラムファイル読み込みステップB1と、BNF規
則チェック表プログラムファイル読み込みステップB2
と、テスト用入力ファイル読み取りステップB3と、フ
ァイル終了判定ステップB4と、テスト用入力ファイル
構文解析ステップB5と、BNF規則チェック表チェッ
ク依頼ステップB6と、BNF規則チェック表チェック
ステップB7と、次テスト用入力ファイル存在判定ステ
ップB8と、BNF規則チェック表アクセスステップB
9と、未アクセスBNFデータ存在判定ステップB10
と、BNFデータカウンタ増加ステップB11と、BN
Fデータ左辺値表示ステップB12と、BNFデータ対
応チェック有無判定ステップB13と、チェックカウン
タ増加ステップB14と、チェック表示印表示ステップ
B15と、BNFデータ右辺表示ステップB16と、網
羅率計算ステップB17と、網羅率表示ステップB18
とからなる。
【0071】図4は、BNFデータのデータ構造を示す
図である。
【0072】図4に示すように、BNFデータは、左辺
値と右辺式との組で構成されている。例えば、BNF文
法規則「segment::= SEGMENT segNo:e;」を表すBNF
データでは、「segment」が左辺値となり、「SEGMENT s
egNo:e;」が右辺式となる。
【0073】右辺式は、0個以上の右辺からなる。例え
ば、先の例の右辺式は、「SEGMENT」および「segNo:e」
の2つの右辺を有する。
【0074】右辺は、右辺値とオプションとの組で構成
される。例えば、右辺「segNo:e」では、「segNo」が右
辺値であり、「e」がオプションである。ここで、オプ
ションは省略可能である。例えば、右辺「SEGMENT」は
右辺値のみから構成される。
【0075】ORフラグおよびセミコロンフラグは、B
NFデータを文字列にするときに使用される。元のBN
F文法規則で左辺値の代わりに、「|」が使用されてい
る場合には、ORフラグを「true」にする。さもなくば
「false」にする。また、元のBNF文法規則で行末に
「;」がついている場合には、セミコロンフラグを「tru
e」にする。さもなくば「false」にする。例えば、BN
F文法規則「bit ::= OPENPR integer CLOSEPR | ;」
は、2つのBNF文法規則の「bit ::= OPENPR integer
CLOSEPR」と「bit ::= 」とからなる。前者のORフラ
グおよびセミコロンフラグは共に「false」であり、後
者のORフラグおよびセミコロンフラグは共に「true」
である。
【0076】図5〜図7は、BNFファイル220の具
体例を示す図である(図5〜図7に示す内容の全てによ
って1つのBNFファイル220が構成されている)。
【0077】図5〜図7に示されるように、BNFファ
イル220は、宣言部とBNF文法規則群とで構成され
ている。
【0078】宣言部は、BNF文法規則で使用される非
終端記号の宣言(non terminal文)や終端
記号の宣言(terminal文)等の「BNF文法規
則を解釈する上で必要となる諸設定」を行う。
【0079】BNF文法規則群は、検査対象の言語処理
システムが受理する文法を定義する。このBNF文法規
則群の中には、BNF文法に合致する入力データを受理
したときの言語処理システムの振る舞いを定めるアクシ
ョン部が定義されている。ただし、文法網羅率計測器プ
ログラム生成器100は、アクション部を無視して、B
NFファイル220を解釈する。
【0080】ファイル読み取り手段110は、ファイル
名格納手段190でファイル名が指定されたBNFファ
イル220の中身をトークンと呼ぶ単語単位に切り分け
る。例えば、BNFファイル220がBNF文法規則
「segment::= SEGMENT segNo:e;」を有する場合を考え
る。この場合には、ファイル読み取り手段110は、こ
のBNF文法規則を、「segment」,「::=」,「SEGMEN
T」,「segNo」,「:」,「e」,および「;」というト
ークンに切り分ける。
【0081】なお、ファイル読み取り手段110は、B
NFファイル220中のコメント,空白,および空行等
の後続の処理に不要な内容については、トークンとせ
ず、後続のBNF構文解析手段120には情報を渡さな
い。
【0082】また、ファイル読み取り手段110は、B
NF文法規則にアクション部がついている場合には、後
続のBNF構文解析手段120には情報を渡さない。例
えば、「segment::= SEGMENT segNo:e {: System.out.p
rintln("Segment no = " + e);:};」という入力データ
のように、「検査対象の言語処理システムがこの文法に
合致する入力を与えられると、画面に"Segment no = "
というメッセージとセグメント番号とを出力する動作」
がアクション部で定義されているとする。ちなみに、上
記の例におけるアクション部は、「{:」と「:}」とで囲
まれた部分である。このアクション部は、文法網羅率計
測器プログラム生成器100には関係しない。したがっ
て、ファイル読み取り手段110は、この文法に関する
トークン「segment」,「::=」,「SEGMENT」,「segN
o」,「:」,「e」,および「;」のみをBNF構文解析
手段120に渡し、アクション部については無視する。
【0083】図8〜図10は、文法網羅率計測器300
の出力の具体例を示す図である(図8〜図10に示す内
容の全てによって1つの文法網羅率計測器出力例が構成
されている)。
【0084】次に、図1〜図10を参照して、上記のよ
うに構成された本実施の形態に係る文法網羅率計測方式
の全体の動作について詳細に説明する。
【0085】第1に、本実施の形態に係る文法網羅率計
測方式における文法網羅率計測器プログラム生成器10
0の全体の動作について詳細に説明する。
【0086】文法網羅率計測器プログラム生成器100
内のファイル読み取り手段110は、BNFファイル2
20を文法網羅率計測器プログラム生成器100に入力
し、そのBNFファイル220を読み取り、各BNF文
法規則をトークンに分割する(図2のステップA1)。
【0087】例えば、ファイル読み取り手段110は、
BNF文法規則「packages ::= package1:e1 packages:
e2|;」を入力すると、「packages」,「::=」,「packa
ge1」,「:」,「e1」,「packages」,「:」,「e
2」,および「;」というトークンに切り分ける。
【0088】BNF構文解析手段120は、ステップA
1で生成されたトークンを受け取り、当該BNFファイ
ル220の構文解析を行い、BNF文法規則を表すBN
Fデータを生成する(ステップA2)。
【0089】先の例の場合には、2つのBNF文法規則
「packages ::= package1:e1 packages:e2」および「pa
ckages::=;」を表すBNFデータを生成する。これらの
BNF文法規則は、図4に示すような構造を有するBN
Fデータを形成する。
【0090】例えば、上例中の最初のBNF文法規則を
表すBNFデータは、左辺値の「packages」と、2つの
右辺の「package1:e1」および「packages:e2」とから構
成されている。この場合には、BNF文法規則の左辺値
は「|」を使って記述されていないので、ORフラグは
「false」となる。さらに、右辺の「package1:e1」およ
び「packages:e2」は、右辺値とオプションとに分類で
きる。また、このBNF文法規則の右辺式の最後に
は「;」が付いていないので、セミコロンフラグは「fal
se」となる。
【0091】さらに、例えば、上例中の2番目のBNF
文法規則を表すBNFデータは、左辺値の「packages」
と、0個の右辺とから構成されている。この場合には、
BNF文法規則の左辺値は「packages」の代わりに
「|」を使用して記述されているので、ORフラグは「t
rue」となる。また、このBNF文法規則の右辺式の末
尾には「;」が付いているので、セミコロンフラグは「t
rue」となる。
【0092】BNF構文解析手段120は、上述のよう
にしてBNFデータを生成するたびに、そのBNFデー
タをBNF規則データベース130に蓄積(格納)する
(ステップA2)。
【0093】例えば、先の例のBNF文法規則群に関し
ては、1番目のBNF文法規則「packages ::= package
1:e1 packages:e2」をBNFデータに変換し、そのBN
FデータをBNF規則データベース130に蓄積し、次
いで、2番目のBNF文法規則「packages::= ;」をB
NFデータに変換し、そのBNFデータをBNF規則デ
ータベース130に蓄積する。
【0094】さらに、例えば、図5に示すように、BN
Fファイル220において、「package1::= PACKAGE pa
ckageName:e1 BEGIN attributeBody:e2 actionBody:e3
notificationBody:e4 END;」というBNF文法規則が上
例に続いていれば、これをBNFデータに変換し、その
BNFデータをBNF規則データベース130に蓄積す
る。
【0095】BNF意味検査器140は、BNF規則デ
ータベース130に格納されているBNFデータにアク
セスする。これにより、BNFファイル220内の各B
NF文法規則が意味的に正しいか否かを検査する(ステ
ップA3)。
【0096】例えば、BNF文法規則中の左辺値は、あ
らかじめ、非終端記号であるという宣言をする必要があ
る。したがって、当該宣言なしに記述されている左辺値
があれば、当該BNF文法規則は意味的にエラー(意味
的な不整合)となる。
【0097】BNF意味検査器140は、このようなエ
ラーを発見すると、適切なエラーメッセージを表示手段
210に出力(表示)する(ステップA3)。その際
に、エラーファイル名についてはファイル名格納手段1
90を参照することで、エラー行番号については行番号
カウンタ200を参照することで、エラー発生個所を特
定して、上記の表示を行うことができる。
【0098】BNF意味検査器140は、ステップA3
の意味検査が終了した際に、1つ以上の意味的な不整合
を発見したか否か(エラーの有無)を判定する(ステッ
プA4)。
【0099】ステップA4で「BNFファイル220が
意味的に正しくない」と判定された場合(エラーがあっ
た場合)には、文法網羅率計測器プログラム生成器10
0はその稼動を停止する(処理を終了する)。
【0100】一方、ステップA4で「BNF意味検査器
140による意味検査が終了し、BNFファイル220
中の全BNF文法規則が意味的に正しいことが判明し
た」と判定された場合(エラーがなかった場合)には、
BNF規則チェック表生成手段160は、BNF規則デ
ータベース130中のBNFデータにアクセスし、以下
のa〜cに示すようにして、BNF規則チェック表33
0を実現するプログラム(BNF規則チェック表プログ
ラム)を生成する。
【0101】a.適当な順番で、BNF規則データベー
ス130からBNFデータを取り出す(ステップA
5)。
【0102】b.取り出した順番にBNFデータにBN
F番号を与え、BNFデータとともにBNF番号をBN
F規則チェック表330に挿入して行くコード(BNF
規則チェック表プログラム中のコード)を生成する(ス
テップA7)。その際に、「チェック部」欄は空白にす
るように、当該コードを生成する。
【0103】c.上記の一連の操作(ステップA5およ
びステップA7)を、BNF規則データベース130中
の全てのBNFデータを1回取り出すまで繰り返す(ス
テップA6)。
【0104】続いて、構文解析手段生成手段150は、
以下のa〜dに示すようにして、構文解析手段320を
実現するプログラム(構文解析手段プログラム)を生成
する。
【0105】a.適当な順番で、BNF規則データベー
ス130からBNFデータを取り出す(ステップA
8)。
【0106】b.ステップA8で取り出したBNFデー
タが表すBNF文法規則を生成し、構文解析手段プログ
ラムに出力する(ステップA10)。
【0107】c.ステップA8で取り出したBNFデー
タが表すBNF文法規則に合致する入力データを文法網
羅率計測器300が受け付けた場合の振る舞いを示すコ
ードを、当該BNF文法規則のアクション部として生成
・出力する(ステップA11)。このアクション部のコ
ードは、BNF規則チェック表330で当該BNF文法
規則を表すエントリ中の「チェック部」欄にチェックを
つけるコードである。
【0108】d.上記の一連の操作(ステップA8,ス
テップA10,およびステップA11)を、BNF規則
データベース130中の全てのBNFデータを1回取り
出すまで繰り返す(ステップA9)。
【0109】第2に、本実施の形態に係る文法網羅率計
測方式における文法網羅率計測器300(文法網羅率計
測器プログラム生成器100が生成したプログラムに基
づく文法網羅率計測器300)の全体の動作について詳
細に説明する。
【0110】まず、初期設定(図3のステップB1およ
びステップB2参照)が、以下のaおよびbに示すよう
にして行われる。
【0111】a.文法網羅率計測器300内の構文解析
手段320は、構文解析手段プログラムファイル230
を読み込み、テスト用入力ファイル390の文法を表す
BNF文法規則とそのBNF文法規則に合致する入力デ
ータを受理したときの振るまいであるアクション部とを
有する構文解析手段プログラムを得る(ステップB
1)。構文解析手段320は、この読み込みにより、テ
スト用入力ファイル390の構文解析手順を得て、それ
に従い構文解析を行う。
【0112】b.BNF規則チェック表格納手段360
は、BNF規則チェック表プログラムファイル240を
読み込み、BNF規則チェック表330の初期データを
設定する(ステップB2)。これにより、BNFファイ
ル220中の全てのBNF文法規則を示すBNFデータ
が、BNF規則チェック表330に格納される。このと
き、BNF規則チェック表330の各エントリの「チェ
ック部」欄は空となる。
【0113】以上の初期設定の終了後に、ファイル読み
取り手段310は、各テスト用入力ファイル390内の
データの読み取りを、当該テスト用入力ファイル390
の読み取りが終了するまで(ステップB4で「ファイル
終了」と判定されるまで)行う(ステップB3)。
【0114】ファイル読み取り手段310は、ステップ
B3で読み込んだデータの字句解析を行い、テスト用入
力ファイル390内の当該データをトークンに分割した
上で、後続の構文解析手段320に渡す。
【0115】ファイル読み取り手段310は、ステップ
B4で「ファイル終了ではない」と判定した場合には、
構文解析手段320によるステップB5の処理に制御を
渡す。
【0116】構文解析手段320は、構文解析手段プロ
グラムファイル230の内容に従い、テスト用入力ファ
イル390内のデータ(ファイル読み取り手段310か
ら渡されたデータ)の構文解析を行う(ステップB
5)。
【0117】構文解析手段320は、ステップB5の構
文解析の際において「合致(適応)したBNF文法規
則」に対応するBNF規則チェック表330中のエント
リの「チェック部」欄にチェックをつけるように、BN
F規則チェック表格納手段360に依頼する(ステップ
B6)。
【0118】BNF規則チェック表格納手段360は、
ステップB6の依頼に基づき、BNF規則チェック表3
30内の該当するエントリ中の「チェック部」欄にチェ
ックをつける(ステップB7)。
【0119】ステップB7の処理が終了すると、ステッ
プB3の処理が実行され、上記のステップB3〜ステッ
プB7の処理が繰り返される。
【0120】なお、ファイル読み取り手段310は、当
該テスト用入力ファイル390の全データを読み取り終
わった場合(ステップB4で「ファイル終了」と判定し
た場合)には、ステップB8に進む。
【0121】ステップB8では、ファイル読み取り手段
310は、テスト用入力ファイル390が他にも存在す
るか否かを調べる。
【0122】ファイル読み取り手段310は、ステップ
B8で「他のテスト用入力ファイル390が存在する」
と判定した場合には、新たなテスト用入力ファイル39
0に対してステップB3からの処理を繰り返す。
【0123】一方、ファイル読み取り手段310は、ス
テップB8で「他のテスト用入力ファイル390が存在
しない」と判定した場合には、網羅率出力手段340に
制御を渡す。
【0124】網羅率出力手段340は、以下のa〜iに
示すステップB9以降の処理によって、網羅状況を示す
情報を出力する処理を行う。
【0125】a.BNF番号の1から順に、BNF規則
チェック表格納手段360を通し、BNF規則チェック
表330にアクセスし、BNFデータおよびそのチェッ
クの有無を得る(ステップB9)。
【0126】b.次に、直前のステップB9の処理にお
いてアクセスしていないBNFデータが残っていたか否
か(全てのBNFデータにアクセスし終わっていなかっ
たかどうか)を判定する(ステップB10)。
【0127】c.ステップB10で「アクセスしていな
いBNFデータが残っており直前のステップB9でアク
セスできた」と判定した場合には、ステップB11に進
み、BNFデータカウンタ370の値を1増加させる。
このようBNFデータカウンタ370の値の増加によ
り、BNFデータの総個数をカウントしていく。
【0128】d.ステップB9で得たBNFデータのO
Rフラグが「false」の場合には、CRT出力手段35
0を介し、CRT400に当該BNFデータの左辺値を
表示する(ステップB12)。また、当該ORフラグが
「true」の場合には、CRT出力手段350を介し、C
RT400に「|」を表示する(ステップB12)。
【0129】e.ステップB9で得たBNFデータに対
する「チェック部」欄(当該BNFデータを有するエン
トリ中の「チェック部」欄)におけるチェックの有無を
調べる(ステップB13)。
【0130】f.ステップB13で「当該BNFデータ
に対してチェックがある」と判定した場合には、チェッ
クカウンタ380の値を1増加させる(ステップB1
4)。このようなチェックカウンタ380の値の増加に
より、チェックのついたBNFデータをカウントしてい
く。ここで、「チェックのついたBNFデータによって
表されるBNF文法規則」は、テスト用入力データ39
0に網羅されたBNF文法規則を意味する。
【0131】g.さらに、CRT出力手段350を介
し、ステップB13で「チェックがある」と判定された
BNFデータによって表されるBNF文法規則の横にチ
ェックを表す印(マーク)をCRT400上に表示する
(ステップB15)。このマークは、当該BNF文法規
則が網羅されているものであることを、ユーザに提示す
るものである。例えば、図8〜図10の文法網羅率計測
器出力例で「*」がついているBNF文法規則が「網羅
されたBNF文法規則」である。
【0132】h.ステップB13で「当該BNFデータ
に対してチェックがない」と判定した場合またはステッ
プB15の処理を終了した場合には、当該BNFデータ
の右辺を文字列に変換し、CRT出力手段350に伝
え、CRT400に表示する(ステップB16)。ここ
で、もし、チェックを表す記号が出力されているなら
ば、その横に配置するようにステップB16の出力(表
示)を行う。
【0133】i.ステップB16の処理の終了後に、ス
テップB9の処理に戻り、ステップB9以下の処理を繰
り返す。
【0134】一方、網羅率出力手段340は、ステップ
B10で「全てのBNFデータにアクセスし終わった」
と判定した場合には、以下のaおよびbに示す網羅率の
計算処理および表示処理を行う。
【0135】a.BNFデータカウンタ370およびチ
ェックカウンタ380の値に基づいて網羅率を計算する
(ステップB17)。すなわち、チェックカウンタ38
0の値をBNFデータカウンタ370の値で割ることに
より、網羅率を算出する。
【0136】b.CRT出力手段350を介し、ステッ
プB17で計算した網羅率をCRT400に表示する
(ステップB18)。
【0137】以上で、文法網羅率計測器300の処理が
終了する。
【0138】第3に、具体例を用いて、文法網羅率計測
器プログラム生成器100の具体的な動作について説明
する。なお、この例では、検査対象の言語処理システム
に入力される言語文法が、図5〜図7に示すBNFファ
イル220(BNFファイル「sample.bnf」)を記述す
る文法であるものとする。
【0139】ここで、図11は、文法網羅率計測器プロ
グラム生成器100において生成されるBNFデータの
具体例を示す図である。
【0140】文法網羅率計測器プログラム生成器100
は、このBNFファイル220を入力する。
【0141】なお、このBNFファイル220のファイ
ル名「sample.bnf」は、あらかじめファイル名格納手段
190に格納されている。また、行番号カウンタ200
の値は0に初期設定されている。
【0142】ファイル読み取り手段110は、このBN
Fファイル220を字句解析し、トークンに分割する
(図2のステップA1)。
【0143】例えば、図5〜図7のBNFファイル22
0のうちのBNF文法規則「bit ::=OPENPR integer CL
OSEPR | ;」を字句解析すると、「bit」,「::=」,「O
PENPR」,「integer」,「CLOSEPR」,「|」,およ
び「;」というトークンに分割する。
【0144】この際、BNFファイル220を1行読む
毎に、ファイル読み取り手段110は行番号カウンタ2
00の値を1加算していく。
【0145】BNF構文解析手段120は、これらのト
ークンを構文解析し、図11に示されるBNFデータを
生成する(ステップA2)。上例の場合、「bit ::= OP
ENPRinteger CLOSEPR」および「bit ::=」というの2つ
のBNF文法規則が存在するため、図11に示す2つの
BNFデータとなる。
【0146】BNF構文解析手段120は、これらの2
つのBNFデータをBNF規則データベース130に格
納する(ステップA2)。
【0147】全ての構文解析が終了すると、BNF意味
検査器140は、BNF規則データベース130に蓄積
された各BNFデータが意味的に正しいか否かを検査し
ていく(ステップA3)。
【0148】例えば、トークン「bit」が非終端記号と
して定義されているか否かを調べ、「sample.bnf」とい
うファイル名のBNFファイル220中に「non termin
al … bit, …;」と定義されているため、「意味エラー
とはならない」と判定する。
【0149】全てのBNFデータに対して意味検査が終
了すると、BNF規則チェック表生成手段160は、B
NF規則チェック表330に埋めるべきコードを作成す
る(ステップA5〜ステップA7)。
【0150】ここで、BNF規則チェック表生成手段1
60は、BNF構文解析手段120がBNF規則データ
ベース130にBNFデータを格納した順番と同じ順番
で、BNF規則データベース130からBNFデータを
全て取り出す。
【0151】例えば、BNF規則チェック表生成手段1
60がBNFデータ「bit ::= OPENPRinteger CLOSEP
R」を、仮にn番目(nは正整数)に扱ったとすると、
(BNF番号, BNFデータ, チェック部) の3つ組
(n, bit ::= OPENPR integer CLOSEPR, "")をBNF
規則チェック表330に登録するコードとして生成し
(「チェック部」欄の""は空白を示す)、ファイル出力
手段180を介して、BNF規則チェック表プログラム
ファイル240に出力する。
【0152】また、BNFデータ「bit ::= ;」につい
ては、(n+1, bit ::=, "")をBNF規則チェック表3
30に登録するコードとして生成し、ファイル出力手段
180を介して、BNF規則チェック表プログラムファ
イル240に出力する。
【0153】BNF規則チェック表生成手段160が全
てのBNFデータに対してBNF規則チェック表330
に埋めるコードを作成し終えると、構文解析手段生成手
段150が構文解析手段プログラムファイル230内の
プログラムを生成する(ステップA8〜ステップA1
1)。
【0154】例えば、BNFデータ「bit ::= OPENPR i
nteger CLOSEPR」に対して、BNF文法規則を表す文字
列「bit ::= OPENPR integer CLOSEPR」を出力し(ステ
ップA10)、そのアクション部を出力する。アクショ
ン部としては、BNF規則チェック表330からBNF
データ「bit ::= OPENPR integer CLOSEPR」のエントリ
を見つけ、それに対する「チェック部」欄にチェックを
つけるコードを出力する(ステップA11)。このアク
ション部は、文法網羅率測定器300に、BNF文法規
則「bit ::= OPENPR integer CLOSEPR」に合致するテス
ト用入力ファイル390中の構文(データ)が与えられ
たときに起動する。
【0155】第4に、具体例を用いて、文法網羅率計測
器300の具体的な動作について説明する。
【0156】まず、BNF規則チェック表格納手段36
0は、BNF規則チェック表プログラムファイル230
に基づき、BNF規則チェック表330の初期設定を行
う(図3のステップB2)。例えば、(n, bit ::= OPEN
PR integer CLOSEPR, "")の3つ組からなるデータ(エ
ントリ)をBNF規則チェック表330に追加する。
【0157】上記の初期設定や構文解析手段320によ
る初期設定の後に、文法網羅率計測器300は、テスト
用入力ファイル390を入力する(ステップB3)。
【0158】例えば、テスト用入力ファイル390の中
に「LENGTH 4 (3);」という行があったとする。この行
の「(3)」は、BNF文法規則「bit ::= OPENPR intege
r CLOSEPR」に合致する。
【0159】このとき、ファイル読み取り手段310
は、テスト用入力ファイル390から「(3)」を読み取
り、トークン「(」,「3」,および「)」に分割する。
ここで、「(」は「OPENPR」に該当し、「3」は「intege
r」に該当し、「)」は「CLOSEPR」に該当する。
【0160】構文解析手段320は、ステップB1で読
み込んだ構文解析手段プログラムファイル230に従い
構文解析を行い(ステップB5)、上記のトークン列は
BNF文法規則「bit ::= OPENPR integer CLOSEPR」に
合致することを認識し、そのBNF文法規則に対するア
クション部を実行する。このアクション部は、BNF規
則チェック表格納手段360を介して、BNF規則チェ
ック表330のエントリ(n, bit ::= OPENPR integer C
LOSEPR, "")の「チェック部」欄にチェックをつけ、(n,
bit ::= OPENPR integer CLOSEPR, "OK")とする(ステ
ップB6およびステップB7)。なお、ここでは、「O
K」がチェックを示すマークであるとする。
【0161】構文解析手段320が全てのテスト用入力
ファイル390の構文解析を終えた後に、網羅率出力手
段340が、BNF規則チェック表格納手段360を介
して、BNF規則チェック表330中の全てのエントリ
のデータ(BNFデータおよびそのチェックの有無)
に、BNF番号の1から順にアクセスする(ステップB
9)。
【0162】また、網羅率出力手段340は、BNFデ
ータにアクセスするたびに、BNFデータカウンタ37
0を1増加させる(ステップB11)。
【0163】その上で、例えば、網羅率出力手段340
は、以下のa〜hに示すような処理を行う。
【0164】a.BNF規則チェック表330中のBN
F番号nをアクセスすると、エントリ(n, bit ::= OPE
NPR integer CLOSEPR, "OK")を得る。
【0165】b.そして、ORフラグが「false」なの
で、CRT出力手段350を介して、CRT400にB
NFデータの左辺値「bit」を出力する(ステップB1
2)。
【0166】c.また、エントリ(n, bit ::= OPENPR
integer CLOSEPR, "OK")の「チェック部」欄はチェッ
ク済みなので、チェックカウンタ380の値を1増加さ
せる(ステップB14)。
【0167】d.さらに、CRT出力手段350を介し
て、チェック済みを示す印(マーク)の「*」をCRT
400に出力する(ステップB15)。
【0168】e.またさらに、CRT出力手段350を
介して、右辺式「OPENPR integer CLOSEPR」をCRT4
00に出力する(ステップB16)。なお、セミコロン
フラグが「false」なので、「;」は出力しない。
【0169】f.上記のBNF番号nに続いて、BNF
番号n+1をアクセスすると、エントリ(n+1, bit ::=
OPENPR integer CLOSEPR, "")を得る。
【0170】g.そして、ORフラグが「true」なの
で、CRT出力手段350を介して、CRT400に
「|」を出力する(ステップB12)。このとき、「チ
ェック部」欄にチェックがないので、チェックカウンタ
380の値の増加や、印「*」の出力を行わない。
【0171】h.また、セミコロンフラグが「true」な
ので、CRT出力手段350を介して、右辺式「;」を
CRT400に出力する(ステップB16)。
【0172】以上のようにして、網羅率出力手段340
は、全てのBNFデータにアクセスし終えると、チェッ
クカウンタ380の値をBNFデータカウンタ370の
値で割って網羅率を計算し(ステップB17)、算出し
た網羅率をCRT出力手段350を介してCRT400
に出力する(ステップB18)。
【0173】(2) 第2の実施の形態 図12は、本発明の第2の実施の形態に係る文法網羅率
計測方式の構成を示すブロック図である。
【0174】図12を参照すると、本実施の形態に係る
文法網羅率計測方式は、文法網羅率計測器プログラム生
成器500と、文法網羅率計測器300と、BNFファ
イル220と、構文解析手段プログラムファイル230
と、BNF規則チェック表プログラムファイル240
と、テスト用入力ファイル390と、CRT400とを
含んで構成されている。
【0175】文法網羅率計測器プログラム生成器500
は、ファイル読み取り手段110と、BNF構文解析手
段120と、BNF規則データベース130と、構文解
析手段生成手段150と、BNF規則チェック表生成手
段160と、ファイル出力手段170と、ファイル出力
手段180とを含んで構成されている。
【0176】なお、文法網羅率計測器プログラム生成器
500以外の構成要素は、第1の実施の形態に係る文法
網羅率計測方式の構成要素と同一のものである。
【0177】図12を参照すると、本発明の第2の実施
の形態における文法網羅率計測器プログラム生成器50
0は、図1中の文法網羅率計測器プログラム生成器10
0(第1の実施の形態における文法網羅率計測器プログ
ラム生成器100)に対して、BNF意味検査器14
0,ファイル名格納手段190,行番号カウンタ20
0,および表示手段210を省いた点で異なっている。
【0178】図13は、図12中の文法網羅率計測器プ
ログラム生成器500の処理を示す流れ図である。この
処理は、BNFファイル読み取りステップA1と、BN
Fデータ作成ステップA2と、BNFデータ取り出しス
テップA5と、全BNFデータ取り出し終了判定ステッ
プA6と、BNF規則チェック表プログラムコード生成
ステップA7と、BNFデータ取り出しステップA8
と、全BNFデータ取り出し終了判定ステップA9と、
BNF文法規則作成・出力ステップA10と、アクショ
ン部生成ステップA11とからなる。
【0179】次に、図12および図13を参照して、本
実施の形態に係る文法網羅率計測方式の全体の動作につ
いて説明する。
【0180】図13中のステップA1,A2,およびA
5〜A11で示される本実施の形態の動作は、図2中の
ステップA1,A2,およびA5〜A11で示される第
1の実施の形態の動作と同一であるため、これらの動作
については説明を省略する。
【0181】第1の実施の形態では、ステップA2の処
理の後に、BNF意味検査器140よる意味検査が行わ
れていた。
【0182】これに対して、本実施の形態では、ステッ
プA2の処理の後に、BNF意味検査器140による意
味検査が行われずに、ステップA5の処理に移行する。
【0183】次に、本実施の形態に係る文法網羅率計測
方式の効果について説明する。
【0184】本実施の形態では、BNF意味検査器14
0が省かれているため、意味検査の処理を行わずに済
み、より高速に文法網羅率測定器300を実現するため
のプログラムを生成することができる。
【0185】なお、BNFファイル220は、検査対象
の言語処理システムの開発に使用されており、その段階
で、意味的にも正しいことが保証されている。そのた
め、言語処理システム開発に使用されたBNFファイル
と同一のファイルをBNFファイル220として使用す
る限り、本実施の形態のようにBNFファイル220に
対する意味検査工程を省略しても問題が発生しない蓋然
性が高い。
【0186】(3) 第3の実施の形態 図14は、本発明の第3の実施の形態に係る文法網羅率
計測方式の構成を示すブロック図である。
【0187】図14を参照すると、本実施の形態に係る
文法網羅率計測方式は、文法網羅率計測器プログラム生
成器100/500(図1中の文法網羅率計測器プログ
ラム生成器100であっても図12中の文法網羅率計測
器プログラム生成器500であっても可能であることを
意味する)と、文法網羅率計測器700と、BNFファ
イル220と、構文解析手段プログラムファイル230
と、BNF規則チェック表プログラムファイル240
と、テスト用入力ファイル390と、網羅状況報告ファ
イル720とを含んで構成されている。
【0188】文法網羅率計測器700は、ファイル読み
取り手段310と、構文解析手段320と、BNF規則
チェック表330と、網羅率出力手段340と、BNF
規則チェック表格納手段360と、BNFデータカウン
タ370と、チェックカウンタ380と、ファイル出力
手段710とを含んで構成されている。
【0189】なお、文法網羅率計測器700および網羅
状況報告ファイル720以外の構成要素は、第1の実施
の形態/第2の実施の形態に係る文法網羅率計測方式の
構成要素と同一のものである。
【0190】図14を参照すると、本発明の第3の実施
の形態は、第1の実施の形態/第2の実施の形態におけ
る文法網羅率計測器300内のCRT出力手段350お
よびCRT400の代わりに、文法網羅率計測器700
内のファイル出力手段710および網羅状況報告ファイ
ル720とを設けている点で、第1の実施の形態/第2
の実施の形態と異なっている。
【0191】ファイル出力手段710は網羅率出力手段
340が生成した網羅状況を示す情報(BNF文法規則
および網羅個所の印)および網羅率を文字列の形で受け
取り、それらを示す情報(文法網羅率測定器700が測
定した結果)を網羅状況報告ファイル720として出力
する。
【0192】網羅状況報告ファイル720は、文法網羅
率測定器700が測定した結果を内容とするファイルで
ある。
【0193】図15は、図14中の文法網羅率計測器7
00の処理を示す流れ図である。この処理は、構文解析
手段プログラムファイル読み込みステップB1と、BN
F規則チェック表プログラムファイル読み込みステップ
B2と、テスト用入力ファイル読み取りステップB3
と、ファイル終了判定ステップB4と、テスト用入力フ
ァイル構文解析ステップB5と、BNF規則チェック表
チェック依頼ステップB6と、BNF規則チェック表チ
ェックステップB7と、次テスト用入力ファイル存在判
定ステップB8と、BNF規則チェック表アクセスステ
ップB9と、未アクセスBNFデータ存在判定ステップ
B10と、BNFデータカウンタ増加ステップB11
と、BNFデータ左辺値網羅状況報告ファイル出力ステ
ップD1と、BNFデータ対応チェック有無判定ステッ
プB13と、チェックカウンタ増加ステップB14と、
チェック表示印網羅状況報告ファイル出力ステップD2
と、BNFデータ右辺網羅状況報告ファイル出力ステッ
プD3と、網羅率計算ステップB17と、網羅率網羅状
況報告ファイル出力ステップD4とからなる。
【0194】次に、図14および図15を参照して、本
実施の形態に係る文法網羅率計測方式の全体の動作につ
いて説明する。
【0195】図15中のステップB1〜B11,B1
3,B14,およびB17で示される本実施の形態の動
作は、図3中のステップB1〜B11,B13,B1
4,およびB17で示される第1の実施の形態の動作と
同一であるため、これらの動作については説明を省略す
る。
【0196】ここで、以下のa〜dに、本実施の形態に
係る文法網羅率計測方式における文法網羅率計測器70
0の独特な動作(第1の実施の形態/第2の実施の形態
における文法網羅率計測器300とは異なる動作)につ
いて列挙する。
【0197】a.第1の実施の形態/第2の実施の形態
では、ステップB12にて、網羅率出力手段340が、
ORフラグに応じて、BNFデータの左辺値を表す文字
列または文字列「|」をCRT出力手段350を介しC
RT400に表示していた。これに対して、本実施の形
態では、網羅率出力手段340が、ORフラグに応じ
て、BNFデータの左辺値を表す文字列または文字列
「|」をファイル出力手段710を介し網羅状況報告フ
ァイル720に出力する(図15のステップD1)。
【0198】b.第1の実施の形態/第2の実施の形態
では、ステップB15にて、網羅率出力手段340が、
BNF文法規則の横にチェックを表す印をCRT出力手
段350を介しCRT400に表示していた。これに対
して、本実施の形態では、網羅率出力手段340が、B
NF文法規則の横にチェックを表す印をファイル出力手
段710を介し網羅状況報告ファイル720に出力する
(ステップD2)。
【0199】c.第1の実施の形態/第2の実施の形態
では、ステップB16にて、網羅率出力手段340が、
BNFデータの右辺をCRT出力手段350に伝え、C
RT400に表示していた。これに対して、本実施の形
態では、網羅率出力手段340が、BNFデータの右辺
を表す文字列をファイル出力手段710に伝え、網羅状
況報告ファイル720に出力する(ステップD3)。
【0200】d.第1の実施の形態/第2の実施の形態
では、ステップB18にて、網羅率出力手段340が、
網羅率をCRT出力手段350を介しCRT400に表
示していた。これに対して、本実施の形態では、網羅率
出力手段340が、網羅率をファイル出力手段710を
介し網羅状況報告ファイル720に出力する(ステップ
D4)。
【0201】次に、本実施の形態に係る文法網羅率計測
方式の具体的な動作について説明する。
【0202】例えば、BNF文法規則「attributes ::=
attribute SEMICOLON attributes」が、「チェック
部」欄にチェックがあるBNFデータのBNF文法規
則、つまり、網羅済みのBNF文法規則であるとする。
【0203】網羅率出力手段340は、BNFデータの
左辺値を表す文字列「attributes」をファイル出力手段
710に伝え、当該BNF文法規則に関する網羅状況を
示す情報を網羅状況報告ファイル720に出力する(ス
テップD1)。
【0204】ここで、本BNF文法規則はチェック済み
なので、ステップB14およびステップD2の処理に進
む(ステップB13)。
【0205】網羅率出力手段340は、チェックカウン
タを1増加させ(ステップB14)、その後に、BNF
データが網羅されていることを表す文字列「*」をファ
イル出力手段710に伝え、その文字列を網羅状況報告
ファイル720に出力する(ステップD2)。
【0206】さらに、網羅率出力手段340は、BNF
データの右辺を表す文字列「attribute SEMICOLON attr
ibutes」をファイル出力手段710に伝え、網羅状況報
告ファイル720に出力する(ステップD3)。
【0207】最後に、網羅率の表示に関するステップD
4について述べる。ステップB17において、網羅率を
計算したところ、34%だとする。このときに、網羅率
出力手段340は、ファイル出力手段710を介し文字
列「34%」を網羅状況報告ファイル720に出力する
(ステップD4)。
【0208】次に、本実施の形態に係る文法網羅率計測
方式における特有の効果について説明する。
【0209】図8〜図10の文法網羅率計測器出力例で
示されるように、網羅状況の報告に関するデータは長大
になる。そこで、本実施の形態のように当該データをフ
ァイル(網羅状況報告ファイル720)に収めることに
より、ユーザにとって非網羅箇所の検出が容易になると
いう効果が生じる。すなわち、ユーザにとって、テキス
トエディタ等を介し当該ファイルにアクセスする方が、
非網羅個所の発見に役にたつ。
【0210】(4) 第1の実施の形態および第2の実
施の形態の変形形態(拡張形態) 上述の第1の実施の形態および第2の実施の形態に係る
文法網羅率計測方式に対しては、CRT400を他の出
力装置に変えるという変形形態を考えることができる。
他の出力装置としては、例えば、プリンタが考えられ
る。この場合には、CRT出力手段350は当該出力装
置に応じた出力手段(例えば、プリンタ出力手段)に代
替される。
【0211】(5) 第4の実施の形態 図16は、本発明の第4の実施の形態に係る文法網羅率
計測方式の構成を示すブロック図である。
【0212】図16を参照すると、本発明の第4の実施
の形態に係る文法網羅率計測方式は、図1に示した第1
の実施の形態に係る文法網羅率計測方式に対して、文法
網羅率計測器プログラム生成器プログラムを記録した記
録媒体910を備える点が異なっている。この記録媒体
910は、磁気ディスク,半導体メモリ,その他の記録
媒体であってよい。
【0213】文法網羅率計測器プログラム生成器プログ
ラムは、記録媒体910から文法網羅率計測器プログラ
ム生成器100(ファイル読み取り手段110,BNF
構文解析手段120,BNF規則データベース130,
BNF意味検査器140,構文解析手段生成手段15
0,BNF規則チェック表生成手段160,ファイル出
力手段170,ファイル出力手段180,ファイル名格
納手段190,行番号カウンタ200,および表示手段
210を備える文法網羅率計測器プログラム生成器10
0)に読み込まれ、当該文法網羅率計測器プログラム生
成器100の動作をファイル読み取り手段110,BN
F構文解析手段120,BNF規則データベース13
0,BNF意味検査器140,構文解析手段生成手段1
50,BNF規則チェック表生成手段160,ファイル
出力手段170,ファイル出力手段180,ファイル名
格納手段190,行番号カウンタ200,および表示手
段210として制御する。文法網羅率計測器プログラム
生成器プログラムの制御による文法網羅率計測器プログ
ラム生成器100の動作は、第1の実施の形態における
文法網羅率計測器プログラム生成器100の動作と全く
同様になるので、その詳しい説明を割愛する。
【0214】(6) 第5の実施の形態 図17は、本発明の第5の実施の形態に係る文法網羅率
計測方式の構成を示すブロック図である。
【0215】図17を参照すると、本発明の第5の実施
の形態に係る文法網羅率計測方式は、図12に示した第
2の実施の形態に係る文法網羅率計測方式に対して、文
法網羅率計測器プログラム生成器プログラムを記録した
記録媒体920を備える点が異なっている。この記録媒
体920は、磁気ディスク,半導体メモリ,その他の記
録媒体であってよい。
【0216】文法網羅率計測器プログラム生成器プログ
ラムは、記録媒体920から文法網羅率計測器プログラ
ム生成器500(ファイル読み取り手段110,BNF
構文解析手段120,BNF規則データベース130,
構文解析手段生成手段150,BNF規則チェック表生
成手段160,ファイル出力手段170,およびファイ
ル出力手段180を備える文法網羅率計測器プログラム
生成器500)に読み込まれ、当該文法網羅率計測器プ
ログラム生成器500の動作をファイル読み取り手段1
10,BNF構文解析手段120,BNF規則データベ
ース130,構文解析手段生成手段150,BNF規則
チェック表生成手段160,ファイル出力手段170,
およびファイル出力手段180として制御する。文法網
羅率計測器プログラム生成器プログラムの制御による文
法網羅率計測器プログラム生成器500の動作は、第2
の実施の形態における文法網羅率計測器プログラム生成
器500の動作と全く同様になるので、その詳しい説明
を割愛する。
【0217】(7) 第6の実施の形態 図18は、本発明の第6の実施の形態に係る文法網羅率
計測方式の構成を示すブロック図である。
【0218】図18を参照すると、本発明の第6の実施
の形態に係る文法網羅率計測方式は、図14に示した第
3の実施の形態に係る文法網羅率計測方式に対して、文
法網羅率計測器プログラム生成器プログラムを記録した
記録媒体930を備える点が異なっている。この記録媒
体930は、磁気ディスク,半導体メモリ,その他の記
録媒体であってよい。
【0219】文法網羅率計測器プログラム生成器プログ
ラムは、記録媒体930から文法網羅率計測器プログラ
ム生成器100/500(図16に示す文法網羅率計測
器プログラム生成器100または図17に示す文法網羅
率計測器プログラム生成器500)に読み込まれ、当該
文法網羅率計測器プログラム生成器100/500の動
作を「ファイル読み取り手段110,BNF構文解析手
段120,BNF規則データベース130,BNF意味
検査器140,構文解析手段生成手段150,BNF規
則チェック表生成手段160,ファイル出力手段17
0,ファイル出力手段180,ファイル名格納手段19
0,行番号カウンタ200,および表示手段210」ま
たは「ファイル読み取り手段110,BNF構文解析手
段120,BNF規則データベース130,構文解析手
段生成手段150,BNF規則チェック表生成手段16
0,ファイル出力手段170,およびファイル出力手段
180」として制御する。文法網羅率計測器プログラム
生成器プログラムの制御による文法網羅率計測器プログ
ラム生成器100/500の動作は、第3の実施の形態
における文法網羅率計測器プログラム生成器100/5
00の動作と全く同様になるので、その詳しい説明を割
愛する。
【0220】
【発明の効果】以上説明したように、本発明によると、
以下に示すような効果が生じる。
【0221】第1の効果は、検査対象の言語処理システ
ムで開発したBNFファイルおよび字句解析ファイルを
そのまま使用し、文法網羅率計測器を生成することがで
きるということである。
【0222】このようにして生成された文法網羅率計測
器により、検査用データ(テスト用入力ファイルのデー
タ)の量および質の妥当性を知ることができる。また、
網羅されていないBNF文法規則を調べることにより、
どのようなBNF文法規則を追加すればよいかを考える
参考とすることができる。
【0223】第2の効果は、上記のような文法網羅率計
測器をすでにあるファイルを利用して自動的に生成でき
るため、検査工数の削減を達成できるということであ
る。
【0224】このように文法網羅率計測器を自動的に生
成可能なのは、構文解析手段生成手段およびBNF規則
チェック表生成手段が、BNFファイルに基づき、検査
対象の言語処理システムの受理文法に合致した構文解析
手段プログラムファイルおよびBNF規則チェック表プ
ログラムファイルを生成するためである。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係る文法網羅率計
測方式の構成を示すブロック図である。
【図2】図1中の文法網羅率計測器プログラム生成器の
処理を示す流れ図である。
【図3】図1中の文法網羅率計測器の処理を示す流れ図
である。
【図4】本発明の文法網羅率計測方式で取り扱われるB
NFデータの構造を示す図である。
【図5】文法網羅率計測器プログラム生成器の入力(B
NFファイル)の具体例を示す図である。
【図6】文法網羅率計測器プログラム生成器の入力(B
NFファイル)の具体例を示す図である。
【図7】文法網羅率計測器プログラム生成器の入力(B
NFファイル)の具体例を示す図である。
【図8】文法網羅率計測器の出力の具体例を示す図であ
る。
【図9】文法網羅率計測器の出力の具体例を示す図であ
る。
【図10】文法網羅率計測器の出力の具体例を示す図で
ある。
【図11】BNFデータの具体例を示す図である。
【図12】本発明の第2の実施の形態に係る文法網羅率
計測方式の構成を示すブロック図である。
【図13】図12中の文法網羅率計測器プログラム生成
器の処理を示す流れ図である。
【図14】本発明の第3の実施の形態に係る文法網羅率
計測方式の構成を示すブロック図である。
【図15】図14中の文法網羅率計測器の処理を示す流
れ図である。
【図16】本発明の第4の実施の形態に係る文法網羅率
計測方式の構成を示すブロック図である。
【図17】本発明の第5の実施の形態に係る文法網羅率
計測方式の構成を示すブロック図である。
【図18】本発明の第6の実施の形態に係る文法網羅率
計測方式の構成を示すブロック図である。
【図19】本発明に対する従来の技術の第1の具体例の
構成を示すブロック図である。
【図20】本発明に対する従来の技術の第2の具体例の
構成を示すブロック図である。
【図21】本発明に対する従来の技術の第3の具体例の
構成を示すブロック図である。
【符号の説明】
100,500 文法網羅率計測器プログラム生成器 110,310 ファイル読み取り手段 120 BNF構文解析手段 130 BNF規則データベース 140 BNF意味検査器 150 構文解析手段生成手段 160 BNF規則チェック表生成手段 170,180,710 ファイル出力手段 190 ファイル名格納手段 200 行番号カウンタ 210 表示手段 220 BNFファイル 230 構文解析手段プログラムファイル 240 BNF規則チェック表プログラムファイル 300,700 文法網羅率計測器 320 構文解析手段 330 BNF規則チェック表 340 網羅率出力手段 350 CRT出力手段 360 BNF規則チェック表格納手段 370 BNFデータカウンタ 380 チェックカウンタ 390 テスト用入力ファイル 400 CRT 720 網羅状況報告ファイル 910,920,930 記録媒体

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 文法網羅率計測器が検査対象の言語処理
    システムの受理する文法に対して網羅率を測定できるよ
    うに、検査対象の文法を表すBNFファイルを読み込ん
    で構文解析を行い、当該構文解析に基づいて生成したB
    NFデータをBNF規則データベースに格納し、当該B
    NF規則データベースに基づいて構文解析手段プログラ
    ムおよびBNF規則チェック表プログラムを生成する文
    法網羅率計測器プログラム生成器と、前記文法網羅率計
    測器プログラム生成器によって生成された構文解析手段
    プログラムおよびBNF規則チェック表プログラムを読
    み込み、それらの内容に従ってテスト用入力ファイルに
    存在するBNF文法規則を表すBNF規則チェック表内
    のBNFデータをチェックし、当該チェックに基づきテ
    スト用入力ファイルに関するBNF文法規則の網羅状況
    を示す情報および網羅率を生成・出力する前記文法網羅
    率計測器とを有することを特徴とする文法網羅率計測方
    式。
  2. 【請求項2】 BNFファイルを読み込み、そのBNF
    ファイルのデータをトークン単位に切り分ける文法網羅
    率計測器プログラム生成器内のファイル読み取り手段
    と、前記ファイル読み取り手段により切り分けられたト
    ークンに基づいて前記ファイル読み取り手段により読み
    込まれたBNFファイルに対する構文解析を行い、BN
    F文法規則に基づいてBNF文法規則を表すデータ構造
    であるBNFデータを生成し、当該BNFデータをBN
    F規則データベースに格納する文法網羅率計測器プログ
    ラム生成器内のBNF構文解析手段と、前記BNF規則
    データベースに蓄積されたBNFデータに基づいて文法
    網羅率計測器内の構文解析手段を実現するための構文解
    析手段プログラムを生成する文法網羅率計測器プログラ
    ム生成器内の構文解析手段生成手段と、前記BNF規則
    データベースに蓄積されたBNFデータに基づいて文法
    網羅率計測器内のBNF規則チェック表の内容を埋める
    ためのBNF規則チェック表プログラムを生成する文法
    網羅率計測器プログラム生成器内のBNF規則チェック
    表生成手段と、BNF規則番号,BNFデータ,および
    チェック部の3欄を含むエントリを有するBNF文法規
    則の一覧表である文法網羅率計測器内の前記BNF規則
    チェック表と、BNFデータの総数をカウントするため
    の記憶領域である文法網羅率計測器内のBNFデータカ
    ウンタと、前記BNF規則チェック表の「チェック部」
    欄にチェックがつけられたBNFデータの数をカウント
    するための記憶領域である文法網羅率計測器内のチェッ
    クカウンタと、BNFファイルで定義された文法に則っ
    た1つ以上のテスト用入力ファイルを読み込み、その字
    句解析を行う文法網羅率計測器内のファイル読み取り手
    段と、前記構文解析手段生成手段により生成された構文
    解析手段プログラムを解釈することにより動作し、前記
    ファイル読み取り手段による字句解析が行われたテスト
    用入力ファイルの構文解析を行い、当該テスト用入力フ
    ァイルに存在するBNF文法規則を表すBNFデータに
    関して前記BNF規則チェック表中の該当するエントリ
    にチェックをつけるように制御する文法網羅率計測器内
    の前記構文解析手段と、前記BNF規則チェック表内の
    BNFデータおよびそのチェック内容を得て、テスト用
    入力ファイルにおけるBNF文法規則の網羅状況を示す
    情報を生成し、前記BNFデータカウンタおよび前記チ
    ェックカウンタの値に基づいて網羅率を算出する文法網
    羅率計測器内の網羅率出力手段と、前記網羅率出力手段
    の要求に応じ、前記網羅率出力手段により生成・算出さ
    れた情報をCRTに出力する文法網羅率計測器内のCR
    T出力手段と、BNF規則チェック表プログラムに従い
    前記BNF規則チェック表のデータの内容を初期設定
    し、他のモジュールからの要求に応じて前記BNF規則
    チェック表に対する読み書きを行う文法網羅率計測器内
    のBNF規則チェック表格納手段とを有することを特徴
    とする文法網羅率計測方式。
  3. 【請求項3】 全てのBNF文法規則に関してBNF構
    文解析手段により生成されたBNFデータがBNF規則
    データベースに蓄積された後に、前記BNF規則データ
    ベースにアクセスし、各BNFデータによって表される
    BNF文法規則が意味的に妥当か否かを検査し、BNF
    文法規則の意味的な不整合を発見した場合にその旨を示
    すエラーメッセージを出力する文法網羅率計測器プログ
    ラム生成器内のBNF意味検査器を含むことを特徴とす
    る請求項2記載の文法網羅率計測方式。
  4. 【請求項4】 網羅状況を示す情報および網羅率をCR
    Tに表示するCRT出力手段の代わりに、網羅状況を示
    す情報および網羅率を網羅状況報告ファイルに出力する
    ファイル出力手段を有することを特徴とする請求項2ま
    たは請求項3記載の文法網羅率計測方式。
  5. 【請求項5】 網羅状況を示す情報および網羅率をCR
    Tに表示するCRT出力手段の代わりに、網羅状況を示
    す情報および網羅率をCRT以外の出力装置に出力する
    当該出力装置に応じた出力手段を有することを特徴とす
    る請求項2または請求項3記載の文法網羅率計測方式。
  6. 【請求項6】 文法網羅率計測器プログラム生成器およ
    び文法網羅率計測器からなる文法網羅率計測方式におけ
    る当該文法網羅率計測器プログラム生成器を、文法網羅
    率計測器が検査対象の言語処理システムの受理する文法
    に対して網羅率を測定できるように、検査対象の文法を
    表すBNFファイルを読み込んで構文解析を行い、当該
    構文解析に基づいて生成したBNFデータをBNF規則
    データベースに格納し、当該BNF規則データベースに
    基づいて構文解析手段プログラムおよびBNF規則チェ
    ック表プログラムを生成するように機能させるためのプ
    ログラムを記録した記録媒体。
  7. 【請求項7】 文法網羅率計測器プログラム生成器およ
    び文法網羅率計測器からなる文法網羅率計測方式におけ
    る当該文法網羅率計測器プログラム生成器を、BNFフ
    ァイルを読み込み、そのBNFファイルのデータをトー
    クン単位に切り分けるファイル読み取り手段,前記ファ
    イル読み取り手段により切り分けられたトークンに基づ
    いて前記ファイル読み取り手段により読み込まれたBN
    Fファイルに対する構文解析を行い、BNF文法規則に
    基づいてBNF文法規則を表すデータ構造であるBNF
    データを生成し、当該BNFデータをBNF規則データ
    ベースに格納するBNF構文解析手段,前記BNF規則
    データベースに蓄積されたBNFデータに基づいて文法
    網羅率計測器内の構文解析手段を実現するための構文解
    析手段プログラムを生成する構文解析手段生成手段,お
    よび前記BNF規則データベースに蓄積されたBNFデ
    ータに基づいて文法網羅率計測器内のBNF規則チェッ
    ク表の内容を埋めるためのBNF規則チェック表プログ
    ラムを生成するBNF規則チェック表生成手段として機
    能させるためのプログラムを記録した記録媒体。
  8. 【請求項8】 文法網羅率計測器プログラム生成器およ
    び文法網羅率計測器からなる文法網羅率計測方式におけ
    る当該文法網羅率計測器プログラム生成器を、BNFフ
    ァイルを読み込み、そのBNFファイルのデータをトー
    クン単位に切り分けるファイル読み取り手段,前記ファ
    イル読み取り手段により切り分けられたトークンに基づ
    いて前記ファイル読み取り手段により読み込まれたBN
    Fファイルに対する構文解析を行い、BNF文法規則に
    基づいてBNF文法規則を表すデータ構造であるBNF
    データを生成し、当該BNFデータをBNF規則データ
    ベースに格納するBNF構文解析手段,前記BNF規則
    データベースに蓄積されたBNFデータに基づいて文法
    網羅率計測器内の構文解析手段を実現するための構文解
    析手段プログラムを生成する構文解析手段生成手段,前
    記BNF規則データベースに蓄積されたBNFデータに
    基づいて文法網羅率計測器内のBNF規則チェック表の
    内容を埋めるためのBNF規則チェック表プログラムを
    生成するBNF規則チェック表生成手段,および全ての
    BNF文法規則に関して前記BNF構文解析手段により
    生成されたBNFデータが前記BNF規則データベース
    に蓄積された後に、前記BNF規則データベースにアク
    セスし、各BNFデータによって表されるBNF文法規
    則が意味的に妥当か否かを検査し、BNF文法規則の意
    味的な不整合を発見した場合にその旨を示すエラーメッ
    セージを出力するBNF意味検査器として機能させるた
    めのプログラムを記録した記録媒体。
JP2000189832A 2000-06-23 2000-06-23 文法網羅率計測方式 Withdrawn JP2002007169A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000189832A JP2002007169A (ja) 2000-06-23 2000-06-23 文法網羅率計測方式
US09/887,818 US7062760B2 (en) 2000-06-23 2001-06-22 System and method for measuring syntax coverage percentage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000189832A JP2002007169A (ja) 2000-06-23 2000-06-23 文法網羅率計測方式

Publications (1)

Publication Number Publication Date
JP2002007169A true JP2002007169A (ja) 2002-01-11

Family

ID=18689415

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000189832A Withdrawn JP2002007169A (ja) 2000-06-23 2000-06-23 文法網羅率計測方式

Country Status (2)

Country Link
US (1) US7062760B2 (ja)
JP (1) JP2002007169A (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003214975A1 (en) * 2002-02-01 2003-09-02 John Fairweather System and method for navigating data
JP4182202B2 (ja) * 2002-08-02 2008-11-19 富士通マイクロエレクトロニクス株式会社 シミュレーション用カバレッジ算出装置及びシミュレーション用カバレッジ算出方法
US7152227B1 (en) * 2003-06-17 2006-12-19 Xilinx, Inc. Automated assessment of programming language coverage by one or more test programs
US7565368B2 (en) * 2004-05-04 2009-07-21 Next It Corporation Data disambiguation systems and methods
US20060277525A1 (en) * 2005-06-06 2006-12-07 Microsoft Corporation Lexical, grammatical, and semantic inference mechanisms
WO2012086443A1 (ja) * 2010-12-24 2012-06-28 日本電気株式会社 監視データ分析装置、監視データ分析方法および監視データ分析プログラム
US20130339929A1 (en) * 2012-06-14 2013-12-19 Microsoft Corporation Program repair
US9436446B1 (en) * 2015-11-16 2016-09-06 International Business Machines Corporation System for automating calculation of a comprehensibility score for a software program
CN106020913B (zh) * 2016-06-06 2019-06-14 北京邮电大学 一种缺陷检测工具更新方法及装置
US10496379B2 (en) * 2018-02-07 2019-12-03 Sap Se Facilitated production of code for software testing
US10713150B1 (en) * 2019-04-04 2020-07-14 Sap Se Accurate test coverage of generated code
CN112905165B (zh) * 2021-01-19 2023-06-13 上海仪电人工智能创新院有限公司 一种人工智能模型训练环境搭建装置及方法
US12189518B2 (en) 2022-02-17 2025-01-07 Sap Se Evaluation and update of test code with respect to production code changes

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01220044A (ja) 1988-02-29 1989-09-01 Fujitsu Ltd 言語処理プログラム検証方式
JPH0375840A (ja) 1989-08-17 1991-03-29 Matsushita Electric Ind Co Ltd テストデータ作成支援装置
EP0489861B1 (en) * 1989-09-01 1997-07-09 Amdahl Corporation Operating system and data base
CA2066724C (en) * 1989-09-01 2000-12-05 Helge Knudsen Operating system and data base
JPH064350A (ja) 1992-06-18 1994-01-14 Hokuriku Nippon Denki Software Kk ソフトウェアの網羅率測定方式
JPH06214775A (ja) 1993-01-20 1994-08-05 Hitachi Ltd テストプログラム作成支援装置
US5603031A (en) * 1993-07-08 1997-02-11 General Magic, Inc. System and method for distributed computation based upon the movement, execution, and interaction of processes in a network
US5584024A (en) * 1994-03-24 1996-12-10 Software Ag Interactive database query system and method for prohibiting the selection of semantically incorrect query parameters
US5857212A (en) * 1995-07-06 1999-01-05 Sun Microsystems, Inc. System and method for horizontal alignment of tokens in a structural representation program editor
US5813019A (en) * 1995-07-06 1998-09-22 Sun Microsystems, Inc. Token-based computer program editor with program comment management
JPH1049378A (ja) 1996-08-02 1998-02-20 Nec Corp コンパイラ開発装置
JP3022378B2 (ja) * 1997-02-21 2000-03-21 日本電気株式会社 異プログラム言語で構成されたデータベースシステムの検索方法
CA2329345A1 (en) * 1997-04-22 1998-10-29 Greg Hetherington Method and apparatus for processing free-format data
US6604090B1 (en) * 1997-06-04 2003-08-05 Nativeminds, Inc. System and method for selecting responses to user input in an automated interface program
US6345387B1 (en) * 1998-04-30 2002-02-05 Cosa Technologies, Inc. Coherent object system architecture
US6138112A (en) * 1998-05-14 2000-10-24 Microsoft Corporation Test generator for database management systems
US6581052B1 (en) * 1998-05-14 2003-06-17 Microsoft Corporation Test generator for database management systems

Also Published As

Publication number Publication date
US20040015910A1 (en) 2004-01-22
US7062760B2 (en) 2006-06-13

Similar Documents

Publication Publication Date Title
US9027002B2 (en) Method of converting source code and source code conversion program
JP2002007169A (ja) 文法網羅率計測方式
CN111090641B (zh) 数据处理方法及装置、电子设备、存储介质
CN116842042A (zh) 异化数据库的通用方法、装置、电子设备及存储介质
CN111782117B (zh) 界面的展示方法和装置、存储介质、电子装置
CN110059006A (zh) 代码审计方法及装置
US20230297774A1 (en) Demand conformity analysis method and system, and electronic device and storage medium
CN111985232B (zh) 基于nlp的机载显控系统需求的领域模型提取方法
CN119576339A (zh) 脚本代码的处理方法及装置、非易失性存储介质
CN108008947B (zh) 一种编程语句的智能提示方法、装置、服务器及存储介质
Navarro et al. An automated code update tool for python packages
CN119473382A (zh) 芯片寄存器描述文档的生成方法、装置、存储介质及终端设备
CN117573140B (zh) 一种通过扫描代码生成文档的方法、系统及装置
CN116991751B (zh) 代码测试方法、装置、电子设备及存储介质
CN116360794A (zh) 数据库语言解析方法、装置、计算机设备及存储介质
Turner et al. A suite of tools for the state-based testing of object-oriented programs
CN116466927A (zh) 批处理任务的代码生成方法、系统、电子设备及存储介质
CN115238037A (zh) 一种基于敏捷用户故事的功能点生成方法和装置
Bettscheider et al. Inferring Input Grammars from Code with Symbolic Parsing
CN119336781B (zh) Sql生成方法、设备及计算机可读存储介质
JPH06195216A (ja) 検証プログラム自動生成装置
Yatkın et al. Logical analysis and contradiction detection in high-level requirements during the review process using sat-solver
CN121143855A (zh) 接口文档的管理方法、装置、电子设备及存储介质
CN120669971A (zh) 基于合约模板与合同条款语义的智能法律合约生成方法及装置
CN120317341A (zh) 一种领域Profile的构建方法、装置、计算机设备及介质

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050121

A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070904