【事件の表示】
　特願２０１１−５２２９９９「ソフトウェア・アプリケーションの性能向上」拒絶査定不服審判事件〔平成２２年　２月１８日国際公開，ＷＯ２０１０／０１９２５４，平成２３年１２月２２日国内公表，特表２０１１−５３０７６８〕について，次のとおり審決する。
【結　論】
　本件審判の請求は，成り立たない。
【理　由】
　
第１　手続の経緯
　
　本件審判請求に係る出願（以下，「本願」という。）は，２００９年８月１３日（パリ条約による優先権主張外国庁受理２００８年８月１３日（以下，「優先日」という。），米国）を国際出願日とする出願であって，その手続の経緯は以下のとおりである。
　
　　平成２３年　２月１０日　　　：国内書面の提出
　　平成２３年　４月１１日　　　：翻訳文の提出
　　平成２４年　８月１３日　　　：出願審査請求書，手続補正書の提出
　　平成２５年１２月１０日付け　：拒絶理由の通知
　　平成２６年　３月１７日　　　：意見書，手続補正書の提出
　　平成２６年　８月２９日付け　：拒絶査定　
　　平成２７年　１月　５日　　　：審判請求書，手続補正書の提出
　　平成２７年　３月１３日　　　：前置報告　
　
　
第２　平成２７年１月５日付けの手続補正についての補正却下の決定　 
　
 ［補正却下の決定の結論］ 
　
　平成２７年１月５日付けの手続補正を却下する。
　
 ［理由］ 
　
 １　補正の内容
　
