【事件の表示】
　平成　７年特許願第　　７０７７号「実行形式プログラム作成方法」拒絶査定不服審判事件〔平成　８年　７月３０日出願公開、特開平　８−１９４６２４〕について、次のとおり審決する。
【結　論】
　本件審判の請求は、成り立たない。
【理　由】
１．手続の経緯
　本願は、平成７年１月２０日の出願であって、平成１６年８月９日付けで拒絶査定がなされ、これに対し、同年９月１６日に審判請求がなされ
平成１８年５月２４日に当審より拒絶理由通知がなされ、同年７月２６日に意見書及び手続補正書が提出されたものである。
　
２．本願発明
　本願の請求項１に係る発明（以下、「本願発明」という。）は、平成１８年７月２６日付けの手続補正書の特許請求の範囲の請求項１に記載された事項により特定される、以下のとおりのものである。
「ソースプログラムの翻訳部と翻訳されたプログラムを検査する検査手段を備え、プログラム検査可能な実行形式プログラムを作成する方法において、
　繰り返し処理の要素が変数だけ又は定数だけで構成された単純式の場合は、該変数もしくは配列を検査する検査手段を該繰り返し処理のループの外に組み込み、
　翻訳部は、ソースプログラムを解析して中間テキストを生成し、中間テキストにおいて繰り返し処理を求め、該繰り返し処理の開始値および終了値を保持する繰り返しテーブルを作成し、
　該検査手段は、前記繰り返しテーブルを参照し、前記繰り返し処理で処理される配列の添字範囲が配列定義された配列の添字範囲の中に含まれるものであるかないかを検査するとともに、前記繰り返し処理で使用される要素である配列もしくは変数が代入文の右辺に存在したり、もしくはＷＲＩＴＥ文の出力並びに使用された場合に、その定義の有無を検査することを特徴とする実行形式プログラム作成方法。」
　
３．特許法第２９条第２項の拒絶理由について
　
３−１．引用例の開示
　当審における平成１８年５月２４日付け拒絶理由通知において引用した、特開平４−２１０３０号公報（以下、「引用例１」という。）には、図面とともに以下の事項が記載されている。
　
「〔実施例〕
　以下、本発明の一実施例を第１図を用いて説明する。第１図において、１はＦＯＲＴＲＡＮなどの計算機言語で記述されたソース・プログラム、２はコンパイラ、９はコンパイラ２により生成されるオブジェクト・プログラムである。コンパイラ２は、構文解析部３、最適化部４、ベクトル化部５、コード生成部６からなる。ソース・プログラム１は、構文解析部３により解析され、主記憶装置７の上の中間語８に変換される。中間語８は、最適化部４ならびにベクトル化部５によって、実行性能のよい形態に変換され、最後にコード生成部６によってレジスタ割り当てやストレージ割り付けが行われた上で、オブジェクト９が生成される。以上の動作は従来から知られているものなので説明は省略する。
　本発明の配列の宣言範囲外参照の検出オブジェクト生成を行う方法として、１つは最適化部４で行う方法がある。もう１つの方法はベクトル化部５において行う方法である。配列の宣言範囲外参照の検出を効率よく行う本発明はベクトル計算機で実行するオブジェクトを生成する時に最も効果を発揮するので、ここではベクトル化部５において検出オブジェクトの生成を行う場合を説明する。
　ベクトル化部５の中に、
（１）ＤＯループ内の配列要素の参照箇所を検出する配列参照検出部１０
（２）該配列要素の参照の仕方が該ＤＯループのループ制御変数の定数係数の１次式で表現されるか否かを判定する配列参照パターン判定部２０
（３）該配列要素の参照の仕方に応じて該配列に対する参照範囲が宣言された範囲に含まれているか否かを比較し検出するオブジェクトを該ＤＯループの直前に設定する比較オブジェクト生成部３０
　を置く。それらは以下のように動作する。
　配列参照検出部１０は、各ＤＯループについて以下のように動作する。
　すなわち、ＤＯループ内のあるすべての文のすべての演算要素を調べ、それが配列要素の参照か否かを判断する。そして、配列要素の参照であれば、その配列の名称と該配列内のどこを参照しているか表わす式（添字式と呼ぶ）を配列参照テーブルとして、記録する。
　配列参照パターン判定部２０は、まず、上記の配列参照検出部１０が記録した個々の配列参照テーブルの添字式を調べる。すなわち、該配列要素の参照の仕方が、該ＤＯループのループ制御変数の定数係数１次式で表現されるか否かを判定する。ここで、ＤＯループのループ制御変数の定数係数の１次式とは、ループ制御変数をＩとした時、Ｃ１＊Ｉ＋Ｃ２と表現されるものをいう。ここで、Ｃ１は定数、Ｃ２は定数またはループ不変変数である。Ｃ１が定数でなくループ不変変数である時は、定数係数の１次式とは見なさない。
　ここで、Ｃ１やＣ２が定数か否かの判断の仕方、および、Ｃ２がループ不変変数か否かの判断の仕方については、公知であるので詳細は省略する。
　次に、比較オブジェクト生成部３０は、上記の配列参照パターン判定部２０により判定された配列要素の参照の仕方に応じて、該配列に対する参照範囲の最小値と該配列の宣言された範囲の最小値との比較ならびに該配列に対する参照範囲の最大値と該配列の宣言された範囲の最大値との比較を行うオブジェクトを生成し、該ＤＯループ直前に設定する。
　生成される比較オブジェクトは、次の２種類になる。
（１）ループ制御変数Ｉの定数係数の１次式の場合
　第３図に、その例を示す。
　図において、ループ制御変数Ｉの初期値をＩｉと最終値をＩｅとする。また、添字式３１は、ループ制御変数Ｉの定数係数の１次式（Ｃ１＊Ｉ＋Ｃ２）として表現されている。その添字式３１の最小値Ｅｓと最大値Ｅｌは次のように決定される。
　１）Ｃ１が正の時、最小値Ｅｓ＝Ｃ１＊Ｉｉ＋Ｃ２，
　　　　　　　　　　最大値Ｅｌ＝Ｃ１＊Ｉｅ＋Ｃ２
　２）Ｃ１が負の時、最小値Ｅｓ＝Ｃ１＊Ｉｅ＋Ｃ２，
　　　　　　　　　　最大値Ｅｌ＝Ｃ１＊Ｉｓ＋Ｃ２
　なお、該配列の宣言された範囲の最小値をＬｓ，最大値をＬｌとする。
　Ｃ１の正負はコンパイラによって判断される。ここでは、Ｃ１が正の場合について示す。生成される比較オブジェクト３２は、次のようになる。
　Ｅｌ＝Ｃ１＊Ｉｅ＋Ｃ２
　Ｅｓ＝Ｃ１＊Ｉｉ＋Ｃ２
　ＩＦ（Ｅｌ＞Ｌｌ、ＯＲ，Ｅｓ＜Ｌｓ）ＴＨＥＮ　ＣＡＬＬ　ＥＲＲＭＳＧ
　ここで、ＥＲＲＭＳＧルーチンはエラー・メッセージ出力ルーチンの名前である。」（第３頁右下欄２行目〜第４頁右下欄１６行目，【審決注】原文中の丸付き数字１，２は、片括弧１），２）に置き換えて記載した。）
　
　なお、上記において、「配列要素の参照の仕方に応じて該配列に対する参照範囲が宣言された範囲に含まれているか否かを比較し検出するオブジェクトを該ＤＯループの直前に設定する比較オブジェクト生成部」という記載から、「配列要素の参照の仕方に応じて該配列に対する参照範囲が宣言された範囲に含まれているか否かを比較し検出するオブジェクト」は、「比較オブジェクト」であると解される。
　してみると、引用例１には、
　
　構文解析部とベクトル化部を含むコンパイラと比較オブジェクトを備え、オブジェクト・プログラムを生成する方法において、
　ＤＯループ内にある演算要素における配列要素の参照の添字式が、ループ制御変数をＩとしたときにＩの定数係数の１次式の場合は、ループ制御変数の初期値及び最終値を参照し、配列に対する参照範囲が宣言された範囲に含まれているか否かを比較し検出する比較オブジェクトをＤＯループ直前に設定し、
　構文解析部はソース・プログラムを解析して中間語に変換し、ベクトル化部は、中間語においてＤＯループ内の配列要素の参照箇所を検出し、比較オブジェクトを設定すること
　を特徴とするオブジェクト・プログラム生成方法。
　
に関する発明が開示されているものと認める。（以下、これを「引用例１記載の発明」という。）
　
　また、同じく当審における平成１８年５月２４日付け拒絶理由通知において引用した、特開平５−２０４７０５号公報（以下、「引用例２」という。）には、図面とともに以下の事項が記載されている。
　
「【０００３】
【従来の技術】例えばＦＯＲＴＲＡＮなどのプログラミング言語では，未定義な変数（値を設定していない変数）を引用してはならない。未定義な変数を引用した場合，システムまたは動作環境によって，得られる結果が変わってくるからである。そこで，デバッグオプションを選択してコンパイルすることにより，次のような未定義な変数の引用を検出する処理を，コンパイル結果に組み込むことが行われている。
【０００４】１）まず，プログラムの実行の直前で，変数に特定の値を設定する。
２）変数の引用の直前で，未定義変数の検査ライブラリを呼び出し，そのライブラリでは，その変数が未定義な値（特定の値を持った変数）の引用かどうかを検査し，未定義な値であれば，診断メッセージを出力する。
【０００５】図５は従来技術の説明図である。例えば，図５の（イ）に示すＦＯＲＴＲＡＮで記述されたソースプログラム１０を，未定義変数引用の検査を指定するデバッグオプションを選択してコンパイルすると，従来，図５の（ロ）に示す内容を持つオブジェクトプログラム１２を生成していた。なお，（ロ）では，説明を分かりやすくするためにソースイメージで表している。
【０００６】オブジェクトプログラム１２の動作は，次のようになる。最初に，未定義状態を検出するための特定の値を変数に設定するライブラリを呼び出す。ブロック（＃００１）では，ＲＥＡＤを実行するライブラリを呼び出す。ブロック（＃０１０）では，Ｉ＝Ｋ＋Ｌで引用されている変数Ｋ，Ｌが未定義でないかを検査するために，それぞれ未定義変数の検査ライブラリを呼び出し，その後にＩ＝Ｋ＋Ｌの演算を実行する。また，Ａ（Ｍ）＝Ｊで引用される変数Ｊ，Ｍについても未定義変数の検査ライブラリを呼び出し，未定義でないかを検査した後，配列Ａへの代入を実行する。以降も同様である。」
　
　また、【図５】（ロ）を見ると、「ＣＡＬＬ　未定義変数の検査ライブラリ（変数Ａ（Ｍ））」と記載された行があり、上記【０００５】〜【０００６】段落の記載を参酌すれば、Ｋ，Ｌなどの変数だけでなく、Ａ（Ｍ）という配列についても未定義の検出を行うことが理解される。
　
　してみると、引用例２には、
　
　コンパイラによるコンパイル方法であって、
　値を設定していない未定義な配列もしくは変数の引用を検出する処理をコンパイル結果に組み込むこと。
　
が開示されているものと認める。
　
３−２．対比
　本願発明と引用例１記載の発明とを比較する。
　両者は共にプログラムの翻訳（コンパイル）の際に、プログラムの検査のための手段を組み込むものであるということができ、
　引用例１記載の発明における「ソース・プログラム」、「オブジェクト・プログラム」は、本願発明における「ソースプログラム」、「実行形式プログラム」に相当する。
　また、引用例１記載の発明における「コンパイラ」は、本願発明における「ソースプログラムの翻訳部」及び「翻訳部」の両者に対応する。
　また、引用例記載の発明において「比較オブジェクト」は、「配列に対する参照範囲が宣言された範囲に含まれているか否かを比較し検出する」ものであり、これは、本願発明でいう「配列の添字範囲が配列定義された配列の添字範囲の中に含まれるものであるかないかを検査する」ものに相当するから、引用例１記載の発明における「比較オブジェクト」は、本願発明における「検査手段」に相当する。
　また、引用例１記載の発明における「生成」は、本願発明における「作成」に相当する。
　
　次に、引用例１記載の発明における「比較オブジェクト」は、コンパイラ内のベクトル化部によって設定されるものであることから、コンパイル、すなわち翻訳の際に設定されるものであり、さらに、「配列に対する参照範囲が宣言された範囲に含まれているか否かを比較し検出する」という検査を行うものであるから、本願発明でいうところの「翻訳されたプログラムを検査する」ものであるといえる。
　また、引用例１記載の発明における「オブジェクト・プログラム」は、「配列に対する参照範囲が宣言された範囲に含まれているか否かを比較し検出する」ところの「比較オブジェクト」が設定されていることから、本願発明でいうところの「プログラム検査可能な」ものであるといえる。
　してみると、引用例１記載の発明における、「コンパイラと比較オブジェクトを備え、オブジェクト・プログラムを生成する方法」は、本願発明の「ソースプログラムの翻訳部と翻訳されたプログラムを検査する検査手段を備え、プログラム検査可能な実行形式プログラムを作成する方法」に相当する。
　
　また、引用例１記載の発明における、「ＤＯループ内にある演算要素における配列要素の参照の添字式が、ループ制御変数をＩとしたときにＩの定数係数の１次式の場合」と、本願発明における、「繰り返し処理の要素が変数だけ又は定数だけで構成された単純式の場合」とでは、「所定の条件を満たす場合」である点で共通する。
　また、引用例１記載の発明における「配列に対する参照範囲が宣言された範囲に含まれているか否かを比較し検出する」ことは、配列を検査するものであり、本願発明でいうところの「変数もしくは配列を検査する」ことに対応する。
　また、引用例１記載の発明における「ＤＯループ」は、本願発明における「繰り返し処理」に相当し、引用例１記載の発明における、「ＤＯループの直前」は、本願発明における「繰り返し処理のループの外」に相当する。
　さらに、引用例１記載の発明における「設定し」は、本願発明における「組み込み」に相当する。
　してみると、引用例１記載の発明における、「ＤＯループ内にある演算要素における配列要素の参照の添字式が、ループ制御変数をＩとしたときにＩの定数係数の１次式の場合は」、「配列に対する参照範囲が宣言された範囲に含まれているか否かを比較し検出する比較オブジェクトをＤＯループ直前に設定」することと、本願発明における、「繰り返し処理の要素が変数だけ又は定数だけで構成された単純式の場合は、該変数もしくは配列を検査する検査手段を該繰り返し処理のループの外に組み込み」することとでは、「所定の条件を満たす場合は、変数もしくは配列を検査する検査手段を該繰り返し処理のループの外に組み込み」するという点で共通する。
　
　次に、引用例記載の発明において「構文解析部」、「ベクトル化部」は、いずれも「コンパイラ」に含まれるものであるから、「構文解析部」、「ベクトル化部」の動作は、「コンパイラ」、すなわち、本願発明でいう「翻訳部」の動作であるといえる。
　また、引用例１記載の発明における、「中間語」は、本願発明における「中間テキスト」に相当する。
　また、引用例１記載の発明では、ＤＯループ内の配列要素の参照箇所の検出を行っているが、このような動作の前提として、当然に、ＤＯループ（繰り返し処理）そのものの検出を行っているものと解される。
　してみると、引用例１記載の発明における、「構文解析部はソース・プログラムを解析して中間語に変換し、ベクトル化部は、中間語においてＤＯループ内の配列要素の参照箇所を検出し、比較オブジェクトを設定」することと、本願発明における、「翻訳部は、ソースプログラムを解析して中間テキストを生成し、中間テキストにおいて繰り返し処理を求め、該繰り返し処理の開始値および終了値を保持する繰り返しテーブルを作成」することは、「翻訳部は、ソースプログラムを解析して中間テキストを生成し、中間テキストにおいて繰り返し処理を求め」る点で共通する。
　
　また、本願発明において、「繰り返しテーブルを参照」することは、繰り返しテーブルに保持される「繰り返し処理の開始値及び終了値」を参照することを意味している。そして、引用例１記載の発明における「ループ制御変数の初期値及び最終値」は、本願発明における「繰り返し処理の開始値及び終了値」に相当するから、引用例１記載の発明における、「ループ制御変数の初期値及び最終値を参照」することと、本願発明における「繰り返しテーブルを参照」することとは、「繰り返し処理の開始値及び終了値を参照」する点で共通する。
　
　これらのことから、本願発明と引用例１記載の発明は、
　
　ソースプログラムの翻訳部と翻訳されたプログラムを検査する検査手段を備え、プログラム検査可能な実行形式プログラムを作成する方法において、
　所定の条件を満たす場合は、変数もしくは配列を検査する検査手段を該繰り返し処理のループの外に組み込み
　翻訳部は、ソースプログラムを解析して中間テキストを生成し、中間テキストにおいて繰り返し処理を求め、
　該検査手段は、繰り返し処理の開始値及び終了値を参照し、配列の添字範囲が配列定義された配列の添字範囲の中に含まれるものであるかないかを検査すること
　を特徴とする実行形式プログラム作成方法。
　
である点で一致し、以下の点で相違している。
　
［相違点１］
　検査手段の組み込みの条件となる、「所定の条件」が、本願発明では、「繰り返し処理の要素が変数だけ又は定数だけで構成された単純式の場合」であるのに対し、引用例１記載の発明では、「ＤＯループ内にある演算要素における配列要素の参照の添字式が、ループ制御変数をＩとしたときにＩの定数係数の１次式の場合」である点。
　
［相違点２］
　本願発明では、翻訳部が、「繰り返し処理の開始値および終了値を保持する繰り返しテーブルを作成」し、検査手段が、該「繰り返しテーブル」の「繰り返し処理の開始値及び終了値を参照」するものであるのに対し、引用例１記載の発明では、翻訳部（コンパイラ）は、検査手段（比較オブジェクト）を設定するものであって、繰り返しテーブルを作成するかどうかは明らかでなく、検査手段も繰り返しテーブルを参照するとはされていない点。
　
［相違点３］
　検査手段が、本願発明では、「繰り返し処理で使用される要素である配列もしくは変数が代入文の右辺に存在したり、もしくはＷＲＩＴＥ文の出力並びに使用された場合に、その定義の有無を検査する」機能を持つのに対し、引用例１記載の発明では、これに相当する内容が明示されていない点。
　
３−３．当審の判断
［相違点１について］
　まず、本願発明における「繰り返し処理の要素が変数だけ又は定数だけで構成される」ということについて、その場合に組み込まれる検査手段が、「配列の添字範囲が配列定義された配列の添字範囲の中に含まれるものであるかないかを検査する」ものであることから、ここでいう「繰り返しの処理の要素」とは、「繰り返し処理内にある配列の添字」であると解される。
　さらに、ここでいう「変数」は、任意の変数とすれば、「配列の添字範囲」がどのような値となるか特定できないから、開始値と終了値が繰り返しテーブルに保持されている変数、つまりは、引用例１記載の発明でいうループ制御変数であると解される。
　また、本願発明における「単純式」については、本願明細書において明確に定義されておらず、また技術用語として定義が明らかなものとも認められないから、字面のとおり「単純な式」として解するのが相当である。
　一方、引用例１記載の発明における、繰り返し処理（ＤＯループ）内にある演算要素における配列要素の参照の添字式も、「繰り返し処理内にある配列の添字」である。
　また、引用例１記載の発明の「ループ制御変数をＩとしたときにＩの定数係数の１次式」は、例えばＩの二次式や三次式に比べれば「単純な式」である。
　そして、引用例１記載の発明は、検査手段を、「ループ制御変数をＩとしたときにＩの定数係数の１次式の場合」に組み込むものであるが、ここでいう１次式の定数係数を１とし、定数項を０とすれば、１×Ｉ＋０＝Ｉとなって、本願発明でいうところの「変数だけ」で構成される場合に対応し、定数係数を０、定数項を任意の値ａとすれば０×Ｉ＋ａ＝ａとなって、本願発明で言うところの「定数だけ」で構成される場合に対応する。そして、これらの場合に当てはまらない、定数係数と定数項がいずれも０でない一次式の場合については、引用例記載の発明では検査手段を組み込み、本願発明では検査手段を組み込まないものとなるが、このような場合を検査手段の組み込みの対象外とすることは、単に発明を適用して検査を行うことのできる範囲を狭めているだけであって、この点に格別の困難性を認めることはできない。
　したがって、引用例１記載の発明における、「ＤＯループ内にある演算要素における配列要素の参照の添字式が、ループ制御変数をＩとしたときにＩの定数係数の１次式の場合」という条件に対して、一次式の定数係数と定数項のいずれも０でない場合を対象外として、本願発明の「繰り返し処理の要素が変数だけ又は定数だけで構成された単純式の場合」という条件を得ることに格別の困難性は認められない。
　よって、相違点１は格別のものでない。
　
［相違点２について］
　引用例１記載の発明において、翻訳部（コンパイラ）は検査手段（比較オブジェクト）を設定するものであるが、この検査手段が、繰り返し処理の開始値及び終了値（ループ制御変数の初期値及び最終値）を参照するものであることから、翻訳部が、繰り返し処理の開始値及び終了値を、参照可能な形式で用意するものであることは明らかである。これをテーブル形式として、本願発明における「繰り返し処理の開始値及び終了値を保持する繰り返しテーブル」に相当する構成を翻訳部で作成するようにすることは、テーブル形式が情報処理装置におけるデータの保持方法として周知であることを考慮すれば、当業者が適宜なし得たことに過ぎない。
　また、このようにテーブル形式を採用した結果、検査手段が繰り返しテーブルを参照して繰り返し処理の開始値及び終了値を得ることも必然的なことである。
　よって、相違点２も格別のものでない。
　
［相違点３について］
　引用例２によれば、コンパイラによるコンパイル方法であって、値を設定していない未定義な配列もしくは変数の引用を検出する処理をコンパイル結果に組み込むことが公知である。
　ここで、配列もしくは変数の引用には、配列もしくは変数が代入文の右辺に存在したり、もしくはＷＲＩＴＥ文の出力並びに使用されものが該当することは明らかであり、また、未定義の引用を検出することは、本願発明でいう「定義の有無を検査する」ことに相当する。
　引用例１記載の発明と上記引用例２に記載された公知の技術とは、いずれもコンパイラによる処理であって、プログラムを検査する手段を組み込むものとして共通である。そして、引用例１記載の発明では、検査手段（比較オブジェクト）によって検査が行われているから、引用例１記載の発明において、検査内容を充実させるために該公知の技術を適用し、繰り返し処理で使用される要素である配列もしくは変数が代入文の右辺に存在したり、もしくはＷＲＩＴＥ文の出力並びに使用された場合に、その定義の有無を検査する機能を、検査手段に追加することに格別の困難性は認められない。
　よって、相違点３も格別のものでない。
　
　上記で検討したごとく、相違点１−３はいずれも格別なものではなく、そして、本願発明の構成によってもたらされる効果も、当業者であれば容易に予測できる程度のものであって、格別なものとは認められない。
　
　なお、請求人は平成１８年７月２６日付け意見書において、「本願発明は、繰り返しテーブルを作成して、インライン展開を行うことなく、検査を行うため構成が簡単になります（翻訳部（コンパイラ）で作成する構成が簡単になります）。」といった主張を行っている。しかしながら、繰り返しテーブルを作成することと、インライン展開を行わないこととは、直接関係のない事項であり、インライン展開された検査手段の中で繰り返しテーブルを参照するといったことも当然考えられる。そして、本願特許請求の範囲の記載に係る発明では、このような態様を排除するものではない。
　したがって、請求人の、本願発明は、「インライン展開を行うことなく、検査を行う」といった主張は、特許請求の範囲の記載に基づくものではないので採用できない。
　
　よって、本願発明は上記引用例１，２に記載された発明および周知技術に基づいて、当業者が容易に発明をすることができたものである。
　
４．特許法第３６条の拒絶理由について
　
４−１．拒絶理由の概要
　当審における平成１８年５月２４日付け拒絶理由通知では、特許法第３６条の拒絶理由について、次のように指摘している。
　
「本件出願は、明細書及び図面の記載が下記の点で不備のため、特許法第３６条第４項並びに第６項第１号及び第２号に規定する要件を満たしていない。
（１）…（略）…
　
（２）一般に「手段」という表現は、何らかの装置構成を指すものと解されるが、本願請求項１において、「検査手段」は、繰り返し処理のループの外に組み込まれる、すなわち、プログラムに組み込まれるものとなっている。してみると、本願請求項１における、各「手段」とは具体的にどのようなものであるのかが不明である。
　
（３）…（略）…
　
（４）明細書【００５３】段落の、「Ｓ８　意味解析部はＤＯループの外に範囲ＳＵＢＣＨＫ，（および／もしくは範囲ＵＮＤＥＦ）の呼び出し命令を挿入する。」という記載について、ここでいう「ＤＯループの外」とは、図面【図５】の中間テキストにおける範囲ＳＵＢＣＨＫの挿入位置から見て、ＤＯループの直前と解される。しかしながら、範囲ＵＮＤＥＦについて、例えば、
１　ＤＩＭＥＮＳＩＯＮ　Ａ（１：１０）
２　ＤＯ　Ｉ＝１，１０
３　Ａ（Ｉ）＝０
４　Ａ（Ｉ）＝Ａ（Ｉ）＋Ｉ
５　ＣＯＮＴＩＮＵＥ
のように、ＤＯループの中（行番号３）で配列変数の定義を行っている場合、範囲ＵＮＤＥＦをＤＯループの直前に挿入するのでは、行番号４の代入文の右辺に現れるＡ（Ｉ）について、定義されているにもかかわらず未定義と判断され、ＵＮＤＥＦチェックが正しく行われないものと考えられる。従って、本願発明は適切な課題解決がなされているものとは認められない。」
　
　なお、上記拒絶理由では、適用条文として、「特許法第３６条第６項第１号及び第２号」が挙げられているが、本願は、平成７年１月２０日の出願であるから、「特許法第３６条第５項第１号、第２号」の明らかな誤記である。
　
４−２．当審の判断
　以下、上記拒絶理由において指摘した事項（２），（４）が解消されたか否か検討する。
　
［（２）について］
　請求人は平成１８年７月２６日付け意見書において、「検査手段は、段落番号００２２、００２６に記載されているように、配列の定義範囲検査等の繰り返し処理の開始値、終了値及び増分値で検査する処理を指します」と主張する。
　しかしながら、例えば請求人が引用する本願明細書【００２２】段落では、「２１は検査手段であって，配列の定義範囲検査等の繰り返し処理の開始値，終了値及び増分値で検査できるものである（例えば，ＳＵＢＣＨＫ）。あるいは，初期値（デフォルト値）と比較することにより検査できる未定義配列要素や変数チェック等（例えば，ＵＮＤＥＦ）を行うものである。」と記載されており、【００２６】段落でも、「検査手段２１は，繰り返し情報保持部２３に含まれる繰り返し処理の開始値と終了値を参照し，実行処理において生成される配列の範囲が定義された範囲内にあるかないかを判定する，また，未定義変数の検査も変数定義の初期値（変数のデフォルト値）の変更の有無に基づいて判定する。」と記載されており、いずれも、検査手段が処理をおこなう主体として記載されており、請求人が主張するような「処理」そのものとして解釈することはできない。
　よって、請求人の上記主張は採用できず、本願請求項１における「検査手段」とは具体的にどのようなものであるのかが依然として不明である。
　
［（４）について］
　請求人は平成１８年７月２６日付け意見書において、「この指摘の点は、本願の明細書中には説明されていません。このような場合、実際には、範囲ＵＮＤＥＦではなく、要素ＵＮＤＥＦ（ＤＯループの中に作成するもの）で行っています。なお、今回の手続補正書で、繰り返し処理のループの外に組み込む場合を『変数だけ又は定数だけで構成された単純式』と補正して明確にしました。」と主張する。
　しかしながら、この説明では、どのような判断によって、「範囲ＵＮＤＥＦではなく、要素ＵＮＤＥＦ（ＤＯループの中に作成するもの）で行」うのか全く不明であり、本願発明の構成ではＵＮＤＥＦチェックが正しく行われず、適切な課題解決がなされていないという点は解消していない。
　また、「繰り返し処理のループの外に組み込む場合を『変数だけ又は定数だけで構成された単純式』と補正し」た点についても、拒絶理由で指摘したＡ（Ｉ）は、添字式が変数だけで構成された単純式であることから、拒絶理由で指摘したとおり、正しくないＵＮＤＥＦチェックが行われると解され、適切な課題解決がなされていないという点は解消していない。
　これらのことから、本願明細書の発明の詳細な説明の記載では適切な課題解決がなされておらず、発明の目的及び効果が依然として不明である。
　
　よって、本願明細書の発明の詳細な説明には、その発明の属する技術の分野における通常の知識を有する者が容易にその実施をすることができる程度に、その発明の目的、構成及び効果が依然として記載されていないから、特許法第３６条第４項に規定する要件を満たしていない。
　また、本願の特許請求の範囲の記載は、請求項１に係る発明について、依然として不明確であるから、特許法第３６条第５項第２号に規定する要件を満たしていない。
　
５．むすび
　以上の通りであるから、本願発明は、引用例１及び２に記載された発明に基づいて当業者が容易に発明をすることができたものであるから、特許法第２９条第２項の規定により特許を受けることが出来ない。
　また、本願は、特許法第３６条第４項及び第５項第２号に規定する要件を満たしていない。
　よって、結論のとおり審決する。