JPH0546370A - プログラム生成装置 - Google Patents

プログラム生成装置

Info

Publication number
JPH0546370A
JPH0546370A JP3206005A JP20600591A JPH0546370A JP H0546370 A JPH0546370 A JP H0546370A JP 3206005 A JP3206005 A JP 3206005A JP 20600591 A JP20600591 A JP 20600591A JP H0546370 A JPH0546370 A JP H0546370A
Authority
JP
Japan
Prior art keywords
language
analysis
input
analysis result
node
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
JP3206005A
Other languages
English (en)
Inventor
Katsumi Tanaka
克己 田中
Koichi Nomura
浩一 野村
Kimito Takeda
公人 武田
Hideki Hayakawa
秀樹 早川
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP3206005A priority Critical patent/JPH0546370A/ja
Publication of JPH0546370A publication Critical patent/JPH0546370A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Machine Translation (AREA)

Abstract

(57)【要約】 【目的】本発明は、形式言語への変換処理を自動的に行
ないプログラム作成作業の労力を軽減し曖昧性のない仕
様書を作成可能にしている。 【構成】自然言語で入力された入力言語を該入力言語の
形式的仕様、意味的仕様、構造的仕様に基づいて入力文
解析部103で解析を行い、この入力文解析部103で
の解析結果が前記意味的仕様に基づいて記述されている
かを解析結果検証部107で検証し、出力言語生成部1
09で前記入力文解析部103の解析結果より前記検証
結果に対し実行可能であることを前提とした形式言語を
作成し実行可能プログラムを生成するようにしている。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプログラム生成のための
入力言語として自然言語を利用可能にしたプログラム生
成装置に関する。
【0002】
【従来の技術】従来、人間がプログラムを作成する場合
には、 (1)プログラムの仕様書の作成 (2)仕様書を満足するプログラムを形式言語により作
成 (3)計算機が実行可能なプログラムの作成 のような過程に従って作業が進められる。
【0003】この場合、(1)の作業は自然言語・図・
表等を用いて人間が仕様書を作成することになるが、計
算機が直接理解可能な形式にはなっていない。従って、
(2)の過程では、(1)の作業により作成された仕様
書に基づいて人間が形式言語を用いてプログラムを作成
する必要があった。そして、(2)の作業が完全に行な
われた後に、(3)の作業を計算機側で自動的に行うよ
うにしている。
【0004】従って、かようなプログラム作成過程にお
いては、人間が2段階にわたり作業を行なわなければな
らないため、作業者の負担が重く、しかも(1)の作業
により作成された仕様書どおりに(2)の形式言語プロ
グラムが作成されているかどうかが不明確である不都合
もあった。そこで、従来、自然言語により記述された仕
様書から形式言語を生成する方法が考えられている。
【0005】ところが、この方法は、自然言語の持つ曖
昧性のために、一つの自然言語表現に対して多くの意味
が存在するため、形式言語への変換を1対1で行なうこ
とができない。そのため、処理過程において、ユーザと
の対話により、曖昧性を解消することにより、曖昧性の
ない形式言語への変換を行なっている。しかし、このよ
うにすると、仕様書から形式言語への変換の過程におい
てユーザとの対話を行なうため、ユーザに相応の負担が
かかり、またユーザとの対話により得た情報を利用する
ために、仕様書だけでは以前として曖昧性が残ってしま
い、仕様書の再利用の際の障害となるという欠点があっ
た。
【0006】また、自然言語を用いた仕様書は、通常複
数の文から構成されており、一文単位では曖昧性がな
く、適切な解析が行なわれたとしても、プログラムの作
成のためには、仕様書全体としての検証を行ない、仕様
書として適切であるかどうかを判断し、その上で全体と
して実行可能なプログラムを作成するための形式を生成
する必要がある。自然言語による仕様書では、一文が独
立した単位として記述されているために上記の処理を行
なうことが困難であった。
【0007】
【発明が解決しようとする課題】このように従来のプロ
グラム生成装置にあっては、形式言語への変換処理が半
自動的に行なわれるために、仕様書の解釈が曖昧になっ
てしまう問題点があり、また、仕様書全体としての適切
さについての判断が困難であるとういう問題点もある。
【0008】本発明は、上記事情に鑑みてなされたもの
で、プログラム作成作業の労力を軽減し、曖昧性のない
適切な仕様書の作成を可能にしたプログラム生成装置を
提供することを目的とする。
【0009】
【課題を解決するための手段】本発明は、自然言語で入
力された入力言語を該入力言語の形式的仕様、意味的仕
様、構造的仕様に基づいて解析手段で解析を行い、この
解析手段での解析結果が前記意味的仕様に基づいて記述
されているかを解析結果検証手段で検証し、出力言語生
成手段により前記解析手段の解析結果より前記検証結果
に対し実行可能であることを前提とした形式言語を作成
し実行可能プログラムを生成するように構成している。
【0010】
【作用】この結果、本発明によれば、自然言語を用いて
記述された仕様書から、その書式および用法に関する仕
様に基づいて形式言語により記述された実行可能プログ
ラムを自動的に生成できることになり、プログラム作成
のための労力が軽減されるとともに、仕様書どおりのプ
ログラムを作成することが可能になる。
【0011】
【実施例】以下、本発明の一実施例を図面に従い説明す
る。
【0012】図1は同実施例の概略構成を示すものであ
る。図において、101は自然言語を入力言語として蓄
える入力言語記憶部、102は入力言語の構造的仕様を
蓄える入力言語仕様記憶部、104は入力言語の形式的
仕様を蓄える言語辞書、105は入力言語の意味的仕様
を蓄える対象知識記憶部である。そして、入力言語記憶
部101の入力言語を入力文解析部103に与え、入力
言語の形式的、意味的、構造的仕様に基づいて解析を行
うようにしている。
【0013】入力文解析部103での解析結果は、解析
結果記憶部106に記憶するるとともに、この解析結果
記憶部106の内容を解析結果検証部107で検証する
ようにしている。さらに、解析結果記憶部106の内容
を出力言語生成部109に与え、出力言語知識記憶部1
08に蓄えられた出力言語生成のための知識と出力言語
仕様に基づき解析結果記憶部106の内容から形式言語
を出力するようにする。そして、出力言語生成部109
で生成された形式言語を出力言語記憶部110に一旦蓄
えるとともに、実行プログラム変換部111に与え、実
行可能プログラムに変換し、この実行プログラム変換部
111により生成される実行可能プログラムを実行プロ
グラム記憶部112に蓄えるようにしている。図2は、
このように構成したプログラム生成装置の入力文解析部
103での入力文解析のための処理の流れを説明するた
めのものである。
【0014】この場合、ステップ201により入力言語
記憶部101より1文を切り出す。これは文間の区切り
文字を決めておいて、前記区切り文字間を1文とするこ
とにより1文を切り出すことにより行なわれる。
【0015】そして、ステップ202により形態素解析
処理を実行する。この場合、言語辞書104を参照する
ことにより入力文を単語ごとに分割し、入力文中の単語
の品詞、原形、活用情報を求めるようになる。次に、ス
テップ203で形態素解析検査処理を実行する。この場
合、入力文中で言語辞書104に記載されていない単語
が存在するかどうかの検査を行ない、存在する場合には
異常と判定し、エラーメッセージ発生用情報を作成し、
エラーメッセージ表示処理(ステップ210)に進む。
異常がなかった場合を正常と判定し、構文解析処理(ス
テップ204)に進む。
【0016】ステップ204の構文解析処理において
は、形態素解析処理において得られた単語とその品詞情
報をもとに入力文の構文を解析し、入力文の構文構造を
生成するようになる。そして、構文解析検査処理(ステ
ップ205)において、構文解析処理において構文構造
が正常に生成されたかどうかの検査を行ない、異常と判
定した場合にはエラーメッセージ表示処理(ステップ2
10)に移る。正常な構文構造が生成されていた場合に
は意味解析処理(ステップ206)に進むようになる。
【0017】ステップ206の意味解析処理において
は、対象知識記憶部105並びに入力仕様記憶部102
中の情報を参照することにより、入力文の構文構造を意
味構造に変換するようになる。そして、意味解析検査処
理(ステップ207)において、意味解析処理で生成さ
れた入力文の意味構造が仕様文として適切であるかどう
かの判定を行ない、適切であると判断された場合にはス
テップ208に進み、解析結果を解析結果記憶部106
に格納する。不適切であると判断された場合には、エラ
ーメッセージ発生用情報を作成し、エラーメッセージ表
示処理(ステップ210)に進むようになる。エラーメ
ッセージ表示処理では、エラーメッセージ発生用情報を
もとにエラーメッセージを作成し、エラーメッセージの
表示を行ない、処理を終了する。
【0018】そして、ステップ209では、入力言語記
憶部101の内容を調べ、未だ解析されていない入力文
が存在する場合にはステップ201に戻って、上述した
と同様な動作を繰り返し、全ての入力文が解析された場
合には処理を終了する。ここで、具体例として冷蔵庫の
温度制御プログラムを生成する場合を説明する。
【0019】この場合、入力言語記憶部101には図3
に示す文が格納され、入力言語仕様記憶部102には図
4に示す構造的仕様テーブルが格納され、言語辞書10
4には、形態素解析用、構文解析用、意味解析用として
それぞれ図5、図6、図7に示す形式的仕様テーブルが
格納され、対象知識記憶部105には図8に示す意味的
仕様テーブルが格納されているものとする。
【0020】まず、ステップ201で1文の抽出処理が
行なわれ、入力言語記憶部101より図3の文中より
「コンプレッサは、センサの温度が0℃のとき、ONす
る。」が最初の文として取り出される。
【0021】次に、ステップ202に示す形態素解析処
理が実行され、図5に示す形態素解析用辞書を用いた単
語・品詞・活用形の解析により、図9に示す形態素解析
結果が得られる。本例の場合には、全ての単語が辞書に
存在しているので、次ステップ203の形態素解析検査
処理においては正常と判定され、ステップ204の構文
解析処理に進む。
【0022】ステップ204の構文解析処理では、図6
に示す構文解析用辞書を参照することにより構文構造が
生成される。この場合、図6に示す構文解析用辞書は、
句構造文法における書き換え規則を意味しており、文中
の品詞列と照合が成功した右辺の記号列を左辺の記号列
に書き換えるような操作が行なわれ、その際に、以下の
(1)〜(3)の規則により木構造からなる構文構造を
生成するようにしている。 (1)右辺各項のうち、末尾に* がついている項を親ノ
ードとする。 (2)右辺各項のうち、末尾に+ がついている項をアー
ク名とする。末尾に+のついた項が存在しない場合に
は、アーク名の項をアーク名とする。 (3)右辺各項のうち、(1)(2)以外の項を子ノー
ドとする。
【0023】本例の場合には、これら(1)〜(3)の
規則にしたがい、図10に示すような構文解析結果が得
られるようになる。また、本例の場合には、構文解析処
理により正常な構文構造が生成されているので、次のス
テップ205の構文解析検査処理において正常と判定さ
れ、ステップ206の意味解析処理に進む。
【0024】ステップ206の意味解析処理では、図1
0に示す構文解析結果をもとに、図7に示す意味解析規
則、図8に示す対象知識辞書をそれぞれ参照することで
意味構造が生成される。ここではまず、図10に示す構
文解析結果の木構造の親ノード・アーク・子ノードの組
について、図7のテーブルの各行の要素と順に照合をお
こなう。ここでの照合のための必要十分条件は次の
(1)、(2)に従うものとする。 (1)木構造中の親ノード・アーク・子ノードの組は図
7に示す親ノード・アーク・子ノードの組と一致する。
ただし空白の項は任意とする。
【0025】(2)図7中の親知識ノード・知識アーク
・子知識ノードの項は、図8中の知識ノード1・知識ア
ーク・知識ノード2の組に一致した行がなければならな
い。その場合、図8において知識ノード1はノード1・
知識ノード2はノード2に対応するノードでなければな
らない。ここで図8中に「?」記号の入った項が存在す
る場合には、「?」は任意の文字列と一致するものとす
る。ただし図7において空白の項は任意とする。
【0026】このような規則にしたがって照合処理を行
ない、図7の意味解析規則中に照合に成功したルールが
存在した場合、図10の構文解析結果におけるアークを
図7中の照合したルールの新アークの項と置き換える処
理を行なうようにする。本例の場合、上述の処理を行な
うことにより図11に示す意味解析結果が得られること
になる。ここで、図11ではアーク名のあとに図7中の
照合したルール番号を記述している。
【0027】次に、ステップ207の意味解析検査処理
で、ステップ206の意味解析処理において意味解析処
理が正常に行なわれ、仕様文として正しい意味構造が生
成されたかどうかの検査を行うが、ここでは、正常とみ
なされるための条件を次の(1)、(2)としている。
【0028】(1)構文解析結果の木構造中のすべての
親ノード・アーク・子ノードの組に対し図7の意味解析
規則中に照合した規則が存在したかどうかの検査を行な
う。一つでも照合した規則が存在しなかった親ノード・
アーク・子ノードの組が存在した場合には、意味解析処
理が正常に行なわれなかったとみなす。
【0029】(2)図11に示す意味解析結果の木構造
に対して、図4に示す入力言語仕様記憶部102の内容
との照合を行なう。図4のテーブルでは、親ノード・子
ノードの項において()または[]で囲まれた項は終端
ノードを表す。それ以外の項は非終端ノードを表
す。()で囲まれた項はノード中の知識ノード部分(図
11においてノード部分中の()で囲まれた部分)を表
す。[]で囲まれた項はノード中の言語表現部分(図1
1においてノード部分中の()で囲まれていない部分)
を表す。照合の手順は次の(2a)(2b)に従う。
(2a)図4中の仕様部のノードから初めて、親ノード
から子ノードに向かって、親ノード・アーク・子ノード
の照合を試みていく。その際、親ノードまたは子ノード
の項に非終端ノードが現れた場合には、図4の非終端ノ
ードの項の対応する親ノード・アーク・子ノードの項
と、再帰的に照合を試みていく。(2b)2aの操作
を、意味解析処理結果中のノードがすべて照合に成功す
るまで行なう。すべて照合に成功した場合は正常とし、
それ以外の場合には異常とする。本例の場合には、図1
1に示すように意味解析処理においてすべての親ノード
・アーク・子ノードの組に対して図7の意味解析規則が
適用されている。
【0030】図11の意味解析結果について意味解析検
査処理を行なった結果を図12に示す。図12では、ノ
ードに図4との照合処理により認識された認識結果が、
ノード名のあとの()内に生成される。また図12で
は、本処理により適用された図4のルール番号と親ノー
ド・アーク・子ノードのまとまりが図示してある(これ
は実際の構造には含まれていない)。ここで図12に示
すように、図11の意味解析結果は図4の入力言語仕様
に一致する。従って本例の場合には意味解析検査処理は
正常に行なわれたものとみなし、ステップ208に進む
ようになる。ステップ208では、上述の解析結果を図
12に示すような木構造の状態で解析結果記憶部106
に格納し、ステップ209に進む。ステップ209で
は、入力言語記憶部101に未処理の文が残っているか
どうかを調べる。本例ではあと1文残っているので、ス
テップ201に戻される。ステップ201では、次の1
文の抽出処理が行なわれ、「コンプレッサは、センサの
温度が−10℃のとき、OFFする。」が取り出され
る。
【0031】そして、ステップ202からステップ20
8まで上述した最初の文の場合と同様の処理が実行さ
れ、途中の検査処理でもすべて正常の判定が行なわれ、
図13に示す解析結果が解析結果記憶部106に格納さ
れるようになる。この状態で、本例ではステップ209
において、入力言語記憶部101に未処理の文が残って
いないので処理を終了する。次に、図2に示すフロー処
理の途中でエラーが発生した場合を例にとり説明する。
【0032】ここで、入力文として「センサの温度が0
℃のとき、コンプレッサを運転する。」が与えられたも
のとし、前例と同様に入力言語仕様記憶部102には図
4に示すテーブルが格納され、言語辞書104には、形
態素解析用、構文解析用、意味解析用のそれぞれ図5、
図6、図7に示すテーブルが格納され、対象知識記憶部
105には図8に示すテーブルが格納されているものと
する。
【0033】この場合、ステップ202の形態素解析処
理において、図5に示す形態素解析用辞書を用いた単語
・品詞・活用形の解析が行なわれ、図14に示す形態素
解析結果が得られる。本例の場合には、全ての単語が辞
書に存在しているので次のステップ203の形態素解析
検査処理において正常と判定され、ステップ204の構
文解析処理に進む。
【0034】ステップ204の構文解析処理では、図6
に示す構文解析用辞書を参照することにより、構文構造
が生成される。ここでも上述した場合と同様の処理が行
なわれ、図15に示す構文解析結果が得られる。本例の
場合には構文解析処理により正常な構文構造が生成され
ているので、次の構文解析検査処理において正常と判定
され、ステップ206の意味解析処理に進む。
【0035】ステップ206に示す意味解析処理では、
図15の構文解析結果をもとに、図7に示す意味解析規
則、図8に示す対象知識辞書を参照して、意味構造を生
成する。この処理も上述した場合と同様に行なわれる
が、図15における「運転」ノードと「コンプレッサ」
ノードについて、この場合には図8の対象知識中に「運
転」ノードが存在しないために図7の意味解析規則中に
照合する規則が存在しない。したがってこの場合には図
16に示す意味解析結果が得られ、次のステップ207
に進む。
【0036】ステップ207でも上述したと同様の規則
を用いた処理が行なわれるが、ここでは「運転」ノード
と「コンプレッサ」ノードについて意味解析規則中に照
合する規則が存在しなかったため、(1)の判定基準に
より異常とみなされる。従って、この場合にはステップ
210のエラーメッセージ表示処理に進むことになる。
その際に、意味解析規則の照合に失敗したノードについ
て、図17に示すエラーメッセージ発生用情報を作成す
るようになる。
【0037】ステップ210でのエラーメッセージ表示
処理は、エラーの発生した処理・場所に関する情報を受
けとり、エラーメッセージを発生してユーザに表示す
る。ここでエラーメッセージの発生は図18に示すテー
ブルを用いて行なわれる。図18においてエラー発生処
理の項はエラーが発生した処理に基づいてエラーメッセ
ージ発生用のテンプレートを選択するのに用いられる。
テンプレートの項はエラーメッセージの文字列を表し、
[]で囲まれた部分は、各処理から送られてきたエラー
メッセージ発生情報の各項を置き換える処理を行なう。
このような処理を行なうことにより、本例の場合にはエ
ラーメッセージとして、「運転とコンプレッサの関係が
不明です。」を発生し、ユーザに対して表示した後に、
処理を終了するようになる。次に、入力文解析部103
での解析結果を検証する解析結果検証部107について
説明する。
【0038】解析結果検証部107は、解析結果記憶部
106に記憶された入力文解析部103での解析結果が
仕様として完全に記述されているかどうかを検証するよ
うにしており、本実施例の場合は、検証のための制約を
設け制約が満たされたならば検証に成功したようにして
いる。ここで、検証のための制約は、以下の(1)
(2)である。 (1)対象知識記憶部105において、知識アークの項
で「動作」の項が解析結果にすべて存在しなければなら
ない。 (2)対象知識記憶部105において、知識アークの項
で「状態」の項が解析結果にすべて存在しなければなら
ない。 これにより、対象知識中のすべての機器について、仕様
記述中での言及がなされているかが検証されるようにな
る。図19は上述の制約に沿った解析結果検証部107
での検証の処理フローを示すものである。
【0039】この場合、ステップ1901で対象知識記
憶部105の内容をコピーし、マーク項を付加したテー
ブルを作成する。本例の場合は、対象知識記憶部105
の意味的仕様は図8に示されているので、図20に示す
テーブルが作成されることになる。
【0040】次に、ステップ1902に進み、解析結果
記憶部106より未処理の解析結果を1つ取り出し、ス
テップ1903に進む。なお、未処理の解析結果がない
場合には直ちにステップ1905に進む。
【0041】本例の場合、まず、図12に示す解析結果
が取り出される。すると、ステップ1903で、その取
り出された解析結果中の動作アークについて、その子ノ
ード・親ノードがステップ1901で作成されたテーブ
ル中のノード1・ノード2に対応し、知識アークが動作
である行が存在した場合、その行のマーク項にマーキン
グを行なうようになる。
【0042】図12の意味解析結果では、動作アークの
子ノードが「コンプレッサ」であり、親ノードが「O
N」であるので、図20中に該当する行が存在し、マー
キングの結果は図21に示すようになる。本実施例では
マーキングは記号“*”を用いている。
【0043】次に、ステップ1904で、その取り出さ
れた解析結果中の状態アークについて、その子ノード・
親ノードがステップ1901で作成されたテーブル中の
ノード1・ノード2に対応し、知識アークが状態である
行が存在した場合、その行のマーク項にマーキングを行
なう。
【0044】図13の解析結果では、状態アークの子ノ
ードが「温度」であり、親ノードが「0℃」であるの
で、図21中に該当する行が存在し、マーキングの結果
は図22に示すようになる。ここで図中の記号“?”は
任意の文字列と照合することを示している。
【0045】そして、ステップ1902に戻り、未処理
の解析結果がなくなるまで上述のステップ1902〜ス
テップ1904の処理が繰り返される。本例の場合に
は、図13に示す解析結果についてステップ1903、
ステップ1904のそれぞれ処理を行ない、それぞれの
解析結果はすべて処理したことになるので、ステップ1
905に進むようになる。この時のテーブルの内容は図
23に示すようになっている。
【0046】ステップ1905では、テーブル中の知識
アークの項が動作・状態の行のマーク項がすべてマーキ
ングされているかどうかを検査する。動作・状態の行の
すべてのマーク項がマーキングされているならば、ステ
ップ1906に進み、検証結果が正常であると判定し、
処理を終了する。そうでなければ、ステップ1907に
進み、検証結果が異常であると判定し、処理を終了す
る。本例の場合には、図23に示すようにすべての知識
アークの項が動作・状態の行のすべてのマーク項がマー
キングされているので、ステップ1906に進み、検証
結果が正常であると判定され処理を終了することにな
る。次に、解析結果記憶部106に記憶された解析結果
から形式言語を出力する出力言語生成部109について
説明する。
【0047】本実施例では生成される出力言語として、
有限状態遷移機械モデルに基づいた形式をとるものとす
る。ここで、有限状態遷移機械モデルにおける有限状態
機械SMは、通常、次式により定義される。 SM =(I,O,S,f,g) ただし I:入力 O:出力 S:状態 f:遷移関数(集合Sと集合Iの直積集合S×Iを集合
Sに写像する関数) g:出力関数(集合Sと集合Iの直積集合S×Iを集合
Oに写像する関数)
【0048】しかして、上式の各項を決定することによ
り有限順序機械の動きを決定することになる。本実施例
では、図24に示す処理フローにしたがい、上式の各項
を決定するようにしている。
【0049】この場合、解析結果記憶部106には図1
2、図13に示す解析結果の木構造が格納されているも
のとして、出力言語生成部109での具体的な動作を説
明する。ここで出力言語知識記憶部108には、入力生
成テーブル、出力生成テーブル、入力系列生成テーブル
として、それぞれ図25、図26、図27に示す情報が
格納されているものとする。
【0050】図24において、ステップ2401では、
入力Iを図25の入力生成テーブルを利用して生成す
る。この場合の手順は、次の(1)、(2)に従うもの
とする。
【0051】(1)解析結果それぞれについて、木構造
の葉から根に向かってのノードと、図25中の各行の項
目名が機器→状態→属性→属性状態の項について、順に
照合を試みていく。ただし項目値に“−”が入っている
部分は入力テーブル側の項目をスキップし、次の項目と
の照合を試みるものとする。解析結果のノードと入力生
成テーブルの項目の照合のための規則は次の(1a)、
(2a)に従う。(1a)解析結果のノード名と項目値
が一致する。ただし記号“?”はすべての文字列と一致
する。(1b)解析結果のノードの認識結果(ノードの
()内)と項目名が一致する。
【0052】(2)上述の照合処理によって、解析結果
の木構造と図25に示す入力生成テーブルの一行と一致
した場合、一致した行の入力の項目を有限状態機械SM
の入力Iの一要素として、入力テーブルに格納してい
く。その際に解析結果の木構造の一致した部分を入力テ
ーブルの内容と置き換える。
【0053】このような(1)(2)の処理を行なうこ
とにより、本例の場合には図28に示すような入力テー
ブルが生成され、入力Iが決定される。また、図12、
図13に示す解析結果は、図29に示す木構造に変換さ
れる。
【0054】次に、ステップ2402において、ステッ
プ2401で作成された入力テーブルより入力系列を決
定する。ここで入力系列とは、有限状態機械SMが受理
することが許されている入力の系列である。本例では図
27に示す入力系列生成テーブルを利用して入力系列テ
ーブルを作成する。ここで入力系列テーブルの作成は、
次の(1)(2)の規則に従うものとする。
【0055】(1)ステップ2401において作成され
た入力テーブルの内容と、入力系列生成テーブル中の入
力項を照合する。ただし記号“?”は任意の文字列と照
合する。
【0056】(2)(1)により照合する項が存在した
場合、入力系列生成テーブルの系列1項、系列2項との
照合を行ない、照合が成功した項を取り出して、入力系
列テーブルの1行とする。ただし系列1項、系列2項に
ついて、記号[lower][higher]が含まれ
ている項については、入力項の記号“?”とマッチした
部分が小さい方の入力テーブルの内容をを[lowe
r]が含まれている項に照合し、そうでない方の入力テ
ーブルの内容を[higher]が含まれている項に照
合する。
【0057】このような規則(1)(2)に従った処理
を行なうことにより、本例の場合は図30に示すような
入力系列テーブルが生成される。本実施例では有限状態
機械SMにおいて次の入力系列のみが受理されることを
意味している。 (センサ温度:−10℃ センサ温度:0℃)* ここで記号“*”は()内の入力系列の任意回の繰り返
しを意味している。
【0058】次に、ステップ2403において、ステッ
プ2402で作成された入力系列テーブルより状態S・
遷移関数fを作成する。この場合、状態S・遷移関数f
は、入力系列テーブルで示される入力系列に関する制約
を満たすものでなければならない。本実施例では、上述
したような入力系列は正則集合に分類されるので、有限
状態遷移図の作成が可能であることが知られている。本
例では図31に示す状態遷移図が作成される。図32は
図31の状態遷移図を状態遷移テーブルとして表現した
ものであり、状態S・遷移関数fは、それぞれ図32中
の状態項・入力と状態より構成されるテーブルの内容と
して決定される。ここでテーブルの内容が“×”の欄
は、その状態でその入力を受けた場合にはエラーを発生
させることを示している。
【0059】次に、ステップ2404において、出力O
を、図26に示す出力生成テーブルと図29に示す変換
された解析結果を利用して生成する。この場合の手順
は、次の(1)、(2)に従う。
【0060】(1)図29に示す変換された解析結果に
ついて、木構造の葉から根に向かってのノードと図26
中の各行の項目名が機器→動作の項について、順に照合
を試みていく。この場合、変換された解析結果のノード
と出力生成テーブルの項目の照合のための規則は次の
(1a)、(2a)に従う。(1a)解析結果のノード
名と項目値が一致する。ただし、記号“?”はすべての
文字列と一致する。(1b)解析結果のノードの認識結
果(ノードの()内)と項目名が一致する。
【0061】(2)上述の照合処理によって、解析結果
の木構造と第25図に示す出力生成テーブルの一行と一
致した場合、一致した行の出力の項目を有限状態機械S
Mの出力Oの一要素として、出力テーブルに格納してい
く。またその際に変換された解析結果の木構造の一致し
た部分を出力テーブルの内容と置き換える。
【0062】このような(1)(2)の処理を行なうこ
とにより、本例の場合には図33に示す出力テーブルが
生成され、出力Oが決定される。また、図29の変換さ
れた解析結果は図34に示す木構造に変換される。
【0063】最後にステップ2405で、図34の変換
された解析結果と図32に示す状態遷移テーブルより、
出力関数gを決定する。この決定は以下の(1)(2)
(3)に従い行われる。 (1)図32のテーブルを複写したテーブルを作成す
る。
【0064】(2)図34に示す変換された解析結果に
おいて、木構造の葉から根に向かって、入力ノード→条
件アーク→とき→出力ノードとなっている部分構造を取
り出す。
【0065】(3)(1)において取り出された入力ノ
ード、出力ノードの組について、(1)によりコピーさ
れた状態遷移テーブル中の、対応する入力ノードの項の
項目内に出力ノードの内容を書き込む。ただし“×”の
ついた項は書き込まずそのままにしておく。
【0066】このような(1)(2)(3)の処理によ
り、生成されたテーブルを出力関数gとして決定する。
本例の場合には図35に示す出力関数テーブルが生成さ
れることになる。
【0067】なお、図1に示す実行プログラム変換部1
11および実行プログラム記憶部112については、本
実施例において作成された有限状態機械SMを計算機上
で実行するためのプログラム変換方法および記憶方法が
従来から知られていることから、ここでの説明は省略し
ている。
【0068】従って、このようにすればユーザが自然言
語を用いて記述した仕様書から、仕様書中の文の解析→
仕様書全体の解析→形式表現の生成という手順により形
式言語で記述されたプログラムを自然言語の書式、用法
に関する仕様に基づき自動的に生成することができるよ
うになるので、従来の形式言語への変換処理が半自動的
に行なわれるために仕様書の解釈が曖昧になるととも
に、仕様書全体としての適切さについての判断が困難に
なるものに比べ、プログラム作成作業の労力を大幅に軽
減できるとともに、曖昧性のない適切な仕様書の作成を
可能にすることができる。
【0069】なお、本実施例では、入力文解析部103
と出力言語生成部109を有し、両者の間のデータの受
けわたしのために解析結果記憶部106を設けている
が、必ずしもこの構成である必要はなく、入力文解析部
103と出力言語生成部109が一体の構成になり、連
続的に処理を続けていくことも可能である。また本実施
例では各種テーブル内に特殊記号として“*”、
“?”、“×”を使用しているが、通常使用文中で用い
られない記号であれば他の記号を使用することも可能で
ある。その他本発明は、上記実施例にのみ限定されず、
要旨を変更しない範囲で種々変形して実施することがで
きるものである。
【0070】
【発明の効果】以上述べたように、本発明によれば、自
然言語を用いて記述された仕様書から、その書式および
用法に関する仕様に基づいて形式言語により記述された
実行可能プログラムを自動的に生成できるので、プログ
ラム作成作業の労力を軽減できるとともに、曖昧性のな
い適切な仕様書の作成を可能にできる。また、解析手段
で解析に失敗したような場合に、失敗の原因、部位に関
する情報などを自然言語の表現を用いて提示することも
できるので、ユーザはプログラム作成作業を効率よく進
めることもできるようになる。
【図面の簡単な説明】
【図1】本発明の一実施例の概略構成を示すブロック
図。
【図2】図1に示す実施例に用いられる入力文解析部で
の処理の流れを示すフローチャート。
【図3】図1に示す実施例に用いられる入力言語記憶部
の内容の一例を示す図。
【図4】図1に示す実施例に用いられる入力言語仕様記
憶部の内容の一例を示す図。
【図5】図1に示す実施例に用いられる言語辞書に格納
される形態素解析用テーブルの一例を示す図。
【図6】図1に示す実施例に用いられる言語辞書に格納
される構文解析用テーブルの一例を示す図。
【図7】図1に示す実施例に用いられる言語辞書に格納
される言語辞書の意味解析用テーブルの一例を示す図。
【図8】図1に示す実施例に用いられる対象知識記憶部
の内容の一例を示す図。
【図9】図1に示す実施例に用いられる入力文解析部で
の形態素解析結果の一例を示す図。
【図10】図1に示す実施例に用いられる入力文解析部
での構文解析結果の一例を示す図。
【図11】図1に示す実施例に用いられる入力文解析部
での意味解析結果の一例を示す図。
【図12】図1に示す実施例に用いられる入力文解析部
での意味解析検査処理結果の一例を示す図。
【図13】図1に示す実施例に用いられる入力文解析部
での他の意味解析検査処理結果の一例を示す図。
【図14】図1に示す実施例に用いられる入力文解析部
での他の形態素解析結果の一例を示す図。
【図15】図1に示す実施例に用いられる入力文解析部
での他の構文解析結果の一例を示す図。
【図16】図1に示す実施例に用いられる入力文解析部
での他の意味解析結果の一例を示す図。
【図17】図1に示す実施例に用いられる入力文解析部
でのエラーメッセージ発生用情報の一例を示す図。
【図18】図1に示す実施例に用いられる入力文解析部
でのエラーメッセージ発生用テーブルの一例を示す図。
【図19】図1に示す実施例に用いられる解析結果検証
部での処理の流れを示すフローチャート。
【図20】図1に示す実施例に用いられる解析結果検証
部での解析結果検証用テーブルの初期状態の一例を示す
図。
【図21】図1に示す実施例に用いられる解析結果検証
部での解析結果検証用テーブルの途中経過の一例を示す
図。
【図22】図1に示す実施例に用いられる解析結果検証
部での解析結果検証用テーブルの途中経過の一例を示す
図。
【図23】図1に示す実施例に用いられる解析結果検証
部での解析結果検証用テーブルの最終結果の一例を示す
図。
【図24】図1に示す実施例に用いられる出力言語生成
部での処理の流れを示すフローチャート。
【図25】図1に示す実施例に用いられる出力言語知識
記憶部の入力生成テーブルの一例を示す図。
【図26】図1に示す実施例に用いられる出力言語知識
記憶部の出力生成テーブルの一例を示す図。
【図27】図1に示す実施例に用いられる出力言語知識
記憶部の入力系列生成テーブルの一例を示す図。
【図28】図1に示す実施例に用いられる出力言語生成
部で生成される入力テーブルの一例を示す図。
【図29】図1に示す実施例に用いられる出力言語生成
部で生成される変換された解析結果の一例を示す図。
【図30】図1に示す実施例に用いられる出力言語生成
部で生成される入力系列テーブルの一例を示す図。
【図31】図1に示す実施例に用いられる出力言語生成
部で生成される状態遷移図の一例を示す図。
【図32】図1に示す実施例に用いられる出力言語生成
部で生成される状態遷移テーブルの一例を示す図。
【図33】図1に示す実施例に用いられる出力言語生成
部で生成される出力テーブルの一例を示す図。
【図34】図1に示す実施例に用いられる出力言語生成
部で生成される変換された解析結果の一例を示す図。
【図35】図1に示す実施例に用いられる出力言語生成
部で生成される出力関数テーブルの一例を示す図。
【符号の説明】
101…入力言語記憶部、102…入力言語仕様記憶
部、103…入力文解析部、104…言語辞書部、10
5…対象知識記憶部、106…解析結果記憶部、107
…解析結果検証部、108…出力言語知識記憶部、10
9…出力言語生成部、110…出力言語記憶部、111
…実行プログラム変換部、112…実行プログラム記憶
部。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 早川 秀樹 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝総合研究所内

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 自然言語で入力された入力言語を該入力
    言語の形式的仕様、意味的仕様、構造的仕様に基づいて
    それぞれ解析を行う解析手段と、 この解析手段の解析結果が前記意味的仕様に基づいて記
    述されているかを検証する解析結果検証手段と、 前記解析手段の解析結果より前記検証結果に対し実行可
    能であることを前提とした形式言語を作成し実行可能プ
    ログラムを生成する出力言語生成手段とを具備したこと
    を特徴とするプログラム生成装置。
  2. 【請求項2】 解析手段で解析に失敗した状態で、少な
    くとも失敗の原因、部位に関する情報を自然言語の表現
    を用いて提示可能にしたことを特徴とする請求項1記載
    のプログラム生成装置。
  3. 【請求項3】 出力言語生成手段は入力言語より有限状
    態機械を作成することで実行可能プログラムを生成する
    ことを特徴とする請求項1記載のプログラム生成装置。
