【事件の表示】
　平成　４年特許願第２５９３６２号「手続き呼出し翻訳装置」拒絶査定に対する審判事件［平成　６年　４月２２日出願公開、特開平　６−１１０７０２］について、次のとおり審決する。
【結　論】
　本件審判の請求は、成り立たない。
【理　由】
理　　　由
１．手続きの経緯及び本願発明の要旨
　本願は、平成４年９月29日の出願であって、請求項１に係る発明（以下、「本願発明」という）の要旨は、明細書及び図面の記載からみて、特許請求の範囲の請求項１に記載された次のとおりのものと認められる。
「手続き呼出しの戻り値の受渡しを行う際に、戻り値の属性を基に戻り値の受渡しに使用する資源を選択する戻り値資源選択部と、前記戻り値資源選択部により選択された資源に戻り値を割り付ける戻り値資源割付け手段とを有することを特徴とする手続き呼出し翻訳装置」
　なお、平成７年３月30日付けの手続補正書は、当審において平成12年５月25日付けで却下の決定がなされ、その決定は確定している。
　
２．引用例記載の発明
　これに対して、原審において引用された「インターフェース、第10巻、第７号、1984年７月号、ＣＱ出版株式会社、p.296〜305」（以下、「引用例」という）には、次の事項が記載されている。
(a) 「最近ではＣＰ／Ｍ−86上で走るコンパイラの種類もかなり増えてきた。これらのコンパイラを選択するには、たんに言語を選択する（ＰａｓｃａｌかＣかなど）だけでなく、コンパイラの性能をよく検討する必要がある。それは同じ言語であっても、コンパイラの性能によって期待どおりの仕事ができるかどうかが決まるからである。そこで、ＣＰ／Ｍ−86用コンパイラを選択するためのチェック・ポイントを提示し、これらのコンパイラの一つＰａｓｃａｌ／ＭＴ＋86について解説する。」（第296頁左欄第1行〜第９行）
(b) 「Ｐａｓｃａｌ／ＭＴ＋86のパッケージには専用アセンブラＡＳＭＴ−86が含まれている。このアセンブラはインテルのアセンブラＡＳＭ−86のサブセットであり、マクロ機能はない。ＡＳＭＴ−86はＰａｓｃａｌ／ＭＴ＋86と同じ．Ｒ８６ファイルを生成するので、ＬＩＮＫＭＴによってＰａｓｃａｌとアセンブラのプログラムをリンクすることができる。Ｐａｓｃａｌとアセンブラのプログラム間でデータを受け渡すには２種類の方法がある。一つは変数の名前によるものであり、もう一つはパラメータによるものである。…（中略）…つぎにパラメータによるデータの受け渡しであるが、Ｐａｓｃａｌがアセンブラ・ルーチンを呼ぶとき、またはアセンブラがＰａｓｃａｌのルーチンを呼ぶときに、すべてのパラメータはスタックの上におかれる。あるルーチンに実行が移ったとき、スタックのトップは１ワードのリターン・アドレスが入っている（ＭＴ＋86ではコンパクト・メモリ・モデルを用いているために、リターン・アドレスはオフセット値だけである）。その下にはパラメータの値が、Ｐａｓｃａｌのパラメータ・リストとは逆の順で入っている。すべてのパラメータはワード単位で扱われ、１バイトの長さのもの（ｃｈａｒ、ｂｙｔｅ）は上位バイトを０として１ワードになっている。またパラメータ・リスト中でｖａｒと宣言されたものは、その値がしまわれている番地のセグメント値とオフセット値がスタック上におかれる。例として
　ｐｒｃｅｄｕｒｅ　　ｔｅｓｔ（ｉ：ｉｎｔｅｇｅｒ；ｖａｒ　ｓ：ｓｔｒｉｎｇ；ｃ：ｃｈａｒ）；
として宣言された手続の場合、呼び出された直後のスタックの状態はつぎのようになっている（数字はバイト・アドレス）。
　０，１：リターン・アドレス
　２　　：値０
　３　　：ｃの値
　４，５：ｓのオフセット値
　６，７：ｓのセグメント値
　８，９：ｉの値
呼び出された手続が呼出し側にもどるときには、すべてのパラメータをスタックから取り出した状態にしなければいけない。関数の値は、実数をのぞいて、すべてレジスタで返す。１バイトの値はＡＬレジスタ、１ワードの値はＡＸレジスタで返す。２ワードのlongintやポインタは、その上位ワードやセグメント値をＢＸレジスタで返す。実数だけはスタック上に値を返すことになっている。」（第300頁右欄第33行〜第302頁右欄第11行）
var
begin
end .
          ASSUME  CS:CODE , DS:DATA
DATA     SEGMENT PUBLIC
          EXTRN    ABC:WORD , XYZ:WORD
DATA     ENDS
CODE     SEGMENT PUBLIC
          PUBLIC  ADDPRM
ADDPRM  PROC    NEAR
          MOV     AX,BX
          ADD      AX,CX
          RET
