JPH02224144A - テストプログラム作成処理装置 - Google Patents
テストプログラム作成処理装置Info
- Publication number
- JPH02224144A JPH02224144A JP1046213A JP4621389A JPH02224144A JP H02224144 A JPH02224144 A JP H02224144A JP 1046213 A JP1046213 A JP 1046213A JP 4621389 A JP4621389 A JP 4621389A JP H02224144 A JPH02224144 A JP H02224144A
- Authority
- JP
- Japan
- Prior art keywords
- description
- test program
- argument
- expansion rule
- expansion
- 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
Landscapes
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概要〕
言語処理プログラム用のテストプログラムを属性文法記
述から自動作成するよう処理するテストプログラム作成
処理装置に関し、 属性文法記述中の展開規則の定義の数を減少できるよう
にすることを目的とし、 属性文法記述に従って記述された処理対象文に対しての
乱数的な選択処理により生成される乱数文と、乱数文の
実行結果の111認のためのテストルーチンを呼び出す
確認文とを対とするテストプログラムを作成するテスト
プログラム作成処理装置であって、属性文法記述中で定
義される非終端記号の展開規則定義と該定義中のパラメ
タとを、該非終端記号名と対応付けて管理する構造体変
数管理部と、属性文法記述中に記述される引数付きの非
終端記号を検出するときに、構造体変数管理部から該引
数付きの非終端記号の展開規則定義を読み出すとともに
、該読み出された展開規則定義中のパラメタを該引数に
動的に変換していくことで、該引数付きの非終端記号の
本来的の記述内容を特定する記述内容特定部とを備える
よう構成する。
述から自動作成するよう処理するテストプログラム作成
処理装置に関し、 属性文法記述中の展開規則の定義の数を減少できるよう
にすることを目的とし、 属性文法記述に従って記述された処理対象文に対しての
乱数的な選択処理により生成される乱数文と、乱数文の
実行結果の111認のためのテストルーチンを呼び出す
確認文とを対とするテストプログラムを作成するテスト
プログラム作成処理装置であって、属性文法記述中で定
義される非終端記号の展開規則定義と該定義中のパラメ
タとを、該非終端記号名と対応付けて管理する構造体変
数管理部と、属性文法記述中に記述される引数付きの非
終端記号を検出するときに、構造体変数管理部から該引
数付きの非終端記号の展開規則定義を読み出すとともに
、該読み出された展開規則定義中のパラメタを該引数に
動的に変換していくことで、該引数付きの非終端記号の
本来的の記述内容を特定する記述内容特定部とを備える
よう構成する。
本発明は、言語処理プログラム用のテストプログラムを
属性文法記述から自動作成するよう処理するテストプロ
グラム作成処理装置に関し、特に、属性文法記述中で定
義しなければならない展開規則の定義の数を減少できる
ようにするテストプログラム作成処理装置に関するもの
である。
属性文法記述から自動作成するよう処理するテストプロ
グラム作成処理装置に関し、特に、属性文法記述中で定
義しなければならない展開規則の定義の数を減少できる
ようにするテストプログラム作成処理装置に関するもの
である。
作成した言語処理プログラム(COBOLやFOI?T
l1AN等のコンパイラに限られずに、コマンドを処理
するプログラム等も含む)の機能を検査するために、マ
ニュアルに基づいて検証用のテストプログラムを作成し
て、その実行結果を予想したものと比較していくという
手法がとられることになる。
l1AN等のコンパイラに限られずに、コマンドを処理
するプログラム等も含む)の機能を検査するために、マ
ニュアルに基づいて検証用のテストプログラムを作成し
て、その実行結果を予想したものと比較していくという
手法がとられることになる。
しかるに、言語処理プログラムの機能の数は多く、しか
も複数の機能の組み合わせまで検査しなければならない
ことから、確認しなければならない機能の数は極めて多
くなることになる。これから、言語処理プログラムの機
能の検査のために必要とされるテストプログラムの作成
に、多大な労力が費やされているというのが現状である
。このような背景の元に、言語処理プログラム用のテス
トプログラムの自動作成処理装置の提供が望まれている
のである。
も複数の機能の組み合わせまで検査しなければならない
ことから、確認しなければならない機能の数は極めて多
くなることになる。これから、言語処理プログラムの機
能の検査のために必要とされるテストプログラムの作成
に、多大な労力が費やされているというのが現状である
。このような背景の元に、言語処理プログラム用のテス
トプログラムの自動作成処理装置の提供が望まれている
のである。
[従来の技術]
従来では、人手によって、言語処理プログラム用のテス
トプログラムが作成されていた。すなわち、プログラマ
等が、各種文法規則とその意味を記述したマニュアルか
ら要因分析を行ってテスト項目を設定して、テスト項目
にあった機能の実行とその結果の検証手続きとを記述し
たテストプログラムを作成していたのである。
トプログラムが作成されていた。すなわち、プログラマ
等が、各種文法規則とその意味を記述したマニュアルか
ら要因分析を行ってテスト項目を設定して、テスト項目
にあった機能の実行とその結果の検証手続きとを記述し
たテストプログラムを作成していたのである。
しかしながら、この要因分析やテスト項目の設定には極
めて大きな労力がかかることから、従来技術では、テス
トプログラムの作成に極めて多大な工数がとられてしま
うという問題点があった。
めて大きな労力がかかることから、従来技術では、テス
トプログラムの作成に極めて多大な工数がとられてしま
うという問題点があった。
そして、人手による方法では作成するテストプログラム
の内容に限度があることから、従来技術では、言語処理
プログラムの機能の検査を十分行っていないという問題
点もあったのである。
の内容に限度があることから、従来技術では、言語処理
プログラムの機能の検査を十分行っていないという問題
点もあったのである。
そこで、本出願人は、先に出願の「特願昭634651
0号(昭和63年2月29日出願、゛言語処理プログラ
ム検証方式パ)」で、言語処理プログラム用のテストプ
ログラムの自動作成処理装置の発明を案出した。次に、
第6図に従って、この特許出願の発明の概要について説
明する。
0号(昭和63年2月29日出願、゛言語処理プログラ
ム検証方式パ)」で、言語処理プログラム用のテストプ
ログラムの自動作成処理装置の発明を案出した。次に、
第6図に従って、この特許出願の発明の概要について説
明する。
図中、■は構文・意味記述であって、言語処理プログラ
ムの処理対象文を展開規則と意味記述とからなる属性文
法記述に従って記述するもの、2はTP自動作成部であ
って、構文・意味記述lがらテストプログラムを自動作
成するもの、3はTP自動作成部2が備える生成規則選
択部であって、構文・意味記述1中の展開規則に対して
乱数的な選択処理を施すことで処理対象文の一態様をな
す乱数文を作成するもの、4はTP自動作成部2が備え
る確認文挿入部であって、作成された乱数文の実行によ
り引き起こされる実行結果の確認を行うためのテストル
ーチンを呼び出す確認文を乱数文に対応付けて挿入する
もの、5はTP自動作成部2が備える記号表であって、
乱数文名等を格納するもの、6はTP自動作成部2によ
り作成される一連の検証プログラムであって、言語処理
プログラムのテストプログラムをなすもの、7は自動判
定部であって、検証プログラム6の乱数文を言語処理プ
ログラムに実行させたときの実行結果が正しいものとな
るのか否かを、その乱数文に対応付けられている確認文
により呼び出されるテストルーチンに従って自動的に判
定するもの、8は結果−覧表であって、自動判定部7の
判定結果をプリントアウトするものである。
ムの処理対象文を展開規則と意味記述とからなる属性文
法記述に従って記述するもの、2はTP自動作成部であ
って、構文・意味記述lがらテストプログラムを自動作
成するもの、3はTP自動作成部2が備える生成規則選
択部であって、構文・意味記述1中の展開規則に対して
乱数的な選択処理を施すことで処理対象文の一態様をな
す乱数文を作成するもの、4はTP自動作成部2が備え
る確認文挿入部であって、作成された乱数文の実行によ
り引き起こされる実行結果の確認を行うためのテストル
ーチンを呼び出す確認文を乱数文に対応付けて挿入する
もの、5はTP自動作成部2が備える記号表であって、
乱数文名等を格納するもの、6はTP自動作成部2によ
り作成される一連の検証プログラムであって、言語処理
プログラムのテストプログラムをなすもの、7は自動判
定部であって、検証プログラム6の乱数文を言語処理プ
ログラムに実行させたときの実行結果が正しいものとな
るのか否かを、その乱数文に対応付けられている確認文
により呼び出されるテストルーチンに従って自動的に判
定するもの、8は結果−覧表であって、自動判定部7の
判定結果をプリントアウトするものである。
このように構成される先の特許出願の発明にあっては、
生成規則選択部3は、構文・意味記述1中の処理対象文
の展開規則に対して乱数的な選択処理を施すことで処理
対象文の一腹様をなす乱数文を作成し、確認文挿入部4
は、乱数文の正しい実行結果を引数とする確認文を挿入
していくことで、言語処理プログラム用のテストプログ
ラムを自動生成してい(よう処理することになる。
生成規則選択部3は、構文・意味記述1中の処理対象文
の展開規則に対して乱数的な選択処理を施すことで処理
対象文の一腹様をなす乱数文を作成し、確認文挿入部4
は、乱数文の正しい実行結果を引数とする確認文を挿入
していくことで、言語処理プログラム用のテストプログ
ラムを自動生成してい(よう処理することになる。
このような先の特許出願の発明の実用性を高めていくた
めには、テストプログラムの作成のために用意する属性
文法記述中の展開規則の定義の数を減らせるようにして
いく必要がある。定義しなければならない展開規則の数
が増えると、属性文法記述の作成に手間がかかって、テ
ストプログラムの作成の生産性が著しく低下することに
なるからである。
めには、テストプログラムの作成のために用意する属性
文法記述中の展開規則の定義の数を減らせるようにして
いく必要がある。定義しなければならない展開規則の数
が増えると、属性文法記述の作成に手間がかかって、テ
ストプログラムの作成の生産性が著しく低下することに
なるからである。
本発明はかかる事情に鑑みてなされたものであって、本
出願人が出願した先の特許出願のテストプログラム作成
処理装置において、属性文法記述中で定義しなければな
らない展開規則の定義の数を減少できるような手段を講
じていくことで、先の特許出願のテストプログラム作成
処理装置の実用性を高めて、更に有効なものとなるよう
にしていくことを目的とするものである。
出願人が出願した先の特許出願のテストプログラム作成
処理装置において、属性文法記述中で定義しなければな
らない展開規則の定義の数を減少できるような手段を講
じていくことで、先の特許出願のテストプログラム作成
処理装置の実用性を高めて、更に有効なものとなるよう
にしていくことを目的とするものである。
第1図は本発明の原理構成図である。
図中、10は属性文法記述であって、検査対象となる言
語処理プログラムの処理対象文についての属性文法を記
述するとともに、この処理対象文の実行結果の確認を行
うテストルーチンの呼び出しのための確認文を記述する
もの、11は属性文法記述10をなす展開規則であって
、処理対象文の展開規則を記述するもの、12は属性文
法記述10をなす意味記述であって、処理対象文中の意
°味内容を記述するもの、20は本発明を具備するテス
トプログラム作成処理装置であって、言語処理プログラ
ム用のテストプログラムを自動作成するもの、21はリ
ーダであって、属性文法記述IOを内部形式に変換する
もの、22は翻訳処理器であって、リーダ21により変
換された内部形式を展開して内部形式テストプログラム
を作成する展開処理部23と、内部形式テストプログラ
ムの作成にあたって必要となる意味記述12の実行依願
を行う意味記述処理依頼部27とを備えるも、の、24
は展開処理部23が備える乱数発生部であって、展開規
則に関しての選択処理に必要となる乱数を発生させるも
の、25は展開処理部23が備える構造体変数管理部で
あって、内部形式テストプログラムの展開処理のために
必要となる変数データを構造的に管理するもの、26は
展開処理部23が備える記述内容特定部であって、属性
文法記述10中に記述される引数付きの非終端記号の本
来の記述内容を特定するもの、28は意味記述解釈器で
あって、意味記述処理依頼部27からの起動依頼に応じ
て処理要求のある意味記述12を実行するもの、29は
ライタであって、翻訳処理器22により作成された内部
形式テストプログラムを実行可能なテストプログラムと
してファイル等に出力するもの、30は出力されたテス
トプログラムである。ここで、属性文法記述10中に記
述される非終端記号とは、展開規則11に従って展開さ
れてテキストとなる記号をいうものである。
語処理プログラムの処理対象文についての属性文法を記
述するとともに、この処理対象文の実行結果の確認を行
うテストルーチンの呼び出しのための確認文を記述する
もの、11は属性文法記述10をなす展開規則であって
、処理対象文の展開規則を記述するもの、12は属性文
法記述10をなす意味記述であって、処理対象文中の意
°味内容を記述するもの、20は本発明を具備するテス
トプログラム作成処理装置であって、言語処理プログラ
ム用のテストプログラムを自動作成するもの、21はリ
ーダであって、属性文法記述IOを内部形式に変換する
もの、22は翻訳処理器であって、リーダ21により変
換された内部形式を展開して内部形式テストプログラム
を作成する展開処理部23と、内部形式テストプログラ
ムの作成にあたって必要となる意味記述12の実行依願
を行う意味記述処理依頼部27とを備えるも、の、24
は展開処理部23が備える乱数発生部であって、展開規
則に関しての選択処理に必要となる乱数を発生させるも
の、25は展開処理部23が備える構造体変数管理部で
あって、内部形式テストプログラムの展開処理のために
必要となる変数データを構造的に管理するもの、26は
展開処理部23が備える記述内容特定部であって、属性
文法記述10中に記述される引数付きの非終端記号の本
来の記述内容を特定するもの、28は意味記述解釈器で
あって、意味記述処理依頼部27からの起動依頼に応じ
て処理要求のある意味記述12を実行するもの、29は
ライタであって、翻訳処理器22により作成された内部
形式テストプログラムを実行可能なテストプログラムと
してファイル等に出力するもの、30は出力されたテス
トプログラムである。ここで、属性文法記述10中に記
述される非終端記号とは、展開規則11に従って展開さ
れてテキストとなる記号をいうものである。
本発明では、リーダ21の処理に従って、属性文法記述
10を翻訳処理器22が解釈し易い形式である内部形式
に変換する。この内部形式を受け取ると、展開処理部2
3は、展開規則11に従って再帰的に展開を実行してい
(ことで、内部形式テストプログラムへの展開を実行す
る。この展開時に意味記述12の実行が必要となる場合
には、意味記述処理依頼部27は、意味記述解釈器28
を起動していくよう処理し、このようにして起動される
意味記述解釈器28は、構造体変数管理部25の変数値
を新たなものに更新していく処理を実行する。そして、
展開処理部23は、この更新された変数値を参照しなが
ら内部形式テストプログラムへの展開を実行してい(と
ともに、この展開にあたって必要となる展開規則11中
に含まれる選択性の規則に関しては、乱数発生部24が
発生する乱数値に従って選択対象の選択や値の選択を実
行していく。
10を翻訳処理器22が解釈し易い形式である内部形式
に変換する。この内部形式を受け取ると、展開処理部2
3は、展開規則11に従って再帰的に展開を実行してい
(ことで、内部形式テストプログラムへの展開を実行す
る。この展開時に意味記述12の実行が必要となる場合
には、意味記述処理依頼部27は、意味記述解釈器28
を起動していくよう処理し、このようにして起動される
意味記述解釈器28は、構造体変数管理部25の変数値
を新たなものに更新していく処理を実行する。そして、
展開処理部23は、この更新された変数値を参照しなが
ら内部形式テストプログラムへの展開を実行してい(と
ともに、この展開にあたって必要となる展開規則11中
に含まれる選択性の規則に関しては、乱数発生部24が
発生する乱数値に従って選択対象の選択や値の選択を実
行していく。
そして、内部形式テストプログラムへの展開処理が終了
すると、属性文法記述10に記述されている確認文中の
パラメータ部分に、処理対象文の一態様として翻訳され
た乱数文の実行結果に関しての値が設定され、言語処理
プログラム用のテストプログラムの基本単位に相当する
内部形式プログラムの作成が終了することになる。内部
形式プロクラムの作成が終了すると、ライタ29は、内
部形式テストプログラムを実行可能なテストプログラム
30として出力して処理を終了する。
すると、属性文法記述10に記述されている確認文中の
パラメータ部分に、処理対象文の一態様として翻訳され
た乱数文の実行結果に関しての値が設定され、言語処理
プログラム用のテストプログラムの基本単位に相当する
内部形式プログラムの作成が終了することになる。内部
形式プロクラムの作成が終了すると、ライタ29は、内
部形式テストプログラムを実行可能なテストプログラム
30として出力して処理を終了する。
このようなテストプログラムの自動作成処理にあって、
本発明では、属性文法記述10中で定義されることにな
る非終端記号の展開規則定義に、パラメタを記述できる
ようにする。すなわち、非終端記号1(パラメタ・・・
・・・)]→展開規則あるいは、複数の展開規則への可
能性を有するときには、 非終端記号[(パラメタ・・・・・・)]→展開規則展
開規則 展開規則& と記述できるようにする。そして、属性文法記述10中
に、この非終端記号の展開規則定義の引用を可能とする
引数付きの非終端記号の記述である「非終端記号 引数
・・・・・・・・・」を記述できるようにする。ここで
、「[・・・・・・1」は、その部分を記述しないこと
も可能であることを表す。
本発明では、属性文法記述10中で定義されることにな
る非終端記号の展開規則定義に、パラメタを記述できる
ようにする。すなわち、非終端記号1(パラメタ・・・
・・・)]→展開規則あるいは、複数の展開規則への可
能性を有するときには、 非終端記号[(パラメタ・・・・・・)]→展開規則展
開規則 展開規則& と記述できるようにする。そして、属性文法記述10中
に、この非終端記号の展開規則定義の引用を可能とする
引数付きの非終端記号の記述である「非終端記号 引数
・・・・・・・・・」を記述できるようにする。ここで
、「[・・・・・・1」は、その部分を記述しないこと
も可能であることを表す。
リーダ2工は、このパラメタの付加された非終端記号の
展開規則定義を読み取ると、構造体変数管理部25の該
当する非終端記号名の変数のRULEという属性に、読
み取った展開規則の内部形式を代入するとともに、AR
Gという属性に、読み取ったパラメタの内部形式を代入
する。この処理により、構造体変数管理部25は、パラ
メタの付加された非終端記号の展開規則定義とその展開
規則定義中で用いられるパラメタとを、非終端記号名と
対応付けて構造的に管理することになる。
展開規則定義を読み取ると、構造体変数管理部25の該
当する非終端記号名の変数のRULEという属性に、読
み取った展開規則の内部形式を代入するとともに、AR
Gという属性に、読み取ったパラメタの内部形式を代入
する。この処理により、構造体変数管理部25は、パラ
メタの付加された非終端記号の展開規則定義とその展開
規則定義中で用いられるパラメタとを、非終端記号名と
対応付けて構造的に管理することになる。
次に、リーダ21は、この非終端記号に関しての引数付
きの非終端記号を読み取ると、内部形式に変換して記述
内容特定部26に渡すよう処理する。このようにして引
数付きの非終端記号を受は取ると、記述内容特定部26
は、構造体変数管理部25から該当する非終端記号の展
開規則定義を読み出すとともに、読み出した展開規則定
義中のパラメタを人力されてきた引数に動的に変換して
いくことで、入力されてきた引数付きの非終端記号の本
来の記述内容を特定するよう処理する。
きの非終端記号を読み取ると、内部形式に変換して記述
内容特定部26に渡すよう処理する。このようにして引
数付きの非終端記号を受は取ると、記述内容特定部26
は、構造体変数管理部25から該当する非終端記号の展
開規則定義を読み出すとともに、読み出した展開規則定
義中のパラメタを人力されてきた引数に動的に変換して
いくことで、入力されてきた引数付きの非終端記号の本
来の記述内容を特定するよう処理する。
このようにして、非終端記号の展開規則定義にパラメタ
の記述を認めないときには、属性文法記述10の中で、 A −”AI ’AAAwA2″BBB’A3&A’
→A 1 ”ppp” A 2 ″ロロQ″ A
3&A” →A 1 ”XXX’ A 2 ”Y’l
Y”A3&とそれぞれ展開規則定義をしておいてから、
属性文法記述lOの中で、 A、A’A” をそれぞれ必要な箇所で記述するというようにしなけれ
ばならなかったのに対して、本発明によれば、属性文法
記述10の中で、 A (PI F2)→AI Pi A2 F2 A3&
と1つだけ展開規則定義をしておいてから、属性文法記
述10の中で、 「A ”AAA”BBB’″」 rA ’PPP” QQQ’ J rA ’XXX” YYY” j をそれぞれ必要な箇所で記述するだけで、同じ記述を実
現できることになる。すなわち、類似の記述形式をとる
場合には、すべてのものに対して、いちいち展開規則定
義を定義する必要がなくなることになる。ここで、属性
文法記述中の「”」で区切られる記号は、テストプログ
ラム30の作成にあたって展開されることのない終端記
号を表している。
の記述を認めないときには、属性文法記述10の中で、 A −”AI ’AAAwA2″BBB’A3&A’
→A 1 ”ppp” A 2 ″ロロQ″ A
3&A” →A 1 ”XXX’ A 2 ”Y’l
Y”A3&とそれぞれ展開規則定義をしておいてから、
属性文法記述lOの中で、 A、A’A” をそれぞれ必要な箇所で記述するというようにしなけれ
ばならなかったのに対して、本発明によれば、属性文法
記述10の中で、 A (PI F2)→AI Pi A2 F2 A3&
と1つだけ展開規則定義をしておいてから、属性文法記
述10の中で、 「A ”AAA”BBB’″」 rA ’PPP” QQQ’ J rA ’XXX” YYY” j をそれぞれ必要な箇所で記述するだけで、同じ記述を実
現できることになる。すなわち、類似の記述形式をとる
場合には、すべてのものに対して、いちいち展開規則定
義を定義する必要がなくなることになる。ここで、属性
文法記述中の「”」で区切られる記号は、テストプログ
ラム30の作成にあたって展開されることのない終端記
号を表している。
更に、このような場合に、非終端記号の引数を繰り返し
て記述できるようにすることも可能である。このような
ときには、記述内容特定部26が、繰り返されてくる回
数に応じて構造体変数管理部25から読み出した展開規
則定義中のパラメタを動的にそれらの引数に変換してい
くことで、入力されてきた引数付きの非終端記号の本来
の記述内容を特定するよう処理することになる。これに
より、非終端記号名を重複して記述する必要がなくなる
ことになる。
て記述できるようにすることも可能である。このような
ときには、記述内容特定部26が、繰り返されてくる回
数に応じて構造体変数管理部25から読み出した展開規
則定義中のパラメタを動的にそれらの引数に変換してい
くことで、入力されてきた引数付きの非終端記号の本来
の記述内容を特定するよう処理することになる。これに
より、非終端記号名を重複して記述する必要がなくなる
ことになる。
このように、本発明によれば、本出願人が出願した先の
特許出願のテストプログラム作成処理装置において、属
性文法記述中で定義しなければならない展開規則の定義
の数を大幅に減少できるようになり、テストプログラム
を効率的に生産できるようになるのである。
特許出願のテストプログラム作成処理装置において、属
性文法記述中で定義しなければならない展開規則の定義
の数を大幅に減少できるようになり、テストプログラム
を効率的に生産できるようになるのである。
以下、実施例に従って本発明の詳細な説明する。
第2図に、本発明により自動作成されるテストプログラ
ムの使用方法の説明図を示す。図中、第1図で説明した
ものと同じものについては、同一の記号で示しである。
ムの使用方法の説明図を示す。図中、第1図で説明した
ものと同じものについては、同一の記号で示しである。
40は検査対象となる言語処理プログラムであって、属
性文法記述10に記述されることになる処理対象文のコ
ンパイル処理を実行するもの、41はテスト用オブジェ
クトプログラムであって、言語処理プログラム40によ
りコンパイルされたテストプログラム30のオブジェク
トプログラムであるもの、42はリンカであって、テス
ト用オブジェクトプログラム41とライブラリ43のプ
ログラムとのリンクを実行するもの、44はリンカ42
によってテスト用オブジェクトプログラム41とリンク
されることになるCHECKプログラムであって、テス
トプログラム30中に記述される乱数文の実行結果の確
認を行うテストルーチンであるもの、45は実行単位を
なすロードモジュール、46はロードモジュール45の
実行結果を表す実行結果出力である。
性文法記述10に記述されることになる処理対象文のコ
ンパイル処理を実行するもの、41はテスト用オブジェ
クトプログラムであって、言語処理プログラム40によ
りコンパイルされたテストプログラム30のオブジェク
トプログラムであるもの、42はリンカであって、テス
ト用オブジェクトプログラム41とライブラリ43のプ
ログラムとのリンクを実行するもの、44はリンカ42
によってテスト用オブジェクトプログラム41とリンク
されることになるCHECKプログラムであって、テス
トプログラム30中に記述される乱数文の実行結果の確
認を行うテストルーチンであるもの、45は実行単位を
なすロードモジュール、46はロードモジュール45の
実行結果を表す実行結果出力である。
この図に示すように、本発明に係るテストプログラム作
成処理装置20は、言語処理プログラム40の機能の検
証のために必要となるテストプログラム30を作成する
ために用意されるものであり、この必要とされるテスト
プログラム30を、マニュアルに従って記述される属性
文法記述10から自動作成するよう処理することになる
。
成処理装置20は、言語処理プログラム40の機能の検
証のために必要となるテストプログラム30を作成する
ために用意されるものであり、この必要とされるテスト
プログラム30を、マニュアルに従って記述される属性
文法記述10から自動作成するよう処理することになる
。
第3図に、°“代人文”に関しての属性文法記述10の
一実施例を示す。この属性文法記述10は、様々な形式
の゛代人文”を複数個作成して、言語処理プログラム4
0がそれらの“代入文”についての計算処理を行ったと
きに、正しい数値を算出するのか否かをテストするため
にプログラマ等により作成される。第4図に、この属性
文法記述10から自動作成されることになるテストプロ
グラム30の一実施例を示す。このテストプログラム3
0は、“代入文パの一態様である乱数文(“代入文°′
の展開規則に対しての乱数的な選択処理により生成され
る)と、CHECKプログラム44を呼び出すための確
認文との対を基本単位にして、この基本単位を複数つな
げることで構成される。
一実施例を示す。この属性文法記述10は、様々な形式
の゛代人文”を複数個作成して、言語処理プログラム4
0がそれらの“代入文”についての計算処理を行ったと
きに、正しい数値を算出するのか否かをテストするため
にプログラマ等により作成される。第4図に、この属性
文法記述10から自動作成されることになるテストプロ
グラム30の一実施例を示す。このテストプログラム3
0は、“代入文パの一態様である乱数文(“代入文°′
の展開規則に対しての乱数的な選択処理により生成され
る)と、CHECKプログラム44を呼び出すための確
認文との対を基本単位にして、この基本単位を複数つな
げることで構成される。
具体的に説明するならば、第4図中の
AAE=−299*44B
CALL CHECK(1,AAE、−133952
)がテストプログラム30の基本単位をなすものである
。この基本単位の意味するところは、AAE=−299
*448 という乱数文を言語処理プログラム40で処理させると
、変数名の“’ A A E ”のところに、−133
952<=−299本448)の値がセットされていれ
ば正しい処理がなされたことになるので、この変数名と
値とを引数にして、CHECKプログラム44の呼び出
しを行うCALL CHECK(1,AAE、−1,
33952)という確認文を、この乱数文と対にして作
成するのである。
)がテストプログラム30の基本単位をなすものである
。この基本単位の意味するところは、AAE=−299
*448 という乱数文を言語処理プログラム40で処理させると
、変数名の“’ A A E ”のところに、−133
952<=−299本448)の値がセットされていれ
ば正しい処理がなされたことになるので、この変数名と
値とを引数にして、CHECKプログラム44の呼び出
しを行うCALL CHECK(1,AAE、−1,
33952)という確認文を、この乱数文と対にして作
成するのである。
本発明の詳細な説明に入る前に、第3図の属性文法記述
10を例にしながら、本発明に係るテストプログラム作
成処理装置20が実行することになるテストプログラム
30の自動作成処理について説明する。ここで、テスト
プログラム作成処理装置20のシステム構成は第1図で
説明したものと同一である。
10を例にしながら、本発明に係るテストプログラム作
成処理装置20が実行することになるテストプログラム
30の自動作成処理について説明する。ここで、テスト
プログラム作成処理装置20のシステム構成は第1図で
説明したものと同一である。
リーダ21は、第3図の属性文法記述IOを読み取ると
、この読み取った属性文法記述10を内部形式に変換す
る。この変換された属性文法記述10を受は取ると、翻
訳処理器22は、出発記号の“¥文法記述°゛に続く (設定 項番値 1) に従って、システム変数の“項番値”という変数名のと
ころに、“1′をセットする。この設定処理は、翻訳処
理器22が″“設定”という記号を解釈したときに、意
味記述解釈器28が管理する“設定°゛という名の関数
に起動をかけることで実行されることになる。この意味
記述解釈器28は、具体的には、例えばLISPシステ
ムで構成されて、定義されている関数の呼び出しがかか
ると、その関数の処理を実行して処理値を翻訳処理器2
2に返すよう処理することになる。
、この読み取った属性文法記述10を内部形式に変換す
る。この変換された属性文法記述10を受は取ると、翻
訳処理器22は、出発記号の“¥文法記述°゛に続く (設定 項番値 1) に従って、システム変数の“項番値”という変数名のと
ころに、“1′をセットする。この設定処理は、翻訳処
理器22が″“設定”という記号を解釈したときに、意
味記述解釈器28が管理する“設定°゛という名の関数
に起動をかけることで実行されることになる。この意味
記述解釈器28は、具体的には、例えばLISPシステ
ムで構成されて、定義されている関数の呼び出しがかか
ると、その関数の処理を実行して処理値を翻訳処理器2
2に返すよう処理することになる。
翻訳処理器22は、続いて記述される
<’aNL’ 代入文 5 10> &により、所
定の数(この例では、5から10までの間の乱数値で指
定される)の“°代入文”についてのテストプログラム
30を、1つずつ改行して作成する必要があることを知
る。この“代入文°゛は「“」で区切られていないので
、そのままテキストとできない非終端記号である。この
ような非終端記号は、別の位置にどのようにテキストに
展開していけばよいかが記述されているので、翻訳処理
器22は、その展開規則11に従って展開処理を実行す
る。
定の数(この例では、5から10までの間の乱数値で指
定される)の“°代入文”についてのテストプログラム
30を、1つずつ改行して作成する必要があることを知
る。この“代入文°゛は「“」で区切られていないので
、そのままテキストとできない非終端記号である。この
ような非終端記号は、別の位置にどのようにテキストに
展開していけばよいかが記述されているので、翻訳処理
器22は、その展開規則11に従って展開処理を実行す
る。
この例では、続いて、
変数 −“ 式
と“代入文”の定義がされており、更に、この定義中の
“変数”の定義が図中の0部分で展開されていて、“式
”の定義が図中の■部分で展開されている。この■及び
■部分の「1」の記号は、いずれか1つのものを乱数に
従って選択することを表している。これから、翻訳処理
器22は、乱数処理に従って“°代入文”°の゛°変数
”として、例えば“’AAE”の変数名を選択し、“代
入文゛の°′式゛とじて、例えば“数1本数2″の式を
選択する。このとき実行する乱数による選択対象の選択
処理は、具体的には、乱数発生部24が、選択対象の前
に記述されている選択値(この例では、ずぺて“100
”である)の総和(この例では、“500″である)の
内にある乱数値を発生させて、その発生した乱数値が属
する選択値の選択対象を選ぶことで行うことになる。ま
た、′数1*数2°゛のように、更に展開されるものに
ついては、その展開規則に従って展開を続行していく。
“変数”の定義が図中の0部分で展開されていて、“式
”の定義が図中の■部分で展開されている。この■及び
■部分の「1」の記号は、いずれか1つのものを乱数に
従って選択することを表している。これから、翻訳処理
器22は、乱数処理に従って“°代入文”°の゛°変数
”として、例えば“’AAE”の変数名を選択し、“代
入文゛の°′式゛とじて、例えば“数1本数2″の式を
選択する。このとき実行する乱数による選択対象の選択
処理は、具体的には、乱数発生部24が、選択対象の前
に記述されている選択値(この例では、ずぺて“100
”である)の総和(この例では、“500″である)の
内にある乱数値を発生させて、その発生した乱数値が属
する選択値の選択対象を選ぶことで行うことになる。ま
た、′数1*数2°゛のように、更に展開されるものに
ついては、その展開規則に従って展開を続行していく。
この例では、“数1本数2”は、更に0部分で展開され
ているので、その展開に従って、例えば、“数値t ”
として−299“を選択し、′数値2°゛として448
”を選択することになる。
ているので、その展開に従って、例えば、“数値t ”
として−299“を選択し、′数値2°゛として448
”を選択することになる。
このようにして、第4図のテストプログラム30の先頭
に位置する代入文の一態様であるAAE−−299*4
48 というテキストが作成されることになる。
に位置する代入文の一態様であるAAE−−299*4
48 というテキストが作成されることになる。
゛代入文”の定義に続いて記述される
「代入 変数 (値 式)1
により、翻訳処理器22は、意味記述解釈器28が管理
する′°代入”という名の関数に起動をかけることで、
テスト対象言語変数の“変数”のところに、゛式゛°の
値を設定するよう処理する。いまの場合、°°変数パと
しては°’ A A E ”が選択されているので、こ
の°“AAE”という変数名のところに“式°“の値を
設定する。この゛式°゛の値は、具体的には、■部分の
選択規則の“数1*数2°。
する′°代入”という名の関数に起動をかけることで、
テスト対象言語変数の“変数”のところに、゛式゛°の
値を設定するよう処理する。いまの場合、°°変数パと
しては°’ A A E ”が選択されているので、こ
の°“AAE”という変数名のところに“式°“の値を
設定する。この゛式°゛の値は、具体的には、■部分の
選択規則の“数1*数2°。
の後に続いて記述されている
r値設定(*(値 数1)(値 数2))1で算出され
る。この算出処理も、意味記述解釈器28により実行さ
れて、いまの場合では、“数値1 ”の値である“’−
299”と、“数値2″の値である448”との乗算値
である”−133952”が、この“式”の値として算
出される。これから、’ A A E ”という変数名
のところに、”−133952”が設定されることにな
る。
る。この算出処理も、意味記述解釈器28により実行さ
れて、いまの場合では、“数値1 ”の値である“’−
299”と、“数値2″の値である448”との乗算値
である”−133952”が、この“式”の値として算
出される。これから、’ A A E ”という変数名
のところに、”−133952”が設定されることにな
る。
“代入文”の定義の最後では、“確認”を展開すること
が要求されている。この″確認パがいかなるものである
かは、図中の0部分で展開されている。これから、翻訳
処理器22は、この0部分の展開規則に従って、“°項
番°゛の値の“1”と、゛変数°゛の“AAE”と、“
変数値゛の“−133952”とを引数として、CHE
CKプログラム44の呼び出しを行う CALL CHECK(1,AAE、−133952
)という確認文の展開を実行する。このようにして、A
AE=−299*44B CALL CHECK(1,AAE、−133952
)という内部形式テストプログラムの作成が終了するこ
とになる。そして、最後に、0部分の更新規則に従って
、意味記述解釈器28に起動をかけて、次の乱数文のた
めに、システム変数の″゛項番値′。
が要求されている。この″確認パがいかなるものである
かは、図中の0部分で展開されている。これから、翻訳
処理器22は、この0部分の展開規則に従って、“°項
番°゛の値の“1”と、゛変数°゛の“AAE”と、“
変数値゛の“−133952”とを引数として、CHE
CKプログラム44の呼び出しを行う CALL CHECK(1,AAE、−133952
)という確認文の展開を実行する。このようにして、A
AE=−299*44B CALL CHECK(1,AAE、−133952
)という内部形式テストプログラムの作成が終了するこ
とになる。そして、最後に、0部分の更新規則に従って
、意味記述解釈器28に起動をかけて、次の乱数文のた
めに、システム変数の″゛項番値′。
の変数名の値を1つ歩進させる処理を行うよう処理する
。
。
翻訳処理器22は、以下同様の処理を繰り返していくこ
とで、第4図に示したような内部形式テストプログラム
の作成を実行することになる。そして、属性文法記述1
0に対応する内部形式テストプログラムの作成が終了す
ると、ライタ29は、この作成した内部形式テストプロ
グラムを実行可能なテストプログラムとして出力してテ
ストプログラム30の作成処理を終了する。
とで、第4図に示したような内部形式テストプログラム
の作成を実行することになる。そして、属性文法記述1
0に対応する内部形式テストプログラムの作成が終了す
ると、ライタ29は、この作成した内部形式テストプロ
グラムを実行可能なテストプログラムとして出力してテ
ストプログラム30の作成処理を終了する。
このように、翻訳処理器22は、属性文法記述10中の
展開規則11に従って再帰的に展開を実行していくこと
で、内部形式テストプログラムへの展開を実行する。こ
の展開時に、属性文法記述10中の意味記述12の実行
が必要となる場合には、意味記述解釈器28を起動して
いくよう処理し、この起動される意味記述解釈器28は
、構造体変数管理部25の変数データを新たなものに更
新してい(処理を実行する。そして、翻訳処理器22は
、内部形式テストプログラムへの展開を、この更新され
た変数データを参照しながら実行していくとともに、展
開にあたって必要となる展開規則11中に含まれる選択
性の規則に関しては、乱数発生部24により発生される
乱数値に従って選択対象を選択することで行うことにな
る。
展開規則11に従って再帰的に展開を実行していくこと
で、内部形式テストプログラムへの展開を実行する。こ
の展開時に、属性文法記述10中の意味記述12の実行
が必要となる場合には、意味記述解釈器28を起動して
いくよう処理し、この起動される意味記述解釈器28は
、構造体変数管理部25の変数データを新たなものに更
新してい(処理を実行する。そして、翻訳処理器22は
、内部形式テストプログラムへの展開を、この更新され
た変数データを参照しながら実行していくとともに、展
開にあたって必要となる展開規則11中に含まれる選択
性の規則に関しては、乱数発生部24により発生される
乱数値に従って選択対象を選択することで行うことにな
る。
次に、本発明の特徴部分について説明する。本発明では
、〔作用〕の欄でも説明したように、属性文法記述10
中で定義されることになる非終端記号の展開規則定義に
パラメタを付加して記述できるようにするとともに、こ
のパラメタの付加された非終端記号の展開規則定義の引
用を可能とする引数付きの非終端記号を、属性文法記述
10中に記述できるようにすることを特徴とする。すな
わち、非終端記号の展開規則定義として、という記述形
式をとるものの他に、パラメタを付加した記述である 非終端記号(パラメタ・・・・・・)→展開規則という
記述形式を認め、そして、属性文法記述IO中に、この
非終端記号の展開規則定義を引用する引数付きの非終端
記号の記述である 「非終端記号 引数・・・・・・・・・」という記述を
記述できるようにするのである。
、〔作用〕の欄でも説明したように、属性文法記述10
中で定義されることになる非終端記号の展開規則定義に
パラメタを付加して記述できるようにするとともに、こ
のパラメタの付加された非終端記号の展開規則定義の引
用を可能とする引数付きの非終端記号を、属性文法記述
10中に記述できるようにすることを特徴とする。すな
わち、非終端記号の展開規則定義として、という記述形
式をとるものの他に、パラメタを付加した記述である 非終端記号(パラメタ・・・・・・)→展開規則という
記述形式を認め、そして、属性文法記述IO中に、この
非終端記号の展開規則定義を引用する引数付きの非終端
記号の記述である 「非終端記号 引数・・・・・・・・・」という記述を
記述できるようにするのである。
具体的に説明するならば、例えば、非終端記号の“確認
”の展開規則定義を下記のようにパラメタを付加して記
述するようにし、 確認(変数変数の値)→ ’CALL CHECK(’項番”、”i数”、”i数
)fa”)”但し、「”」で区切られたところは 「“」と同じく終端記号を表す。
”の展開規則定義を下記のようにパラメタを付加して記
述するようにし、 確認(変数変数の値)→ ’CALL CHECK(’項番”、”i数”、”i数
)fa”)”但し、「”」で区切られたところは 「“」と同じく終端記号を表す。
そして、この“確認°゛の展開規則定義を引用する非終
端記号を、属性文法記述10中で、下記のように引数付
きで記述するようにするのである。
端記号を、属性文法記述10中で、下記のように引数付
きで記述するようにするのである。
「確認 A 3J
[確認 B 5J
「確認 C8J
但し、これらの記述はまとまって
記述されているとは限らない。
次に、第5図のフローチャートを参照しつつ、本発明が
、このような記述形式に対してどのように処理するのか
について説明する。
、このような記述形式に対してどのように処理するのか
について説明する。
リーダ21は、属性文法記述10を読み取って内部形式
に変換するときに、パラメタの付加された非終端記号を
内部形式に変換するときには、構造体変数管理部25の
該当する非終端記号名のRULEという属性に、読み取
った展開規則の内部形式を代入する。すなわち、上述で
例示した゛確認′”の展開規則定義で説明するならば、
”CALL CHECK(”項番”、′変数”、′変数
の値”)”という屑開規則の (”項番”、′変数”、′変数の値”)”という括弧内
の各展開要素の内部形式を、RULEという属性に代入
するのである。続いて、リーダ21は、構造体変数管理
部25の該当する非終端記号名のARCという属性に、
読み取ったパラメタの内部形式を代入する。すなわち、
上述で例示した“確認”の展開規則定義で説明するなら
ば、〈変数変数の値) という括弧内の内部形式を、ARGという属性に代入す
るのである。なお、リーダ21は、パラメタの付加され
ていない非終端記号を内部形式に変換するときには、R
ULEという属性にはパラメタの付加されている場合と
同じものの内部形式を代入するよう処理することになる
が、ARGという属性には代入するものを持たないので
代入処理は行わないことになる。
に変換するときに、パラメタの付加された非終端記号を
内部形式に変換するときには、構造体変数管理部25の
該当する非終端記号名のRULEという属性に、読み取
った展開規則の内部形式を代入する。すなわち、上述で
例示した゛確認′”の展開規則定義で説明するならば、
”CALL CHECK(”項番”、′変数”、′変数
の値”)”という屑開規則の (”項番”、′変数”、′変数の値”)”という括弧内
の各展開要素の内部形式を、RULEという属性に代入
するのである。続いて、リーダ21は、構造体変数管理
部25の該当する非終端記号名のARCという属性に、
読み取ったパラメタの内部形式を代入する。すなわち、
上述で例示した“確認”の展開規則定義で説明するなら
ば、〈変数変数の値) という括弧内の内部形式を、ARGという属性に代入す
るのである。なお、リーダ21は、パラメタの付加され
ていない非終端記号を内部形式に変換するときには、R
ULEという属性にはパラメタの付加されている場合と
同じものの内部形式を代入するよう処理することになる
が、ARGという属性には代入するものを持たないので
代入処理は行わないことになる。
次に、リーダ21は、この非終端記号に関しての引数付
きの非終端記号を読み取ると、内部形式に変換して記述
内容特定部26に渡すよう処理する。すなわち、上述で
例示した゛確認”の展開規則定義を引用する非終端記号
の記述である[確認 A 3J の例で説明するならば、 (ARG 確認 A 3) のような内部形式に変換するよう処理することになる。
きの非終端記号を読み取ると、内部形式に変換して記述
内容特定部26に渡すよう処理する。すなわち、上述で
例示した゛確認”の展開規則定義を引用する非終端記号
の記述である[確認 A 3J の例で説明するならば、 (ARG 確認 A 3) のような内部形式に変換するよう処理することになる。
このようにして、内部形式に変換された引数付きの非終
端記号を受は取ると、記述内容特定部26は、第5図(
a)のフローチャートのステップ1で示すように、該当
する非終端記号名の構造体変数のRULEとARGとい
う属性から、それぞれ内部形式展開規則とパラメタとを
取り出す。続いて、ステップ2で、この取り出した内部
形式展開規則をコピーする。そして、次のステップ3で
、コピーした内部形式展開規則に付加されているパラメ
タと入力されてきた引数とに対して、第5図(b)のフ
ローチャートの処理を繰り返すよう処理する。すなわち
、第5図(b)のフローチャートに示すように、パラメ
タと内部形式展開規則中の内部形式展開要素とが一致す
るのかを判断して、一致するときには、内部形式展開要
素を与えられた引数と置き換えていく処理を実行するの
である。
端記号を受は取ると、記述内容特定部26は、第5図(
a)のフローチャートのステップ1で示すように、該当
する非終端記号名の構造体変数のRULEとARGとい
う属性から、それぞれ内部形式展開規則とパラメタとを
取り出す。続いて、ステップ2で、この取り出した内部
形式展開規則をコピーする。そして、次のステップ3で
、コピーした内部形式展開規則に付加されているパラメ
タと入力されてきた引数とに対して、第5図(b)のフ
ローチャートの処理を繰り返すよう処理する。すなわち
、第5図(b)のフローチャートに示すように、パラメ
タと内部形式展開規則中の内部形式展開要素とが一致す
るのかを判断して、一致するときには、内部形式展開要
素を与えられた引数と置き換えていく処理を実行するの
である。
このようにしてステップ3の処理を終了すると、入れ子
構造をとるときにはその入れ子構造に従って、ステップ
4で示すように、内部形式展開規則をコピーして、ステ
ップ3と同様の処理を実行していくことになる。以上の
処理を実行することで、記述内容特定部26は、人力さ
れてきた引数付きの非終端記号の本来の記述内容を特定
できることになる。
構造をとるときにはその入れ子構造に従って、ステップ
4で示すように、内部形式展開規則をコピーして、ステ
ップ3と同様の処理を実行していくことになる。以上の
処理を実行することで、記述内容特定部26は、人力さ
れてきた引数付きの非終端記号の本来の記述内容を特定
できることになる。
上述に例示した
「確認 A 3J
「確認 B 5J
「確認 C8J
の例で説明するならば、「確認 A 3」の記述の本
来の意味するところは、定義されている”確認”の展開
規則定義中のパラメタを対応する引数に変換することで
求まる 確認(A3)→’CALL C)IECに(″項番2ど
A”、′3”)0であり、「確認 B 5」の記述の本
来の意味するところは、 確認(B 5)→”CALL CHECKc項番”1′
B“、’ 5 ”)’であり、r確tv C8Jの記
述の本来の意味するところは、 確認(C8)→”CALL CIIE(J(″項番”、
2C″、′8″)”であるということを特定するのであ
る。
来の意味するところは、定義されている”確認”の展開
規則定義中のパラメタを対応する引数に変換することで
求まる 確認(A3)→’CALL C)IECに(″項番2ど
A”、′3”)0であり、「確認 B 5」の記述の本
来の意味するところは、 確認(B 5)→”CALL CHECKc項番”1′
B“、’ 5 ”)’であり、r確tv C8Jの記
述の本来の意味するところは、 確認(C8)→”CALL CIIE(J(″項番”、
2C″、′8″)”であるということを特定するのであ
る。
このように、本発明によれば、非終端記号の展開規則定
義の中にパラメタを付加するとともに、引数を使ってそ
の展開規則定義を引用するようにしたことから、属性文
法記述10中で必要とされることになる展開規則の定義
の数を大幅に減少できるようになるのである。
義の中にパラメタを付加するとともに、引数を使ってそ
の展開規則定義を引用するようにしたことから、属性文
法記述10中で必要とされることになる展開規則の定義
の数を大幅に減少できるようになるのである。
更に、属性文法記述10の記述性の向上を図るために、
引数付き非終端記号の繰り返し記号を定義することも可
能である。例えば、上述の[確認 A 3J 「確認 B 5J [確認 C8J を連続して一度に記述する必要があるときには、(″1
jNL’確認’((A 3)(B 5)(C8))1
というように引数を繰り返して記述させるようにするこ
とで、いちいち3つの記述をしなくて済むようにするの
である。ここで、”aNL”は改行を表す終端記号であ
る。このような記述形式で入力されてくるときには、記
述内容特定部26は、繰り返しの数に応じて構造体変数
管理部25から読み出した展開規則定義中のパラメタを
各々の対応する引数に変換していくことで、入力されて
きた弓敗付きの非終端記号の本来の記述内容を特定する
よう処理することになる。
引数付き非終端記号の繰り返し記号を定義することも可
能である。例えば、上述の[確認 A 3J 「確認 B 5J [確認 C8J を連続して一度に記述する必要があるときには、(″1
jNL’確認’((A 3)(B 5)(C8))1
というように引数を繰り返して記述させるようにするこ
とで、いちいち3つの記述をしなくて済むようにするの
である。ここで、”aNL”は改行を表す終端記号であ
る。このような記述形式で入力されてくるときには、記
述内容特定部26は、繰り返しの数に応じて構造体変数
管理部25から読み出した展開規則定義中のパラメタを
各々の対応する引数に変換していくことで、入力されて
きた弓敗付きの非終端記号の本来の記述内容を特定する
よう処理することになる。
このように、本発明によれば、属性文法記述から言語処
理プログラム用のテストプログラムを自動作成するテス
トプログラム作成処理装置にあって、属性文法記述中で
定義しなければならない展開規則の定義の数を大幅に減
少できるようになる。
理プログラム用のテストプログラムを自動作成するテス
トプログラム作成処理装置にあって、属性文法記述中で
定義しなければならない展開規則の定義の数を大幅に減
少できるようになる。
これから、テストプログラムの作成効率が著しく高めら
れることになるとともに、テストの質も向上できるよう
になる。
れることになるとともに、テストの質も向上できるよう
になる。
第1図は本発明の原理構成図、
第2図は本発明により自動作成されるテストプログラム
の使用方法を説明する説明図、第3図は属性文法記述の
一実施例図、 第4図は第3図の属性文法記述から作成されるテストプ
ログラムの説明図、 第5図は本発明が実行するフローチャート、第6図は先
に出願の発明の説明図である。 図中、IOは属性文法記述、itは展開規則、12は意
味記述、20はテストプログラム作成処理装置、21は
リーグ、22は翻訳処理器、23は展開処理部、24は
乱数発生部、25は構造体変数管理部、26は記述内容
特定部、27は意味記述処理依願部、28は意味記述解
釈器、29はライタ、30はテストプログラムである。
の使用方法を説明する説明図、第3図は属性文法記述の
一実施例図、 第4図は第3図の属性文法記述から作成されるテストプ
ログラムの説明図、 第5図は本発明が実行するフローチャート、第6図は先
に出願の発明の説明図である。 図中、IOは属性文法記述、itは展開規則、12は意
味記述、20はテストプログラム作成処理装置、21は
リーグ、22は翻訳処理器、23は展開処理部、24は
乱数発生部、25は構造体変数管理部、26は記述内容
特定部、27は意味記述処理依願部、28は意味記述解
釈器、29はライタ、30はテストプログラムである。
Claims (2)
- (1)展開規則と意味記述とからなる属性文法記述に従
って記述された言語処理プログラムの処理対象文に対し
て、展開規則に関しての乱数的な選択処理を施すことで
該処理対象文の一態様をなす乱数文を生成するとともに
、該乱数文の実行結果の確認を行うテストルーチンの呼
び出しのための確認文を、該属性文法記述中に該処理対
象文と対応付けて記述することで該乱数文と対にして生
成して、言語処理プログラム用のテストプログラムとな
すテストプログラム作成処理装置であって、上記属性文
法記述中で定義される非終端記号の展開規則定義と、該
展開規則定義中で用いられるパラメタとを、該非終端記
号名と対応付けて構造的に管理する構造体変数管理部(
25)と、上記属性文法記述中に記述される引数付きの
非終端記号を検出するときに、上記構造体変数管理部(
25)から該当する非終端記号の展開規則定義を読み出
すとともに、該読み出した展開規則定義中のパラメタを
該引数に動的に変換していくことで、該引数付きの非終
端記号の本来の記述内容を特定する記述内容特定部(2
6)とを備えることを、特徴とするテストプログラム作
成処理装置。 - (2)請求項1記載のテストプログラム作成処理装置に
おいて、 記述内容特定部(26)は、引数付きの非終端記号の該
引数が繰り返されてくるときに、該繰り返しの数に応じ
て展開規則定義中のパラメタを該引数に動的に変換して
いくことで、該引数付きの非終端記号の本来の記述内容
を特定するよう処理することを、 特徴とするテストプログラム作成処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1046213A JPH02224144A (ja) | 1989-02-27 | 1989-02-27 | テストプログラム作成処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1046213A JPH02224144A (ja) | 1989-02-27 | 1989-02-27 | テストプログラム作成処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH02224144A true JPH02224144A (ja) | 1990-09-06 |
Family
ID=12740821
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1046213A Pending JPH02224144A (ja) | 1989-02-27 | 1989-02-27 | テストプログラム作成処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH02224144A (ja) |
-
1989
- 1989-02-27 JP JP1046213A patent/JPH02224144A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4949253A (en) | Method and apparatus for automatically generating program | |
| CN110673854B (zh) | Sas语言编译方法、装置、设备及可读存储介质 | |
| US8122440B1 (en) | Method and apparatus for enumerating external program code dependencies | |
| WO1999021404A2 (en) | Apparatus and method for semi-automated generation and application of language conformity tests | |
| JP2007141173A (ja) | コンパイルシステム、デバッグシステムおよびプログラム開発システム | |
| WO2021086704A1 (en) | Rules generation using learned repetitive code edits | |
| JPH11306046A (ja) | テストケース生成システム及びテストケース生成方法 | |
| GB2420638A (en) | Method of substituting code fragments in Internal Representation | |
| CN109271237B (zh) | 仿真控制方法和装置 | |
| JPH02224143A (ja) | テストプログラム作成処理装置 | |
| JPH10187461A (ja) | 言語処理方式 | |
| JP2585460B2 (ja) | テストデータ作成方法 | |
| CN119556940B (zh) | 一种编译器及并行编译方法 | |
| JPH02224147A (ja) | テストプログラム作成処理装置 | |
| US20050080608A1 (en) | Simulator for request/response systems | |
| CN119556938B (zh) | 一种代码检查方法、装置、设备及存储介质 | |
| JPH02224148A (ja) | テストプログラム作成処理装置 | |
| JPH01177165A (ja) | 配列の定義/引用関係検査方式 | |
| JP2002312167A (ja) | 変数の値をコンピュータに算出させるためのプログラム、コンパイルプログラム、変数値確定方法およびプログラム生成方法 | |
| JPH1083328A (ja) | 単体テスト用疑似入出力実現方式 | |
| JP2882876B2 (ja) | プログラム試験方法 | |
| JPH02205930A (ja) | インタフェースチェック処理方法 | |
| CN117931171A (zh) | 一种应用的开发方法、系统、可读存储介质和电子设备 | |
| JPH07160536A (ja) | 対話型システムのプログラムテスト支援装置 | |
| JPH09305411A (ja) | コンパイル型プログラムのプログラム実行装置 |