　平成２７年１月５日付けの手続補正（以下，「本件補正」という。）の内容は，平成２６年３月１７日付けの手続補正により補正された特許請求の範囲の請求項１乃至１７の記載
　
「　　【請求項１】
　入力コードから並列実行可能なコードを生成するシステムであって，
　複数のプロセッサであって，
　　前記入力コードの静的解析であって，ランタイム情報のインスツルメンテーションを容易にするインスツルメンテーションコードを挿入する処理が含まれる静的解析により，前記入力コードのデータフローおよび制御フローのアスペクトを決定し，
　　前記入力コードの動的解析であって，前記インスツルメンテーションコードを実行する処理が含まれる動的解析により，前記入力コードのデータフローおよび制御フローの追加のアスペクトを決定し，
　　前記静的解析によって決定された前記入力コードのデータフローおよび制御フローの前記アスペクトと，前記動的解析によって決定された前記入力コードのデータフローおよび制御フローの前記追加のアスペクトと，の少なくとも一つに基づいて，前記入力コードの中間表現を生成し，
　　前記中間表現を処理して，並列実行が可能な前記中間表現の部分を決定し，
　　前記中間表現と前記入力コードとに基づいて，前記複数のプロセッサによって実行可能である並列実行可能なコードを生成する，
　ように構成される複数のプロセッサと，
　前記複数のプロセッサに接続される１つ以上のメモリであって，前記複数のプロセッサに命令を与えるように構成される１つ以上のメモリと，
　を備えるシステム。
　　【請求項２】
　請求項１に記載のシステムであって，
　前記入力コードがバイナリコードである，システム。
　　【請求項３】
　請求項１または２に記載のシステムであって，
　前記静的解析には，前記入力コードを逆アセンブルして，前記入力コードを静的に生成される中間表現に変換する処理が含まれる，システム。
　　【請求項４】
　請求項１ないし３のいずれかに記載のシステムであって，
　前記静的解析には，並列実行が可能な静的中間表現の部分を特定する処理が含まれる，
システム。
　　【請求項５】
　請求項１ないし４のいずれかに記載のシステムであって，
　前記動的解析には，プロファイル情報を決定する処理が含まれる，システム。
　　【請求項６】
　請求項１ないし５のいずれかに記載のシステムであって，
　前記動的解析には，ホットスポット情報を決定する処理が含まれる，システム。
　　【請求項７】
　請求項１ないし６のいずれかに記載のシステムであって，
　前記動的解析には，分岐ターゲット情報を決定する処理が含まれる，システム。
　　【請求項８】
　請求項１ないし７のいずれかに記載のシステムであって，
　前記動的解析には，メモリ・エイリアス情報を決定する処理が含まれる，システム。
　　【請求項９】
　請求項１ないし８のいずれかに記載のシステムであって，
　前記動的解析には，動的ループ回数情報を決定する処理が含まれる，システム。
　　【請求項１０】
　請求項１ないし９のいずれかに記載のシステムであって，
　前記プロセッサは，さらに，
　並列部分を含むように前記中間表現を修正するように構成され，
　修正された中間表現に基づいてアクセラレーション・コードを生成することを含む，システム。
　　【請求項１１】
　請求項１ないし１０のいずれかに記載のシステムであって，
　並列実行が可能な前記中間表現の部分が投機的に決定される，システム。
　　【請求項１２】
　請求項１ないし１１のいずれかに記載のシステムであって，
　並列実行が可能な前記中間表現の部分が投機的に決定され，検証コードが挿入される，
システム。
　　【請求項１３】
　入力コードから並列実行可能なコードを生成する方法であって，
　バイナリコードを含む前記入力コードの静的解析であって，ランタイム情報のインスツルメンテーションを容易にするインスツルメンテーションコードを挿入する処理が含まれる静的解析により，前記入力コードのデータフローおよび制御フローのアスペクトを決定する工程と，
　前記入力コードの動的解析であって，前記インスツルメンテーションコードを実行する処理が含まれる動的解析により，前記入力コードのデータフローおよび制御フローの追加のアスペクトを決定する工程と，
　前記静的解析によって決定された前記入力コードのデータフローおよび制御フローの前記アスペクトと，前記動的解析によって決定された前記入力コードのデータフローおよび制御フローの前記追加のアスペクトと，の少なくとも一つに基づいて，前記入力コードの中間表現を生成する工程と，
　前記中間表現を処理して，並列実行が可能な前記中間表現の部分を決定する工程と，
　前記中間表現と前記入力コードとに基づいて，複数のプロセッサによって実行可能である並列実行可能なコードを生成する工程と，
を備える方法。
　　【請求項１４】
　コンピュータに入力コードから並列実行可能なコードを生成させるためのコンピュータプログラムであって，
　複数のコンピュータ命令であって，
　　バイナリコードを含む前記入力コードの静的解析であって，ランタイム情報のインスツルメンテーションを容易にするインスツルメンテーションコードを挿入する処理が含まれる静的解析により，前記入力コードのデータフローおよび制御フローのアスペクトを決定するコンピュータ命令と，
　　前記入力コードの動的解析であって，前記インスツルメンテーションコードを実行する処理が含まれる動的解析により，前記入力コードのデータフローおよび制御フローの追加のアスペクトを決定するコンピュータ命令と，
　　前記静的解析によって決定された前記入力コードのデータフローおよび制御フローの前記アスペクトと，前記動的解析によって決定された前記入力コードのデータフローおよび制御フローの前記追加のアスペクトと，の少なくとも一つに基づいて，前記入力コードの中間表現を生成するコンピュータ命令と，
　　前記中間表現を処理して，並列実行が可能な前記中間表現の部分を決定するコンピュータ命令と，
　前記中間表現と前記入力コードとに基づいて，複数のプロセッサによって実行可能である並列実行可能なコードを生成するコンピュータ命令と，
を備える，コンピュータプログラム。
　　【請求項１５】
　入力コードから並列実行可能なコードを生成するシステムであって，
　複数のプロセッサであって，
　　バイナリコードを含む前記入力コードの静的解析であって，ランタイム情報のインスツルメンテーションを容易にするインスツルメンテーションコードを挿入する処理が含まれる静的解析により，前記入力コードのデータフローおよび制御フローのアスペクトを決定し，
　　データフローおよび制御フローの前記アスペクトの少なくとも一つに基づいて，前記入力コードの中間表現を生成し，
　　前記中間表現を処理して，前記中間表現と前記入力コードとに基づいて，前記複数のプロセッサによって実行可能である並列実行可能なコードを生成し，
　　前記並列実行可能なコードを格納し，
　　前記入力コードの実行要求に応じて，前記格納された並列実行可能なコードを実行する，
　ように構成される複数のプロセッサと，
　前記複数のプロセッサに接続される１つ以上のメモリであって，前記複数のプロセッサに命令を与えるように構成される１つ以上のメモリと，
　を備えるシステム。
　　【請求項１６】
　入力コードから並列実行可能なコードを生成する方法であって，
　バイナリコードを含む前記入力コードの静的解析であって，ランタイム情報のインスツルメンテーションを容易にするインスツルメンテーションコードを挿入する処理が含まれる静的解析により，前記入力コードのデータフローおよび制御フローのアスペクトを決定する工程と，
　データフローおよび制御フローの前記アスペクトの少なくとも一つに基づいて，前記入力コードの中間表現を生成する工程と，
　前記中間表現を処理して，前記中間表現と前記入力コードとに基づいて，複数のプロセッサによって実行可能である並列実行可能なコードを生成する工程と，
　前記並列実行可能なコードを格納する工程と，
　前記入力コードの実行要求に応じて，前記格納された並列実行可能なコードを前記複数のプロセッサによって実行する工程と，
　を備える方法。
　　【請求項１７】
　コンピュータに入力コードから並列実行可能なコードを生成させるためのコンピュータプログラムであって，
　複数のコンピュータ命令であって，
　　バイナリコードを含む前記入力コードの静的解析であって，ランタイム情報のインスツルメンテーションを容易にするインスツルメンテーションコードを挿入する処理が含まれる静的解析により，前記入力コードのデータフローおよび制御フローのアスペクトを決定するコンピュータ命令と，
　　データフローおよび制御フローの前記アスペクトの少なくとも一つに基づいて，前記入力コードの中間表現を生成するコンピュータ命令と，
　　前記中間表現を処理して，前記中間表現と前記入力コードとに基づいて，複数のプロセッサによって実行可能である並列実行可能なコードを生成するコンピュータ命令と，
　　前記並列実行可能なコードを格納するコンピュータ命令と，
　　前記入力コードの実行要求に応じて，前記格納された並列実行可能なコードを前記複数のプロセッサによって実行するコンピュータ命令と，を備える，
　コンピュータプログラム。」（以下，この特許請求の範囲に記載された請求項を「補正前の請求項」という。）
　
を，
　
「　　【請求項１】
　入力コードから並列実行可能なコードを生成するシステムであって，
　複数のプロセッサであって，
　　前記入力コードの静的解析であって，ランタイム情報のインスツルメンテーションを容易にするインスツルメンテーションコードを挿入する処理が含まれる静的解析により，前記入力コードのデータフローおよび制御フローのアスペクトを決定し，
　　前記入力コードの動的解析であって，前記インスツルメンテーションコードを実行する処理が含まれ
，前記インスツルメンテーションコードが実行される間に行われるランタイム解析の実行が含まれ
　　前記静的解析によって決定された前記入力コードのデータフローおよび制御フローの前記アスペクトと，前記動的解析によって決定された前記入力コードのデータフローおよび制御フローの前記追加のアスペクトと
，
　　前記中間表現を処理して，並列実行が可能な前記中間表現の部分を決定し，
　　前記中間表現と前記入力コードとに基づいて，前記複数のプロセッサによって実行可能である並列実行可能なコードを生成する，
　ように構成される複数のプロセッサと，
　前記複数のプロセッサに接続される１つ以上のメモリであって，前記複数のプロセッサに命令を与えるように構成される１つ以上のメモリと，
　を備えるシステム。
　　【請求項２】
　請求項１に記載のシステムであって，
　前記入力コードがバイナリコードである，システム。
　　【請求項３】
　請求項１または２に記載のシステムであって，
　前記静的解析には，前記入力コードを逆アセンブルして，前記入力コードを静的に生成される中間表現に変換する処理が含まれる，システム。
　　【請求項４】
　請求項１ないし３のいずれかに記載のシステムであって，
　前記静的解析には，並列実行が可能な静的中間表現の部分を特定する処理が含まれる，
システム。
　　【請求項５】
　請求項１ないし４のいずれかに記載のシステムであって，
　前記動的解析には，プロファイル情報を決定する処理が含まれる，システム。
　　【請求項６】
　請求項１ないし５のいずれかに記載のシステムであって，
　前記動的解析には，ホットスポット情報を決定する処理が含まれる，システム。
　　【請求項７】
　請求項１ないし６のいずれかに記載のシステムであって，
　前記動的解析には，分岐ターゲット情報を決定する処理が含まれる，システム。
　　【請求項８】
　請求項１ないし７のいずれかに記載のシステムであって，
　前記動的解析には，メモリ・エイリアス情報を決定する処理が含まれる，システム。
　　【請求項９】
　請求項１ないし８のいずれかに記載のシステムであって，
　前記動的解析には，動的ループ回数情報を決定する処理が含まれる，システム。
　　【請求項１０】
　請求項１ないし９のいずれかに記載のシステムであって，
　前記プロセッサは，さらに，
　並列部分を含むように前記中間表現を修正するように構成され，
　修正された中間表現に基づいてアクセラレーション・コードを生成することを含む，システム。
　　【請求項１１】
　請求項１ないし１０のいずれかに記載のシステムであって，
　並列実行が可能な前記中間表現の部分が投機的に決定される，システム。
　　【請求項１２】
　請求項１ないし１１のいずれかに記載のシステムであって，
　並列実行が可能な前記中間表現の部分が投機的に決定され，検証コードが挿入される，
システム。
　　【請求項１３】
　入力コードから並列実行可能なコードを生成する方法であって，
　バイナリコードを含む前記入力コードの静的解析であって，ランタイム情報のインスツルメンテーションを容易にするインスツルメンテーションコードを挿入する処理が含まれる静的解析により，前記入力コードのデータフローおよび制御フローのアスペクトを決定する工程と，
　前記入力コードの動的解析であって，前記インスツルメンテーションコードを実行する処理が含まれ
，前記インスツルメンテーションコードが実行される間に行われるランタイム解析の実行が含まれる
　前記静的解析によって決定された前記入力コードのデータフローおよび制御フローの前記アスペクトと，前記動的解析によって決定された前記入力コードのデータフローおよび制御フローの前記追加のアスペクトと
，
　前記中間表現を処理して，並列実行が可能な前記中間表現の部分を決定する工程と，
　前記中間表現と前記入力コードとに基づいて，複数のプロセッサによって実行可能である並列実行可能なコードを生成する工程と，
を備える方法。
　　【請求項１４】
　コンピュータに入力コードから並列実行可能なコードを生成させるためのコンピュータプログラムであって，
　複数のコンピュータ命令であって，
　　バイナリコードを含む前記入力コードの静的解析であって，ランタイム情報のインスツルメンテーションを容易にするインスツルメンテーションコードを挿入する処理が含まれる静的解析により，前記入力コードのデータフローおよび制御フローのアスペクトを決定するコンピュータ命令と，
　　前記入力コードの動的解析であって，前記インスツルメンテーションコードを実行する処理が含まれ
，前記インスツルメンテーションコードが実行される間に行われるランタイム解析の実行が含まれ
　　前記静的解析によって決定された前記入力コードのデータフローおよび制御フローの前記アスペクトと，前記動的解析によって決定された前記入力コードのデータフローおよび制御フローの前記追加のアスペクトと
，
　　前記中間表現を処理して，並列実行が可能な前記中間表現の部分を決定するコンピュータ命令と，
　前記中間表現と前記入力コードとに基づいて，複数のプロセッサによって実行可能である並列実行可能なコードを生成するコンピュータ命令と，
を備える，コンピュータプログラム。」（当審注：下線は，出願人が付与したものである。以下，この特許請求の範囲に記載された請求項を「補正後の請求項」という。）　
　
に補正するものである。
　
　そして，本件補正は，願書に最初に添付した明細書，特許請求の範囲又は図面に記載した事項の範囲内においてなされており，特許法第１７条の２第３項の規定に適合している。
　また，本件補正は，シフト補正をしようとするものではなく，特許法第１７条の２第４項の規定に適合している。　
　
　
２　目的要件
　
　本件補正は，上記「第２　平成２７年１月５日付けの手続補正についての補正却下の決定」「１　補正の内容」のとおり本件審判の請求と同時にする補正であり，特許請求の範囲について補正をしようとするものであるから，本件補正が，特許法第１７条の２第５項の規定を満たすものであるか否か，すなわち，本件補正が，特許法第１７条の２第５項に規定する請求項の削除，特許請求の範囲の減縮（特許法第３６条第５項の規定により請求項に記載した発明を特定するために必要な事項を限定するものであって，その補正前の当該請求項に記載された発明とその補正後の当該請求項に記載される発明の産業上の利用分野及び解決しようとする課題が同一であるものに限る），誤記の訂正，或いは，明りょうでない記載の釈明（拒絶理由通知に係る拒絶の理由に示す事項についてするものに限る）の何れかを目的としたものであるかについて，以下に検討する。　
　
（１）補正前の請求項と，補正後の請求項とを比較すると，補正前の請求項２乃至１２については補正されず，補正後の請求項１，１３，１４はそれぞれ，補正前の請求項１，１３，１４に対応することは明らかである。
　
（２）本件補正は，下記の補正事項１乃至７よりなるものである。
　
＜補正事項１＞　
　補正前の請求項１の
「前記入力コードの動的解析であって，前記インスツルメンテーションコードを実行する処理が含まれる動的解析により，前記入力コードのデータフローおよび制御フローの追加のアスペクトを決定し，」との記載を，
　補正後の請求項１の
「前記入力コードの動的解析であって，前記インスツルメンテーションコードを実行する処理が含まれ
，前記インスツルメンテーションコードが実行される間に行われるランタイム解析の実行が含まれ
　
＜補正事項２＞　
　補正前の請求項１の
「前記静的解析によって決定された前記入力コードのデータフローおよび制御フローの前記アスペクトと，前記動的解析によって決定された前記入力コードのデータフローおよび制御フローの前記追加のアスペクトと，の少なくとも一つに基づいて，前記入力コードの中間表現を生成し，」との記載を，
　補正後の請求項１の
「前記静的解析によって決定された前記入力コードのデータフローおよび制御フローの前記アスペクトと，前記動的解析によって決定された前記入力コードのデータフローおよび制御フローの前記追加のアスペクトと
，
　
＜補正事項３＞
　上記＜補正事項１＞と同様に，補正前の請求項１３の記載を補正後の請求項１３の記載に変更する補正。
　
＜補正事項４＞
　上記＜補正事項２＞と同様に，補正前の請求項１３の記載を補正後の請求項１３の記載に変更する補正。
　
＜補正事項５＞
　上記＜補正事項１＞と同様に，補正前の請求項１４の記載を補正後の請求項１４の記載に変更する補正。
　
＜補正事項６＞
　上記＜補正事項２＞と同様に，補正前の請求項１４の記載を補正後の請求項１４の記載に変更する補正。
　
＜補正事項７＞
　補正前の請求項１５乃至１７を削除する補正。
　
（３）補正事項１，３，５について
　
　補正前の発明特定事項である「前記入力コードの動的解析であって，前記インスツルメンテーションコードを実行する処理が含まれる動的解析」との記載を，補正後の請求項の「前記入力コードの動的解析であって，前記インスツルメンテーションコードを実行する処理が含まれ
，前記インスツルメンテーションコードが実行される間に行われるランタイム解析の実行が含まれ
　
（４）補正事項２，４，６について
　
　補正前の請求項の「前記静的解析によって決定された前記入力コードのデータフローおよび制御フローの前記アスペクトと，前記動的解析によって決定された前記入力コードのデータフローおよび制御フローの前記追加のアスペクトと，の少なくとも一つに基づいて，前記入力コードの中間表現を生成し，」との記載を，補正後の請求項の「前記静的解析によって決定された前記入力コードのデータフローおよび制御フローの前記アスペクトと，前記動的解析によって決定された前記入力コードのデータフローおよび制御フローの前記追加のアスペクトと
，
　また，補正前の請求項の「の少なくとも一つに基づいて，」を削除することは，実質的に発明特定事項の限定を目的とするものであり，本件補正によっても，補正前の請求項に記載された発明とその補正後の請求項に記載される発明の産業上の利用分野及び解決しようとする課題は同一であることは明らかである。
　
（５）したがって，上記補正事項１乃至６は特許法第１７条の２第５項第２号に掲げる特許請求の範囲の減縮を目的とするものであり，上記補正事項２，４，６は特許法第１７条の２第５項第４号に掲げる明りょうでない記載の釈明（拒絶理由通知に係る拒絶の理由に示す事項についてするものに限る）をも目的とするものであり，また，上記補正事項７は特許法第１７条の２第５項第１号に掲げる請求項の削除を目的とするものであることから，本件補正は，特許法第１７条の２第５項の規定に適合するものである。
　
　
３　独立特許要件
　
　以上のように，本件補正は，特許法第１７条の２第５項第２号に掲げる特許請求の範囲の減縮（限定的減縮）を目的とする上記補正事項１乃至６を含むものである。そこで，限定的減縮を目的として補正された補正後の請求項１に記載された発明（以下，「本件補正発明」という。）が特許出願の際独立して特許を受けることができるものであるか（特許法第１７条の２第６項において準用する同法第１２６条第７項の規定に適合するか）以下に検討する。　
　
（１）本件補正発明
　
　本件補正発明は，上記平成２７年１月５日付けの手続補正書により補正された特許請求の範囲，明細書及び図面の記載からみて，その特許請求の範囲の請求項１に記載された以下のとおりのものと認める。　
　
「　入力コードから並列実行可能なコードを生成するシステムであって，
　複数のプロセッサであって，
　　前記入力コードの静的解析であって，ランタイム情報のインスツルメンテーションを容易にするインスツルメンテーションコードを挿入する処理が含まれる静的解析により，前記入力コードのデータフローおよび制御フローのアスペクトを決定し，
　　前記入力コードの動的解析であって，前記インスツルメンテーションコードを実行する処理が含まれ，前記インスツルメンテーションコードが実行される間に行われるランタイム解析の実行が含まれる動的解析により，前記入力コードのデータフローおよび制御フローの追加のアスペクトを決定し，
　　前記静的解析によって決定された前記入力コードのデータフローおよび制御フローの前記アスペクトと，前記動的解析によって決定された前記入力コードのデータフローおよび制御フローの前記追加のアスペクトと，に基づいて，前記入力コードの中間表現を生成し，
　　前記中間表現を処理して，並列実行が可能な前記中間表現の部分を決定し，
　　前記中間表現と前記入力コードとに基づいて，前記複数のプロセッサによって実行可能である並列実行可能なコードを生成する，
　ように構成される複数のプロセッサと，
　前記複数のプロセッサに接続される１つ以上のメモリであって，前記複数のプロセッサに命令を与えるように構成される１つ以上のメモリと，
　を備えるシステム。」　
　
　
（２）引用例
　
（２−１）引用例１に記載されている技術的事項及び引用発明
　
ア　本願の優先日前に頒布され，原審の拒絶査定の理由である平成２５年１２月１０日付けの拒絶理由通知において引用された，小池汎平，山名早人，山口喜教，“投機的 制御／データ依存グラフと Ｊａｖａ Ｊｏｇ−ｔｉｍｅ Ａｎａｌｙｚｅｒ”，情報処理学会論文誌，日本，社団法人情報処理学会，１９９９年２月１５日，Ｖｏｌ．４０，Ｎｏ．ＳＩＧ１(PRO 2)，ｐｐ．３２−４１（以下，「引用例１」という。）には，以下の技術的事項が記載されている。
　（当審注：下線は，参考のために当審で付与したものである。）
　
Ａ　「２．並列化エミュレーション　
　
並列計算機技術における現在の最大の課題はいうまでもなくソフトウェア開発にある．
　現在の自動並列化コンパイラは，配列の依存解析に基づいてループレベルの並列性を抽出するものがほとんどであり，例えばポインタなどを用いたより複雑な（しかし現実に広く利用されている）プログラムを効率よく並列化する研究はまだ端緒についたばかりである．自動並列化コンパイラの効率的な実現を困難にする主な原因は,静的解析を幅広いプログラムに対して行なうことの困難さにあると思われる．このような現状を打破する一つの鍵は，効果的な動的支援機構の導入ではないだろうか．
…（中略）…　
　
これまでに述べた，並列計算機普及を妨げるソフトウェアギャップの問題の解決に，このエミュレーション技術を応用することを考えてみよう．すなわち
　
既存（逐次）計算機のプログラムを，並列計算機上でエミュレーション実行しつつ速度向上を得る
というものである．これを「並列化エミュレーション」と呼ぶことにしよう．このような技術の開発が可能となれば，これまで述べてきた並列計算機の有効利用にまつわる問題を解決する重要な糸口となることが期待される．
　我々は，Ｊａｖａ仮想マシン６）のエミュレーションを具体的な対象として，並列化エミュレーション実現技術の研究を行なっている．我々の目標は，並列化エミュレーションによってＪａｖａプログラム実行の高速化を目指す実行時並列化インタプリタ／ＪＩＴコンパイラシステムＪａｖａ Ｖｉｒｔｕａｌ Ａｃｃｅｌｅｒａｔｏｒの実現である．」（第３３頁左欄２１行−右欄３０行）　
　
Ｂ　「３．投機的 制御／データ依存グラフ　
　
並列化エミュレーシヨンでは，逐次バイナリプログラムから並列性の自動抽出を試みる．逐次プログラムのモデルとしては，制御フローの飛び込みも飛び出しもない命令の部分列である基本ブロックを単位とし，基本ブロック間に存在する制御依存関係とデータ依存関係をグラフとして表現した制御／データ依存グラフを用いるのが一般的である．このような依存グラフの中から，依存関係が解消している複数の基本ブロックを並列実行することにより，ブロックレベル並列性を利用した並列処理が可能となる．
　図１に並列化の流れを示す．
…（図１略）…
　図１　投機的依存グラフを用いた並列化のあらまし」（第３３頁下から３行−第３４頁左欄１６行）
　
Ｃ　「
まず，分岐先および基本ブロック入カデータ値の予測を行いつつプログラムを試行実行させることによって，依存グラフ上を流れる制御フローとデータ値の両方について，精度の高い予測が可能かどうかの測定を行なう．次に，このようにして得られた予測率によって依存関係を表わす各アークを重み付けする．最後に，予測率が十分に高く，予測が容易とみなせるアークを「予測・確認ノード」と呼ばれる特殊なノードを含むアークに置き換える．できあがったグラフが投機的制御／データ依存グラフである．
　
Ｄ　「
投機的制御／データ依存グラフは，従来の依存グラフを用いた逐次プログラムのモデル化に新たな視点を与えるものであることに注意してほしい．
いいかえると，アークを流れるデータ値ないし制御フローが予測困難なアークほど，多くの情報量が流れているアークと見なせ，プログラムの計算構造に対して情報圧縮を行なうことによって並列性の抽出を行なっているとみなすことができる．
　
Ｅ　「５．Ｊａｖａ Ｊｏｇ−ｔｉｍｅ Ａｎａｌｙｚｅｒ　
　以上，投機的制御データ依存グラフについて述べ，そこで用いられる予測技術について検討を行なった．
上記モデルに基づくＪａｖａプログラム並列化の実験を行なうために，プログラム動特性解析ツールＪａｖａ Ｊｏｇ−ｔｉｍｅ Ａｎａｌｙｚｅｒを開発した．
　
ＪＪＡの動作は次の通りである．まず，クラスファイルのロード時に，制御依存およびデータ依存についての静的な解析を行なう．プログラムが起動されると，中間コードインタプリタは実行中のプログラムの振る舞いに関する動的な情報の収集を行なう．このために，中間コードインタプリタは，静的解析で得られている情報をもとにして，基本ブロックの境界を認識する基本ブロックトラッキングを行ない，ブロックの境界を通過するたびに，統計情報の収集，データ・分岐予測モジュールの起動，ブロック起動およびメモリアクセスのタイムスタンプの計算などの動的な情報の収集を行なう．
　
Ｆ　「以下で，ＪＪＡの実現に関する詳細を紹介する．　
　５．１　静的解析
　
クラスファイルのロード時に行なう静的解析は以下のようなものである．
　
各メソッドのバイトコード列をまず基本ブロックヘ切り分け，次に個々のブロック毎に入出カレジスタリストおよび入出カスタックトップリストを作成する．これらのうち入カレジスタ／スタックトップが予測の対象として扱われ，リストの各要素毎に，予測モジュールのインスタンスが割り当てられる．
　
次に制御依存解析とデータ依存解析を行なう．
　５．２　基本ブロック境界でのプローブ関数の実行
　
中間コードインタプリタは，プログラム実行時に制御フローが基本ブロックの切れ目を通過するたびに，プローブ関数を呼び出すことにより，様々な動的プログラム解析処理を行なう．
　
基本ブロックの切れ目を通過するたびに，呼び出されるプローブ関数で行なわれる処理は次のようなものである．
 