JP3206005A 1991-08-16 1991-08-16 プログラム生成装置 Pending JPH0546370A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3206005A JPH0546370A (ja) 1991-08-16 1991-08-16 プログラム生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3206005A JPH0546370A (ja) 1991-08-16 1991-08-16 プログラム生成装置

Publications (1)

Publication Number Publication Date
JPH0546370A true JPH0546370A (ja) 1993-02-26

Family

ID=16516333

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3206005A Pending JPH0546370A (ja) 1991-08-16 1991-08-16 プログラム生成装置

Country Status (1)

Country Link
JP (1) JPH0546370A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009116648A (ja) * 2007-11-07 2009-05-28 Hitachi Ltd ソフトウェアの設計支援方法、設計支援装置及び設計支援プログラム
WO2018180106A1 (ja) * 2017-03-30 2018-10-04 日本電気株式会社 情報処理装置、情報処理方法及びコンピュータ読み取り可能な記録媒体

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009116648A (ja) * 2007-11-07 2009-05-28 Hitachi Ltd ソフトウェアの設計支援方法、設計支援装置及び設計支援プログラム
WO2018180106A1 (ja) * 2017-03-30 2018-10-04 日本電気株式会社 情報処理装置、情報処理方法及びコンピュータ読み取り可能な記録媒体
JPWO2018180106A1 (ja) * 2017-03-30 2020-02-13 日本電気株式会社 情報処理装置、情報処理方法及びプログラム
US11669691B2 (en) 2017-03-30 2023-06-06 Nec Corporation Information processing apparatus, information processing method, and computer readable recording medium

