【事件の表示】
　平成　７年特許願第　４０１８８号「レジスタ割付け方法」拒絶査定に対する審判事件［平成　８年　９月１３日出願公開、特開平　８−２３４９９７］について、次のとおり審決する。
【結　論】
　本件審判の請求は、成り立たない。
【理　由】
 １．手続の経緯・本願発明
　本願は、平成７年２月２８日の出願であって、その請求項１，２に係る発明は、明細書及び図面の記載からみて、特許請求の範囲の請求項１，２に記載されたとおりのものであるところ、その請求項１に係る発明は次のとおりである。
    
 「アセンブリ言語により記述されたアセンブリソースを入力し、当該アセンブリソースの構文解析結果を基にマイクロコンピュータのアーキテクチャに準じたコードを生成して、所定のオブジェクトファイルを出力するアセンブリ言語処理方法において、
　所定のソースプログラムにハードウェアレジスタを割付けて前記アセンブリソースを作成する際に、前記ソースプログラムに記述されている仮想レジスタを、対応するハードウェアレジスタに置換える手法を用いて、当該ソースプログラムに対するハードウェアレジスタの割付け処理を行うことを特徴とするレジスタ割付け方法。」
　
　なお、平成１１年４月２６日付け手続補正書は、同日付けで却下された。
　
 ２．引用例
  これに対して、原査定の拒絶の理由に引用した特開平６−９５８６２号公報（以下、引用例１という。）には、以下の記載が図面とともに記載されている。
  （１）「【従来の技術】集積回路技術の向上により、複数の演算リソースを持ち、それらを並列に動作させ高速な処理を達成するプロセッサが実現可能になった。例えば、通称スーパコンピュータと呼ばれるベクトル・プロセッサは高度なパイプライン処理を行うプロセッサである。この様なプロセッサは機械語レベルの命令の実行順序によりパイプラインの動作効率が変化する。そのため、より高速な処理を実現するためには命令順序を最適化する必要がある。（中略）
　一方、集積回路技術の向上により、汎用の高性能プロセッサだけでなく、専用の高速プロセッサも実現可能になった。例えば、汎用プロセッサにアクセラレータと呼ばれる特殊計算用の回路を付加した構成は比較的安価に高速処理を実現できるため幾つかの応用分野で実現されている。（中略）
　しかし、このような専用ハードウェアは高速である反面、利用者が限られるため、多くの場合、専用のコンパイラ等のソフトウェアの開発環境の整備が為され無い。そのため、プログラム開発はアセンブラで直接機械語命令を記述し、命令順序の最適化も人手で行う必要があった。
　【発明が解決しようとする課題】
　機械語レベルの命令列の順序の最適化を手作業で行う場合、手計算で命令実行時間を推定するか、プロセッサの動作を模擬するシミュレータで命令実行時間を測定するか、あるいは実機で命令実行時間を測定し、試行錯誤により命令実行順序を決定していた。しかし、この作業には多くの時間を必要とする。」（公報第３頁第３欄第６行〜第４２行）
　
 （２）「本発明による命令列最適化支援装置は、プロセッサの構成に応じて計算が必要な「レジスタ割当て」、「リソース占有時間の計算」、「不当命令順序の検出」の各作業を自動的に行う。そのため最適化に伴う利用者の作業量が大幅に減少する。また、「レジスタ割当て」により仮想的なレジスタ名で記述した命令列を入力とすることができる。」（公報第４頁第５欄第１８行〜第２４行）
　
 （３）「レジスタ割当手段１０５は図６の命令列で用いている仮想的なレジスタ名称に実際のレジスタ名称を割り当てる処理を行う。」（公報第５頁第７欄第４６行〜第４８行）
　