・　ブロック実行カウントなど基本的な統計の収集
 ・　次に実行する基本ブロックの決定（基本ブロックトラッキング）　
 ・　入カレジスタ値の予測モジュールの起動　
 
・　ブロック起動タイムスタンプの計算
以下でこれらについて説明する．」（第３７頁右欄６行−３５行）　
　
　
イ　ここで，引用例１に記載されている事項を検討する。　
　
（ア）上記Ａの「並列計算機技術における現在の最大の課題はいうまでもなくソフトウェア開発にある．」，「これまでに述べた，並列計算機普及を妨げるソフトウェアギャップの問題の解決に，このエミュレーション技術を応用することを考えてみよう．すなわち　既存（逐次）計算機のプログラムを，並列計算機上でエミュレーション実行しつつ速度向上を得るというものである．これを「並列化エミュレーション」と呼ぶことにしよう．このような技術の開発が可能となれば，これまで述べてきた並列計算機の有効利用にまつわる問題を解決する重要な糸口となることが期待される．」との記載からすると，並列計算機上で「並列化エミュレーション」を実行するシステムが読み取れ，また，上記Ｂの「並列化エミュレーシヨンでは，逐次バイナリプログラムから並列性の自動抽出を試みる．」との記載からすると，「並列化エミュレーション」では，逐次バイナリプログラムから並列性を自動抽出することは明らかであるから，引用例１には，
“逐次バイナリプログラムから並列性を自動抽出する並列化エミュレーションを並列計算機上で実行するシステム”　
が記載されていると解される。
　
（イ）上記Ｂの「並列化エミュレーシヨンでは，逐次バイナリプログラムから並列性の自動抽出を試みる．逐次プログラムのモデルとしては，制御フローの飛び込みも飛び出しもない命令の部分列である基本ブロックを単位とし，基本ブロック間に存在する制御依存関係とデータ依存関係をグラフとして表現した制御／データ依存グラフを用いるのが一般的である．」との記載からすると，「並列化エミュレーシヨン」では，まず，「逐次プログラム」のモデルとして，「制御／データ依存グラフ」を得ることが読み取れる。
　また，上記Ｂの並列化の流れを示す図１の記載，上記Ｆの「クラスファイルのロード時に行なう静的解析は以下のようなものである．各メソッドのバイトコード列をまず基本ブロックヘ切り分け，次に個々のブロック毎に入出カレジスタリストおよび入出カスタックトップリストを作成する．これらのうち入カレジスタ／スタックトップが予測の対象として扱われ，リストの各要素毎に，予測モジュールのインスタンスが割り当てられる．次に制御依存解析とデータ依存解析を行なう．」との記載からすると，制御依存解析とデータ依存解析を含む「静的解析」により，「逐次オブジェクトコード」から「データ依存グラフ」及び「制御依存グラフ」を生成することが読み取れるから，引用例１には，
“逐次オブジェクトコードの静的解析によりデータ依存グラフ及び制御依存グラフを得る”こと
が記載されていると解される。
　
（ウ）上記Ｃの「まず，分岐先および基本ブロック入カデータ値の予測を行いつつプログラムを試行実行させることによって，依存グラフ上を流れる制御フローとデータ値の両方について，精度の高い予測が可能かどうかの測定を行なう．次に，このようにして得られた予測率によって依存関係を表わす各アークを重み付けする．最後に，予測率が十分に高く，予測が容易とみなせるアークを「予測・確認ノード」と呼ばれる特殊なノードを含むアークに置き換える．できあがったグラフが投機的制御／データ依存グラフである．」との記載，上記Ｂの並列化の流れを示す図１の記載からすると，プログラム実行時に「動的解析」を行い，制御／データ依存グラフ上を流れる制御フローとデータ値の両方について，精度の高い予測が可能かどうかの測定を行い，測定された情報を追加して，「投機的制御／データ依存グラフ」を生成することが読み取れる。
　また，「動的解析」の態様としての上記Ｅの「上記モデルに基づくＪａｖａプログラム並列化の実験を行なうために，プログラム動特性解析ツールＪａｖａ Ｊｏｇ−ｔｉｍｅ Ａｎａｌｙｚｅｒを開発した．ＪＪＡの動作は次の通りである．まず，クラスファイルのロード時に，制御依存およびデータ依存についての静的な解析を行なう．プログラムが起動されると，中間コードインタプリタは実行中のプログラムの振る舞いに関する動的な情報の収集を行なう．このために，中間コードインタプリタは，静的解析で得られている情報をもとにして，基本ブロックの境界を認識する基本ブロックトラッキングを行ない，ブロックの境界を通過するたびに，統計情報の収集，データ・分岐予測モジュールの起動，ブロック起動およびメモリアクセスのタイムスタンプの計算などの動的な情報の収集を行なう．」との記載，上記Ｆの「中間コードインタプリタは，プログラム実行時に制御フローが基本ブロックの切れ目を通過するたびに，プローブ関数を呼び出すことにより，様々な動的プログラム解析処理を行なう．」との記載からすると，「動的解析」は，「静的解析」で得られた情報をもとにして，「基本ブロック」単位に切り分けられた「逐次オブジェクトコード」の切れ目を通過するたびに，プローブ関数を呼び出すことにより実行されることが読み取れるから，引用例１には，
“プログラム実行時に，前記静的解析により基本ブロック単位に切り分けられたコードの切れ目を通過する度にプローブ関数を呼び出して動的解析を行い，前記逐次オブジェクトコードの動的解析によって測定された情報を追加することによって投機的制御／データ依存グラフを作成”すること
が記載されていると解される。
　
（エ）上記Ｂの「このような依存グラフの中から，依存関係が解消している複数の基本ブロックを並列実行することにより，ブロックレベル並列性を利用した並列処理が可能となる．」との記載，上記Ｄの「投機的制御／データ依存グラフは，従来の依存グラフを用いた逐次プログラムのモデル化に新たな視点を与えるものであることに注意してほしい．　…（中略）…　いいかえると，アークを流れるデータ値ないし制御フローが予測困難なアークほど，多くの情報量が流れているアークと見なせ，プログラムの計算構造に対して情報圧縮を行なうことによって並列性の抽出を行なっているとみなすことができる．」との記載からすると，「投機的制御／データ依存グラフ」に基づいて逐次プログラムの基本ブロックレベルの並列性を抽出し，並列化を行うことが読み取れるから，引用例１には，
“作成した前記投機的制御／データ依存グラフに基づいてプログラムの基本ブロックレベルの並列化を実現する”こと
が記載されていると解される。
　
ウ　以上，（ア）乃至（エ）で示した事項から，引用例１には，次の発明（以下，「引用発明」という。）が記載されているものと認める。
　
「逐次バイナリプログラムから並列性を自動抽出する並列化エミュレーションを並列計算機上で実行するシステムであって，
　逐次オブジェクトコードの静的解析によりデータ依存グラフ及び制御依存グラフを得るとともに，
　プログラム実行時に，前記静的解析により基本ブロック単位に切り分けられたコードの切れ目を通過する度にプローブ関数を呼び出して動的解析を行い，前記逐次オブジェクトコードの動的解析によって測定された情報を追加することによって投機的制御／データ依存グラフを作成し，
　作成した前記投機的制御／データ依存グラフに基づいてプログラムの基本ブロックレベルの並列化を実現するシステム。」　
　
　
（２−２）引用例２に記載されている技術的事項　
　
ア　本願の優先日前に頒布され，原審の拒絶査定の理由である上記平成２５年１２月１０日付けの拒絶理由通知において引用された，国際公開第２００６／１１１７０５号（２００６年１０月２６日国際公開，以下，「引用例２」という。）には，関連する図面とともに，以下の技術的事項が記載されている。
　（当審注：下線は，参考のために当審で付与したものである。訳には，パテントファミリーである特表２００８−５３７２４５号公報を参照した。）
　
Ｇ　「
In particular, the inventors have developed methods directed at expediting program code conversion, particularly useful in connection with a run-time translator which provides dynamic binary translation of subject program code into target code.
（訳；　【００２０】
　
本発明者らは，特に対象プログラム・コードの目標コードへの動的バイナリ変換を提供するランタイム・トランスレータに関連して特に有用であるプログラム・コード変換をスピードアップすることを目的とする方法を開発した。
　
Ｈ　「
In the preferred embodiments, trees of Intermediate Representation (IR) are generated based on a subject instruction sequence, as part of the process of generating the target code 21 from the original subject program 17. IR trees are abstract representations of the expressions calculated and operations performed by the subject program. Later, the target code 21 is generated based on the IR trees. Collections of IR nodes are actually directed acyclic graphs (DAGs), but are referred to colloquially as trees.
（訳；　【００４０】
　
好ましい諸実施形態では，ＩＲ（中間表現）のツリーが，元の対象プログラム１７から目標コード２１を生成するステップの一環として，対象命令シーケンスに基づいて生成される。ＩＲツリーは，対象プログラムによって計算される式，および実行される演算の抽象表現である。その後に，目標コード２１が，ＩＲツリーに基づいて生成される。ＩＲノードの集合は，実際には，ＤＡＧ（有向非循環グラフ）であるが，口語的には，「ツリー」と呼ばれる。
　
　
（３）参考文献
　
（３−１）参考文献１に記載されている技術的事項
　
　本願の優先日前に頒布された，特開平８−４４５９０号公報（平成８年２月１６日出願公開，以下，「参考文献１」という。）には，関連する図面とともに，以下の技術的事項が記載されている。
　（当審注：下線は，参考のために当審で付与したものである。）
　
Ｊ　「【００１９】
本発明の一実施例においては，インスツルメントされたオブジェクトコードが，プログラム実行の際に実行トレースが生成されるようにコンピュータプロセッサ１２４によって実行される。インスツルメンテーションは，プログラム実行の際に実行トレースが生成されるようにコンピュータソフトウエアが付加ステートメントによって増強されるような公知の方法である。
【００２０】
図４に示されているようなインスツルメントされたオブジェクトコード１４８を生成するために適した一つの方法は以下の通りである。まず，Ｃソースコードが，そのコードにインスツルメンテーションを付加することによって前処理されてインスツルメント済みＣソースコードが生成される。このインスツルメント済みＣソースコードは，その後Ｃコンパイラによってコンパイルされ，インスツルメント済みオブジェクトコードが生成される。インスツルメント済みオブジェクトコードはコンピュータプロセッサ１２４上で実行される。
　
（３−２）参考文献２に記載されている技術的事項
　
　本願の優先日前に頒布された，特開平７−１０５０１５号公報（平成７年４月２１日出願公開，以下，「参考文献２」という。）には，関連する図面とともに，以下の技術的事項が記載されている。
　（当審注：下線は，参考のために当審で付与したものである。）
　
Ｋ　「【００１０】
【課題を解決するための手段】図１は上記目的を達成する本発明のコンパイル方式の原理構成図である。
図において，本発明によるコンパイル方式は，ソースプログラムを解析して中間表現に変換するフロントエンド手段１１と，その中間表現に対して最適化を施して最適化対象の全ての変数を仮想レジスタに変換する第１最適化処理手段１２と，第１最適化処理手段１２にて最適化された中間表現を特定のハードウェアの命令と１対１に対応する中間表現に変換するようにした命令展開手段１３と，この命令展開手段にて展開された中間表現を最適化しながら実レジスタの数を考慮した最適化対象変数の仮想レジスタ変換を行う第２最適化処理手段１４と，この第２最適化処理手段１４にて処理された中間表現に対してハードウェアが持つ実レジスタに割り付ける実レジスタ割り付け手段１５とによって構成されている。
　
　
（４）対比
　
ア　本件補正発明と引用発明とを対比する。
　
（ア）引用発明では，「逐次バイナリプログラム」から並列性を自動抽出するために，「逐次バイナリプログラム」の「逐次オブジェクトコード」を解析することから，「逐次バイナリプログラム」の「逐次オブジェクトコード」から並列可能なコードを生成する「並列化エミュレーション」を実行しているとみることができる。
　そうすると，引用発明の「逐次バイナリプログラムから並列性を自動抽出する並列化エミュレーションを並列計算機上で実行するシステム」は本件補正発明の「入力コードから並列実行可能なコードを生成するシステム」に相当すると言える。
　
（イ）引用発明の「逐次オブジェクトコード」は，並列性を自動抽出するために解析されることから，本件補正発明の「入力コード」に相当すると言える。
　また，引用発明の「データ依存グラフ及び制御依存グラフ」は，引用例１の上記Ｂの「逐次プログラムのモデルとしては，制御フローの飛び込みも飛び出しもない命令の部分列である基本ブロックを単位とし，基本ブロック間に存在する制御依存関係とデータ依存関係をグラフとして表現した制御／データ依存グラフを用いるのが一般的である．」との記載からすると，逐次プログラムの「基本ブロック」を単位とし，「基本ブロック」間に存在する制御依存関係とデータ依存関係とをグラフとして表現したものであるから，「データフロー」および「制御フロー」の「アスペクト」を決定して生成していると言える。
　そうすると，引用発明の「逐次オブジェクトコードの静的解析によりデータ依存グラフ及び制御依存グラフを得る」と本件補正発明の「入力コードの静的解析であって，ランタイム情報のインスツルメンテーションを容易にするインスツルメンテーションコードを挿入する処理が含まれる静的解析により，前記入力コードのデータフローおよび制御フローのアスペクトを決定」することとは，後記する点で相違するものの，“入力コードの静的解析であって，前記入力コードのデータフローおよび制御フローのアスペクトを決定”する点で共通していると言える。
　
（ウ）引用発明では，「プログラム実行時に，前記静的解析により基本ブロック単位に切り分けられたコードの切れ目を通過する度にプローブ関数を呼び出して動的解析を行」うところ，「動的解析」は「逐次オブジェクトコード」の実行中に行われることから，「ランタイム解析」を含むことは明らかである。
　また，引用例１の上記Ｆの「中間コードインタプリタは，プログラム実行時に制御フローが基本ブロックの切れ目を通過するたびに，プローブ関数を呼び出すことにより，様々な動的プログラム解析処理を行なう．」との記載からすると，引用発明の「動的解析」は，動的な情報の収集をするプローブ関数を呼び出して処理する間に行われることが読み取れることから，動的な情報の収集をする処理が実行される間に行われる「ランタイム解析」が含まれる「動的解析」であると言える。
　
（エ）引用発明の「投機的制御／データ依存グラフ」は，「静的解析」により得られた「データ依存グラフ及び制御依存グラフ」をもとに，「逐次オブジェクトコード」を実行中に行われる「動的解析」によって測定された情報をさらに考慮して，「基本ブロック」間に存在する制御依存関係とデータ依存関係とをグラフとして表現したものであるから，引用発明の「投機的制御／データ依存グラフを作成」することは，「データフロー」および「制御フロー」の追加の「アスペクト」を決定して生成しているとみることができる。
　そうすると，本件補正発明の「中間表現」は「静的解析によって決定された前記入力コードのデータフローおよび制御フローの前記アスペクトと，前記動的解析によって決定された前記入力コードのデータフローおよび制御フローの前記追加のアスペクトと，に基づいて」，「入力コード」から生成されたものであるから，引用発明の「投機的制御／データ依存グラフ」と，本件補正発明の「中間表現」とは，“入力コードの並列化のための表現”である点で共通すると言える。
　してみると，引用発明の「プログラム実行時に，前記静的解析により基本ブロック単位に切り分けられたコードの切れ目を通過する度にプローブ関数を呼び出して動的解析を行い，前記逐次オブジェクトコードの動的解析によって測定された情報を追加することによって投機的制御／データ依存グラフを作成」することと，本件補正発明の「入力コードの動的解析であって，前記インスツルメンテーションコードを実行する処理が含まれ，前記インスツルメンテーションコードが実行される間に行われるランタイム解析の実行が含まれる動的解析により，前記入力コードのデータフローおよび制御フローの追加のアスペクトを決定し，前記静的解析によって決定された前記入力コードのデータフローおよび制御フローの前記アスペクトと，前記動的解析によって決定された前記入力コードのデータフローおよび制御フローの前記追加のアスペクトと，に基づいて，前記入力コードの中間表現を生成」することとは，後記する点で相違するものの，“入力コードの動的解析であって，動的な情報の収集をする処理が実行される間に行われるランタイム解析が含まれる動的解析により，前記入力コードのデータフローおよび制御フローの追加のアスペクトを決定し，前記静的解析によって決定された前記入力コードのデータフローおよび制御フローの前記アスペクトと，前記動的解析によって決定された前記入力コードのデータフローおよび制御フローの前記追加のアスペクトと，に基づいて，前記入力コードの並列化のための表現を生成”する点で共通していると言える。
　
（オ）引用発明では，「作成した前記投機的制御／データ依存グラフに基づいてプログラムの基本ブロックレベルの並列化を実現する」ところ，「プログラムの基本ブロックレベルの並列化」は，複数のプロセッサによって実行可能である並列実行可能なコードを生成することに他ならず，引用例１の上記Ｂの「このような依存グラフの中から，依存関係が解消している複数の基本ブロックを並列実行することにより，ブロックレベル並列性を利用した並列処理が可能となる．」との記載からすると，「作成した前記投機的制御／データ依存グラフに基づいて」，並列実行可能な「プログラムの基本ブロック」を識別することにより実現していると言える。
　そうすると，引用発明の「作成した前記投機的制御／データ依存グラフに基づいてプログラムの基本ブロックレベルの並列化を実現する」と本件補正発明の「中間表現を処理して，並列実行が可能な前記中間表現の部分を決定し，前記中間表現と前記入力コードとに基づいて，前記複数のプロセッサによって実行可能である並列実行可能なコードを生成する」とは，後記する点で相違するものの，“並列化のための表現を処理して，並列実行が可能な前記並列化のための表現の部分を決定し，前記並列化のための表現と前記入力コードとに基づいて，前記複数のプロセッサによって実行可能である並列実行可能なコードを生成する”点で共通していると言える。
　
イ　以上から，本件補正発明と引用発明とは，以下の点で一致し，また，以下の点で相違する。
　
＜一致点＞ 
　
「入力コードから並列実行可能なコードを生成するシステムであって，
　前記入力コードの静的解析であって，前記入力コードのデータフローおよび制御フローのアスペクトを決定し，
　前記入力コードの動的解析であって，動的な情報の収集をする処理が実行される間に行われるランタイム解析が含まれる動的解析により，前記入力コードのデータフローおよび制御フローの追加のアスペクトを決定し，
　前記静的解析によって決定された前記入力コードのデータフローおよび制御フローの前記アスペクトと，前記動的解析によって決定された前記入力コードのデータフローおよび制御フローの前記追加のアスペクトと，に基づいて，前記入力コードの並列化のための表現を生成し，
　前記並列化のための表現を処理して，並列実行が可能な前記並列化のための表現の部分を決定し，前記並列化のための表現と前記入力コードとに基づいて，前記複数のプロセッサによって実行可能である並列実行可能なコードを生成するシステム。」　
　
＜相違点１＞
　入力コードの静的解析に関し，本件補正発明では，「ランタイム情報のインスツルメンテーションを容易にするインスツルメンテーションコードを挿入する処理が含まれる」のに対して，引用発明では，「静的解析」において「ランタイム情報」を得るための処理について言及されていない点。
　
＜相違点２＞
　入力コードの動的解析に関し，本件補正発明は，「インスツルメンテーションコードを実行する処理が含まれ，前記インスツルメンテーションコードが実行される間に行われるランタイム解析の実行が含まれる」のに対して，引用発明は，「プログラム実行時に，前記静的解析により基本ブロック単位に切り分けられたコードの切れ目を通過する度にプローブ関数を呼び出して」，「逐次オブジェクトコードの動的解析によって測定された情報を追加する」する点。
　
＜相違点３＞
　入力コードの並列化のための表現の生成に関し，本件補正発明では，「静的解析によって決定された」「アスペクト」と，「動的解析によって決定された」「追加のアスペクトとに基づいて，前記入力コードの中間表現を生成」するのに対して，引用発明では，「静的解析」によって得た「アスペクト（データ依存グラフ及び制御依存グラフ）」に「逐次オブジェクトコードの動的解析によって測定された情報を追加することによって投機的制御／データ依存グラフを作成」する点。
　
＜相違点４＞
　並列実行可能なコードの生成に関し，本件補正発明では，「中間表現を処理して，並列実行が可能な前記中間表現の部分を決定し，前記中間表現と前記入力コードとに基づいて，前記複数のプロセッサによって実行可能である並列実行可能なコードを生成する」のに対して，引用発明では，「作成した前記投機的制御／データ依存グラフに基づいてプログラムの基本ブロックレベルの並列化を実現する」点。
　
＜相違点５＞
　システムの構成に関し，本件補正発明では，「システム」が「複数のプロセッサと，前記複数のプロセッサに接続される１つ以上のメモリであって，前記複数のプロセッサに命令を与えるように構成される１つ以上のメモリと，を備える」のに対して，引用発明では，「システム」が「並列計算機」を含むものの，他の構成について明記されていない点。
　
　
（５）当審の判断
　
　上記相違点１乃至５について検討する。
　
ア　相違点１及び２について
　
　引用発明では，「プログラム実行時に，前記静的解析により基本ブロック単位に切り分けられたコードの切れ目を通過する度にプローブ関数を呼び出して」，「逐次オブジェクトコードの動的解析によって測定された情報を追加する」ところ，オブジェクトコードのテスト実行前にインスツルメンテーションコードをオブジェクトコードに挿入しておき，当該オブジェクトコードのテスト実行時にトレースすることは普通に行われていた常套手段であり，例えば参考文献１（上記Ｊを参照）に記載されるように，本願の優先日前には当該技術分野における周知技術であった。
　また，引用例１の上記Ｆの「基本ブロックの切れ目を通過するたびに，呼び出されるプローブ関数で行なわれる処理は次のようなものである．　・　ブロック実行カウントなど基本的な統計の収集　…（中略）…　 ・　ブロック起動タイムスタンプの計算」との記載からすると，「プローブ関数」で行われる動的解析処理には，ブロック実行カウントの収集やブロック起動タイムスタンプの計算などのランタイム情報を測定する態様が含まれると解され，引用発明のように「プローブ関数」を呼び出してランタイム解析を行うか，上記周知技術のように「インスツルメンテーションコード」の実行によりランタイム解析を行うかは，当業者であれば適宜選択し得た事項である。
　そうすると，引用発明において上記周知技術を適用し，プローブ関数を呼び出して動的解析を行うことに代えて，適宜，静的解析の時に入力コードにインスツルメンテーションコードを挿入し，その後にインスツルメンテーションコードの実行によるランタイム解析を含む動的解析を行うこと，すなわち，上記相違点１及び２に係る構成とすることは，当業者が容易に想到し得たことである。
　
イ　相違点３及び４について
　
　引用発明では，「逐次オブジェクトコード」について「静的解析」及び「動的解析」を行うことにより「投機的制御／データ依存グラフを作成」し，「作成した前記投機的制御／データ依存グラフに基づいてプログラムの基本ブロックレベルの並列化を実現する」ところ，引用例１の上記Ｂの「しかし，実際には基本ブロック間には多くの依存関係が存在し，十分な並列性を抽出することは難しい場合が多い．十分な並列性を抽出するためには，逐次プログラムに内在する制御・データ依存関係を可能な限り緩和する必要がある．」との記載からすると，「投機的制御／データ依存グラフ」に基づき制御依存関係やデータ依存関係を緩和した並列性を抽出し，並列処理可能な複数の基本ブロックを生成することが読み取れる。すなわち，引用発明では，入力コードの並列化抽出のための表現として，「逐次オブジェクトコード」から「投機的制御／データ依存グラフ」を中間的に作成していると言える。
　また，処理対象コード（プログラム）を解析した後に中間表現に変換し，当該中間表現に基づいて所定の条件に合う部分を判定する旨の技術は，例えば引用例２（上記Ｇ，Ｈを参照），参考文献２（上記Ｋを参照）に記載されるように，本願の優先日前には当該技術分野において周知技術であった。
　そして，処理対象コード（プログラム）を中間表現に変換するか否かは，処理対象コード（プログラム）の種類（バイナリコードであるのか，ソースプログラムであるのかなど）に応じて適宜選択すべき事項である。
　そうすると，引用発明において上記周知技術を適用し，逐次オブジェクトコードについて静的解析及び動的解析を行うことにより投機的制御／データ依存グラフを作成することに加えて，適宜，入力コードに対する静的解析及び動的解析により決定されたアスペクトに基づいて入力コードの中間表現を生成し，並列実行が可能な前記中間表現の部分を決定し，複数のプロセッサによって実行可能である並列実行可能なコードを生成すること，すなわち，上記相違点３及び４に係る構成とすることは，当業者が容易に想到し得たことである。
　
ウ　相違点５について
　
　引用発明は，「逐次バイナリプログラムから並列性を自動抽出」し，「並列計算機上で実行するシステム」であるところ，引用発明の「並列計算機」に複数の「プロセッサ」を備えることは当該技術分野において普通に採用される周知技術である。
　また，計算機に命令を与えるために，メモリを接続することも，当該技術分野の周知慣用の技術である。
　そうすると，引用発明のシステムにおいて，適宜，逐次バイナリプログラムから並列実行可能なコードを生成するための命令を複数のプロセッサに与えるためのメモリを備えること，すなわち，上記相違点５に係る構成とすることは，当業者が容易に想到し得たことである。
　
エ　小括
　
　上記で検討したごとく，相違点１乃至相違点５に係る構成は当業者が容易に想到し得たものであり，そして，これらの相違点を総合的に勘案しても，本件補正発明の奏する作用効果は，上記引用発明及び当該技術分野の周知技術の奏する作用効果から予測される範囲内のものにすぎず，格別顕著なものということはできない。
　したがって，本件補正発明は，上記引用発明及び当該技術分野の周知技術に基づいて，当業者が容易に発明をすることができたものであり，特許法第２９条第２項の規定により，特許出願の際独立して特許を受けることができない。
　
　
４　補正却下の決定のむすび
　
　以上のように，本件補正は，上記「３　独立特許要件」で指摘したとおり，補正後の請求項１に記載された発明は，特許出願の際独立して特許を受けることができるものではないから，特許法第１７条の２第６項において準用する同法第１２６条第７項の規定に違反するので，同法第１５９条第１項において読み替えて準用する同法第５３条第１項の規定により却下すべきものである。 
　
　よって，上記補正却下の決定の結論のとおり決定する。
　
　
第３　本願発明について
　
１　本願発明 
  