Similar Documents

Publication Publication Date Title
JP3385141B2 (ja) 機械翻訳システム
JP3009215B2 (ja) 自然語処理方法および自然語処理システム
US5555169A (en) Computer system and method for converting a conversational statement to computer command language
JPH1078964A (ja) 一般に混同するワードを自然言語パーザにおいて識別及び分析する方法及びシステム
JPS6375835A (ja) 目的コ−ド、プログラム・リスト及び設計文書を生成する装置
JPH0830620A (ja) 構造検索装置
JPH0567144A (ja) 前編集支援方法およびその装置
JP2000057139A (ja) 自然言語解析装置、システム及び記録媒体
JPH0546370A (ja) プログラム生成装置
JPH0728630A (ja) プログラム生成装置
Andrews et al. The formal definition of Modula-2 and its associated interpreter
JPH07210556A (ja) 自然言語処理装置及び自然言語処理方法
US7379862B1 (en) Method and apparatus for analyzing and debugging natural language parses
JP2704945B2 (ja) 重複表現処理装置
JP4103313B2 (ja) 自然言語処理装置及び方法
JPH09101959A (ja) 構造化文書生成装置
JPH0744560A (ja) 文書処理装置における論理構造認識処理方式
JPS62209659A (ja) 日本語文章校正装置
JP3197110B2 (ja) 自然言語解析装置および機械翻訳装置
JPH0736899A (ja) 自然言語処理装置
JPH03233669A (ja) 文書作成装置
JP2003162525A (ja) 自然言語処理装置及びその方法
JPS62272358A (ja) 翻訳装置における翻訳中断時の表示方式
JPS63140339A (ja) バ−ジヨン識別予約語管理方式
JPS60120433A (ja) プログラミング言語の実行処理装置