（４）「図１３の例では実行時間が１１となり、図１０の実行時間の１３に対して改善されていることが判る。利用者は更に改善する部分があれば前記した操作と同様の操作を繰返し、より良い命令列を求める。十分な命令列が得られた場合は命令列出力ファイル１２７に記録される命令列を最終結果とする。このファイルはアセンブラのソースプログラムとなる。最終的に得られる命令列出力ファイル１２７の例を図１４に示す。この命令列ではすべてのレジスタが実際のレジスタ名称で記述される。」（公報第６頁第１０欄第１０行〜第１９行）
　
 （５）「本発明によれば、オペランドのレジスタ記述に実際のレジスタ名称ではなく仮想的なレジスタ名称を用いた命令列の記述から、実際のレジスタ名称いて実行速度が向上するように命令の実行順序を最適化する作業を容易に行うことができるようになる。特に、レジスタの割付け、各リソースの占有時間の計算といった人手での計算が難しい部分は本発明による装置が自動的に行うため、利用者はリソースの占有時間のグラフ表示を見ながら命令の順序の変更の指示のみ装置に与えるだけでよい。」（公報第７頁第１１欄第４６行〜第１２欄第５行）
　　　　　　　　　　　　　　　　　　　　　　　　
　（６）
「【図８】　図６の命令列で用いる仮想的なレジスタ名称に実際のレジスタを割当てる手段を説明する図である。
　【図９】　ファイル出力手段が出力するファイルの例を示す図である。」（公報第７頁第１２欄第２７行〜第３０行）
　
　引用例１は「命令列最適化支援装置」となっているが、支援の中にはレジスタ割付の手法が記載されているから、以上の記載から引用例１には次の発明が記載されている。
　
　アセンブリ言語により記述された命令列に対し、レジスタ割当てを行いアセンブラのソースプログラムを作成するものにおいて、　
　前記命令列に記述されている仮想的なレジスタ名称に、実際のレジスタ名称を割当てる手法を用いて、前記命令列に対する実際のレジスタの割付け処理を行うことを特徴とするレジスタ割付け方法
　
３．対比・判断
　本願の請求項１に係る発明（以下、前者という。）と引用例１に記載された発明（以下、後者という。）とを対比すると、
　
　前者の「ソースプログラム」「アセンブリソース」「仮想レジスタ」「ハードウエアレジスタ」は、それぞれ、後者の「命令列」「アセンブラのソースプログラム」「仮想的なレジスタ名称」「実際のレジスタ名称」に相当する。
また前者の「仮想レジスタをハードウエアレジスタに置換える」ことと、後者の「仮想的なレジスタ名称に実際のレジスタ名称を割当てる」ことは同等のことであり、後者でのレジスタ割付けはアセンブリソースを作成する際に行われるものであるから、
両者は、
　
　アセンブリ言語により記述されたソースプログラムに対し、レジスタ割当てを行いアセンブリソースを作成する際に、　
　前記ソースプログラムに記述されている仮想レジスタに、ハードウエアレジスタを割当てる手法を用いて、前記ソースプログラムに対するハードウエアレジスタの割付け処理を行うことを特徴とするレジスタ割付け方法
　
である点で一致し、次の点で相違している。
　
（１）前者のものでは、ハードウエアレジスタの割付けを行われたアセンブリソースに対し、構文解析結果を基にマイクロコンピュータのアーキテクチャに準じたコードを作成して所定のオブジェクトファイルに出力するものであるのに対し、後者では、レジスタ割付けを行ったアセンブリソースからオブジェクトプログラムを作成する点が記載されていない点、
　
４．当審の判断
相違点１について
　アセンブリ言語により記述されたアセンブリソースは、一般にそのままの形で実行することはできず、アセンブラと呼ばれるトランスレータにより機械語であるオブジェクトプログラムに変換する必要がある。また、機械語はプログラムを実行する計算機のアーキテクチャに準じたものであるから、アセンブラにより翻訳されたオブジェクトプログラムは対象とする計算機のアーキテクチャに準じたコードとなっている。
　後者のものでは、レジスタ割付けを行ったアセンブリソースを作成する過程までしか記載されていないが、アセンブリソースからアセンブラによってオブジェクトファイルを作成することは、通常のプログラム実行（インタプリタ方式を除く）のためには当然に必要となるものであるから、相違点１は格別のものではない。
　
５．むすび
　以上のとおりであるから、本願の請求項１に係る発明は、上記引用例に記載された発明および周知の事項に基づいて、当業者が容易に発明をすることができたものであるから、特許法第２９条第２項の規定により特許を受けることができない。
　
　よって、結論のとおり審決する。