　平成２７年１月５日付けの手続補正は上記のとおり却下されたので，補正後の請求項１に対応する補正前の請求項１に係る発明（以下，「本願発明」という。）は，平成２６年３月１７日付けの手続補正により補正された特許請求の範囲の請求項１に記載された事項により特定される，以下のとおりのものである。
　
「　入力コードから並列実行可能なコードを生成するシステムであって，
　複数のプロセッサであって，
　　前記入力コードの静的解析であって，ランタイム情報のインスツルメンテーションを容易にするインスツルメンテーションコードを挿入する処理が含まれる静的解析により，前記入力コードのデータフローおよび制御フローのアスペクトを決定し，
　　前記入力コードの動的解析であって，前記インスツルメンテーションコードを実行する処理が含まれる動的解析により，前記入力コードのデータフローおよび制御フローの追加のアスペクトを決定し，
　　前記静的解析によって決定された前記入力コードのデータフローおよび制御フローの前記アスペクトと，前記動的解析によって決定された前記入力コードのデータフローおよび制御フローの前記追加のアスペクトと，の少なくとも一つに基づいて，前記入力コードの中間表現を生成し，
　　前記中間表現を処理して，並列実行が可能な前記中間表現の部分を決定し，
　　前記中間表現と前記入力コードとに基づいて，前記複数のプロセッサによって実行可能である並列実行可能なコードを生成する，
　ように構成される複数のプロセッサと，
　前記複数のプロセッサに接続される１つ以上のメモリであって，前記複数のプロセッサに命令を与えるように構成される１つ以上のメモリと，
　を備えるシステム。」
　
２　引用例に記載されている技術的事項及び引用発明 
　
　原査定の拒絶の理由に引用された，引用発明は，前記「第２　平成２７年１月５日付けの手続補正についての補正却下の決定」の「３　独立特許要件」の「（２）引用例」に記載したとおりである。
　
３　対比・判断  
　
　本願発明は，前記「第２　平成２７年１月５日付けの手続補正についての補正却下の決定」の「３　独立特許要件」で検討した本件補正発明の発明特定事項から
　「前記インスツルメンテーションコードが実行される間に行われるランタイム解析の実行が含まれる」の限定事項を削除し，
　「の少なくとも一つに基づいて」の特定事項を追加したものである。
　そうすると，本願発明の発明特定事項を全て含む本件補正発明が，前記「第２　平成２７年１月５日付けの手続補正についての補正却下の決定」の「３　独立特許要件」の「（２）引用例」乃至「（５）当審の判断」に記載したとおり，引用発明及び当該技術分野の周知技術に基づいて当業者が容易に発明をすることができたものであるから，上記特定の限定を省いた本願発明も同様の理由により，引用発明及び当該技術分野の周知技術に基づいて，当業者が容易に発明をすることができたものである。 
　
　
第４　むすび 
　
　以上のとおり，本願の請求項１に係る発明は，特許法第２９条第２項の規定により特許を受けることができないものであるから，その余の請求項に係る発明について検討するまでもなく，本願は拒絶すべきものである。 
　
　よって，結論のとおり審決する。