ADDPRM  ENDP
　
          PUBLIC   ADDGRBL
ADDGRBL PROC     NEAR
          MOV      AX,ABC
          ADD      AX,XYZ
          RET
ADDGRBL ENDP
CODE     ENDS  」（第302頁〔図２〕から抜粋）
　ここで、引用例に記載された事項(a)〜(c)をまとめる。
　上記事項(a)の記載から明らかなように、引用例にはソースプログラムを翻訳してオブジェクトコードを生成するいわゆるコンパイラについて記載されている。また、上記事項(b)には、Ｐａｓｃａｌからアセンブラ・ルーチンを呼び出すとき、又は、アセンブラがＰａｓｃａｌのルーチンを呼び出す場合のデータの受け渡しについて、特に「関数の値は、実数をのぞいて、すべてレジスタで返す。１バイトの値はＡＬレジスタ、１ワードの値はＡＸレジスタで返す。２ワードのlongintやポインタは、その上位ワードやセグメント値をＢＸレジスタで返す。実数だけはスタック上に値を返すことになっている。」と記載され、呼び出し側への関数の値を、その値が実数、１バイトの値、１ワードの値という値の属性に基づいて、スタックやレジスタを選択し、該選択されたスタックやレジスタに値を入れて返すことが規約として記載されている。また、上記事項(c)には、Ｐａｓｃａｌからアセンブラ・ルーチンを呼び出すプログラム例が記載されており、該プログラムにおいてＰａｓｃａｌのプログラムからは、「 i  := addgrbl 」及び「j  := addprm( 10 , 32 )」でアセンブラ・ルーチンを呼び出し、アセンブラ・ルーチンにおいてはそれぞれＡＸレジスタに値を入れて返すことが示されている。しかしながら、ここでのアセンブラ・ルーチンはプログラマが上記規約を考慮した上で記述したものであり、コンパイラがその値をＡＸレジスタに割り当てたものではないが、上記例とは逆に、アセンブラがＰａｓｃａｌのルーチンを呼び出す場合には、プログラマは値を返すレジスタを指定することなくＰａｓｃａｌのプログラムを記述し、コンパイラが上記規約に基づいてその値に適したレジスタ等を割り当てることになるのは、明示されていなくとも当業者の技術常識を加味すれば明らかである。
　また、上記コンパイラの処理はいわゆるソフトウエアによるものであるが、ハードウエアと協同して動作する装置と考えれば、上記スタックやレジスタを選択する処理や、割り当てる処理等をそれぞれ手段とした翻訳装置が記載されているものと認められる。
　したがって、引用例には次の構成を有する発明（以下、「引用例記載の発明」という。）が記載されているものと認められる。
　Ｐａｓｃａｌのルーチンから呼び出し側への関数の値の受け渡しの際に、該関数の値の属性に基づいて受渡しに使用する各種レジスタ又はスタックを選択する選択手段と、該選択部により選択された各種レジスタ又はスタックに上記関数の値を割り付ける割付け手段とを有する翻訳装置
　
３．本願発明と引用例記載の発明との対比、判断
　引用例記載の発明における「Ｐａｓｃａｌのルーチン」とは、いわゆる手続き呼び出しのことであり、また、「呼び出し側への関数の値」とは手続き呼び出しによる処理結果であり、本願発明の「戻り値」と等価であることは明らかである。また、一般に各種レジスタやスタック等は計算機資源であるから、引用例記載の発明における「受渡しに使用する各種レジスタ又はスタック」は、本願発明の「受渡しに使用する資源」と等価であることは明かである。したがって、引用例記載の発明の「Ｐａｓｃａｌのルーチンから呼び出し側への関数の値の受け渡しの際に、該関数の値の属性に基づいて受渡しに使用する各種レジスタ又はスタックを選択する選択手段」及び「該選択部により選択された各種レジスタ又はスタックに上記関数の値を割り付ける割付け手段」は、本願発明における「手続き呼出しの戻り値の受渡しを行う際に、戻り値の属性を基に戻り値の受渡しに使用する資源を選択する戻り値資源選択部」及び「前記戻り値資源選択部により選択された資源に戻り値を割り付ける戻り値資源割付け手段」と等価であり、また、引用例記載の発明も手続き呼出しを翻訳するものであるから、本願発明と引用例記載の発明とは、
　手続き呼出しの戻り値の受渡しを行う際に、戻り値の属性を基に戻り値の受渡しに使用する資源を選択する戻り値資源選択部と、前記戻り値資源選択部により選択された資源に戻り値を割り付ける戻り値資源割付け手段とを有することを特徴とする手続き呼出し翻訳装置
　である点で一致しており、両者は単に記載表現が異なる程度のものに過ぎないから、当業者が容易になしえたものである。
　
４．むすび
　以上のとおりであるから、本願発明は引用例に記載された発明に基づいて、当業者が容易に発明をすることができたものと認められ、特許法第29条第２項の規定により、特許を受けることができない。
　よって、結論のとおり審決する。