JP4015382B2 - ソースプログラムのポーティング方法 - Google Patents

ソースプログラムのポーティング方法 Download PDF

Info

Publication number
JP4015382B2
JP4015382B2 JP2001191140A JP2001191140A JP4015382B2 JP 4015382 B2 JP4015382 B2 JP 4015382B2 JP 2001191140 A JP2001191140 A JP 2001191140A JP 2001191140 A JP2001191140 A JP 2001191140A JP 4015382 B2 JP4015382 B2 JP 4015382B2
Authority
JP
Japan
Prior art keywords
option
information
source program
function
macro
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.)
Expired - Fee Related
Application number
JP2001191140A
Other languages
English (en)
Other versions
JP2003005959A (ja
Inventor
晃義 斎藤
聡美 小西
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2001191140A priority Critical patent/JP4015382B2/ja
Publication of JP2003005959A publication Critical patent/JP2003005959A/ja
Application granted granted Critical
Publication of JP4015382B2 publication Critical patent/JP4015382B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、電子計算機のソースプログラムをポーティングする方法に関する。
【0002】
【従来の技術】
ソースプログラムのポーティング(移植)に関して以下のような技術がある。
(1)プログラムの移植を局所的な環境で実施する例として特開2000−105693号公報がある。これはプログラムのポーティングを行う場合に修正必要箇所を検索し、修正必要箇所と修正理由とを表示装置上に表示して対話的にその修正を行うものである。(2)標準規格データベースを用いてソースプログラムの変換を行う例として特開平10−11276号公報がある。
【0003】
【発明が解決しようとする課題】
上記従来技術によれば、移植を行うポーティング先にソースプログラムが存在しなければソースプログラムの変換ができず、ソースプログラムの変換が局所的な環境によって制限されるという問題があった。また自動的に変換できない場合には上記のように対話的な修正処理が入るために、大規模なソースプログラムを効率的に変換できないという問題があった。
【0004】
本発明の目的は、ポーティング先の環境にかかわらずに効率的にソースプログラムをポーティングする方法を提供することにある。
【0005】
【課題を解決するための手段】
本発明は、ポーティング元からソースプログラム及びコンパイル・リンク・オプション情報を受信し、ポーティング先環境に適合するよう修正し、修正後のソースプログラム及びコンパイル・リンク・オプション情報をポーティング元へ送信するソースプログラムのポーティング方法を特徴とする。
【0006】
【発明の実施の形態】
以下、本発明の実施形態について図面を用いて説明する。
【0007】
図1は、本実施形態のシステム構成を示す図である。システムは、PC(パーソナルコンピュータ)100、ポーティング支援システム200及び両者を接続するネットワーク50から構成される。PC100は、Eメールにポーティング対象情報を添付し、ネットワーク50を介してポーティング支援システム200へ送信する計算機である。ポーティング支援システム200は、受信したEメールの添付ファイルからポーティング対象情報を取り出し、修正必要箇所を検出し、修正情報をEメールに添付し、ネットワーク50を介してPC100へ返信する計算機システムである。
【0008】
図2は、ポーティング支援システム200の内部構成を示す図である。ポーティング支援システム200は、Eメール受信処理部201、Eメール添付ファイル取り出し部202、修正必要箇所検索処理部203、修正必要ステップ数算出部204、Eメールファイル添付部205及びEメール発信処理部206の各プログラムから構成される。Eメール受信処理部201は、送られてきたEメールの発信元を調べ正規の発信者から送られてきたメールであるか否かを判断するプログラムである。Eメール添付ファイル取り出し部202は、受信したEメールから添付ファイルを取り出すプログラムであり、更にソースプログラム、makefile又はシェルスクリプト及びOS名コンパイラのバージョン等のポーティング先環境情報とを分離するプログラムである。修正必要箇所検索処理部203は、Eメール添付ファイル取り出し部202で分離されたソースプログラムで修正が必要な部分があるか否か、あればどの部分かをEメール添付ファイル取り出し部202で分離されたmakefile又はシェルスクリプトとポーティング先として指定した情報から修正必要箇所を検出する。修正必要ステップ数算出部204は、ポーティング前ソースプログラム、makefile又はシェルスクリプトの全ステップ数のうち、修正が必要なステップ数を算出するプログラムである。Eメールファイル添付部205は、修正後のソースプログラム、makefile・シェルスクリプト、修正表等の実行結果をEメールに添付するプログラムである。Eメール発信処理部206は、修正必要箇所検索処理部203の実行結果を添付したEメールを発信するプログラムである。
【0009】
図3は、ポーティング支援システム200の概略の処理の流れを示すフローチャートである。ステップ301でポーティング対象情報を添付ファイルに持つEメール(電子メール)を受信する。この時正規の登録者以外からのEメールはステップ302以降の処理には入らない。ステップ302ではステップ301で受信した添付ファイルからポーティング対象のソースプログラム、makefile又はシェルスクリプト、ポーティング先環境情報をそれぞれ取り出す。ステップ303は、ポーティング先環境に適合するようにソースプログラム、makefile又はシェルスクリプトに対する修正必要箇所を検出するところであり、その詳細を図4で説明する。ステップ304は、makefile又はシェルスクリプトの修正必要箇所を検出するところであり、その詳細を図7で説明する。ステップ305では標準規格、ポーティング先環境と一致しないソースプログラム、makefile又はシェルスクリプトのステップ数を算出する。ここではステップ303及びステップ304で検出したソースプログラム及びmakefile又はシェルスクリプトで修正が必要な箇所について、ポーティング前のソースプログラム及びmakefile又はシェルスクリプトのうち修正が必要なステップ数を計算する。ステップ306は、修正後のソースプログラム及びmakefile又はシェルスクリプト、これらのポーティング先環境に対しての修正が必要な箇所の情報及び合致率をEメールで送信する。合致率は、非修正行数/(修正行数+非修正行数)である。
【0010】
図4は、図3のソースプログラムの修正必要箇所検出処理の詳細を示す図である。ステップ401でソースプログラムを入力してインクルードファイルを展開する。ステップ402でソースプログラムの末尾か否かを判断する。末尾である場合はソースの修正必要箇所検出処理を終了する。末尾でない場合はステップ403以降の処理を実施する。ステップ403ではそのソースプログラムを構文解析し、構成要素の取り出しをする。ステップ404でソースプログラムから関数・マクロの実行文が見つかった場合は、ステップ405では標準規格データベースとの比較をする。ステップ405の詳細は図5で説明する。ステップ406では各社拡張仕様データベースとの比較をする。ステップ406の詳細は図6で説明する。
【0011】
図5は、ステップ405で標準規格データベースとの比較をする部分を詳細に示す図である。ステップ501は標準規格データベースに、同じ名称の関数・マクロがあるか否かを判定する。同じ関数・マクロ名称がある場合は、ステップ502で関数・マクロの仕様が一致するか否かを判定する。不一致の場合はステップ503にて標準規格データベースとの不一致行数をカウントアップする。ステップ504では不一致の関数・マクロについて修正箇所、修正前と修正後の仕様を表の形でまとめた修正表に登録する。ステップ505では修正後のコーディングを実際のソースプログラムに反映する。修正前のコーディングについてコメントを付加してどのような修正をしたかが判るようにする。
【0012】
図6は、ステップ406で各社拡張仕様データベースとの比較をする部分の処理を詳細に示す図である。ステップ601で各社拡張仕様のデータベースに同名の関数・マクロがあるか否かを判断する。同名の関数・マクロがある場合は、ステップ602で関数・マクロの仕様が一致するか否か判定する。不一致の場合はステップ603で各社拡張仕様データベースとの不一致行をカウントアップする。ステップ604で不一致の関数・マクロについて修正箇所、修正前と修正後の仕様を修正表に登録する。ステップ605で修正後のコーディングを実際のソースプログラムに反映する。修正前のコーディングについてコメントを付加してどのような修正をしたかが判るようにする。標準規格データベースを基にした修正ファイルと各社拡張仕様データベースを基にした修正は別々のファイルに出力する。
【0013】
図7は、makefile又はシェルスクリプトの修正箇所を検出する処理を表す図である。ステップ701でmakefile又はシェルスクリプトを入力する。ステップ702でmakefileまたはシェルスクリプトの末尾か否かを調べ、末尾でない場合はステップ703でmakefileまたはシェルスクリプトの構文解析をする。構文解析で要素に分解した結果、オプションが指定されているか否かをステップ704で判定する。オプションが指定されていた場合、ステップ705で修正表に登録する。次にオプションが指定されていた場合はステップ706で標準規格データベースと比較をする。ステップ706の詳細は図8で説明する。次にステップ707で各社拡張仕様データベースとの比較をする。ステップ707の詳細は図9で説明する。
【0014】
図8は、makefile又はシェルスクリプトと標準規格データベースとの比較処理の説明図である。ステップ801で標準規格データベースに同名のオプションがあるか否かを判定する。同名のオプションがある場合にはステップ802でオプションの数と型が一致するか否かの判定をする。一致しないときにはステップ803でコンパイル・リンク・オプションについて修正箇所、修正前と修正後の仕様を表の形でまとめた修正表に登録する。ステップ804で修正後のコーディングを実際のmakefile又はシェルスクリプトに反映する。
【0015】
図9は、各社拡張仕様データベースとの比較処理を示す図である。ステップ901では各社拡張仕様データベースに同名のオプションがあるか否かを判定する。同名のオプションがある場合はステップ902でオプションの数と型が一致するか否かを調べる。一致しないときにはステップ903で修正箇所、修正前と修正後の仕様を修正表に登録する。ステップ904で修正後のコーディングを実際のmakefileまたはシェルスクリプトに反映する。修正を反映したmakefileまたはシェルスクリプトは、標準規格を基にしたものと各社拡張仕様を基にしたものの2種類出力する。
【0016】
図10は、ソースプログラムをポーティング支援システム200で変換した例を示す図である。変換前プログラム1001をポーティング支援システム200で変換し、変換後プログラム1003を得る。変換後プログラム1003の行1004と行1005の部分は、変更前の関数の部分をコメントの形で表現し、変更箇所が判るようになっている。
【0017】
図11は、ソースプログラムについて標準規格データベース及び各社拡張仕様データベースのフォーマットの例を示す図である。1行目に関数名・マクロ名の型と名前、2行目以降引数の数個分だけ各引数の型と名前がこの順序で登録されている。空白行を1行はさみ、これを関数・マクロの数だけ繰り返す。これを図11の例で説明する。表中の列1107は関数又は引数の型を表している。列1108は関数名又は引数名を表している。この表では行1102から関数名がfgetsでこの関数はcharへのポインタを返す関数であることが判る。行1103では引数名がaであり、この引数の型はchar型へのポインタであることが判る。行1104の次の行が空白なので関数fgetsの引数はFILE型の引数cまでであることが判る。次の関数は行1106から始まるfputsであることが判る。
【0018】
図12は、ステップ504及びステップ604で使用するソースプログラム中の関数について修正前の表現と修正後の表現の対応を保持している修正表の例を示す図である。この修正表には列1206がソースファイルのファイル名、列1207がファイル中の修正したステートメントの行番号を保持している。この列が空白であると前の列と同じ行番号であることを意味する。列1208は変更前の関数又は引数の型を保持している部分である。列1209は変更前の関数名又は引数名を保持している。列1210は変更後の関数又は引数の型を保持している。列1211は変更後の関数名又は引数名を保持している。図12の例では、この関数の存在するファイル名は「/usr/src/a.c」であり、修正対象となる関数fgetsが10行目にあることを示している。行1202では関数fgetsの1番目の引数は名前がaであり、この引数はcharへのポインタを返す型である。行1203までが関数fgetsの引数であり、空白行1204をはさんで行1205からが次の関数fputsであることが判る。この例では関数fgetsがgetsに、関数fputsがputsに変換されている。
【0019】
図13は、makefileをポーティング支援システム200で変換した例を示す図である。変換前makefile1301をポーティング支援システム200で変換し、変換後makefile1303を得る。変換後makefile1303中行1304の部分が変更前makefileの部分をコメントによって表現することによって、変更箇所が判るようになっている。この例はmakefileであるがシェルスクリプトの場合でも同じである。
【0020】
図14は、makefileについて標準規格データベース及び各社拡張仕様データベースのフォーマットの例を示す図である。列1402がコンパイルオプションかリンクオプションかを表している列であり、この列の内容が「compile」であればこのオプションはコンパイルオプションであり、「link」であればリンクオプションである。列1403はオプション名を示す。
【0021】
図15は、ステップ803及びステップ903で使用するmakefileの修正前の表現と修正後の表現の対応を保持している修正表の例を示す図である。この修正表には列1503がオプションの存在するmakefileのファイル名、列1504がファイル中の修正した行番号を保持している。この列が空白であると前の列と同じ行番号であることを意味する。列1505は変更前のオプションがコンパイルオプションかリンクオプションかを表している。列1506は変更前のオプション名を保持している部分である。列1507は変更後のオプションがコンパイルオプションかリンクオプションかを表している。列1508は変更後のオプション名を保持している部分である。図15の例では、1509からこのオプションの存在するファイル名は/usr/mfilであり、修正対象となるオプション「c」が10行目にあることが判る。行1502では列1505が「link」となっているのでリンクオプションであることが判る。この例では変換によってコンパイルオプションOsが削除されている。
【0022】
図16は、インターネットの代わりに郵便等の手段によっても記録媒体に記録されたポーティング前プログラムとポーティング後プログラムを送受信できることを示す図である。ここでは郵便を例として揚げているが郵便に限らず他の通信手段でも本発明は適用できる。
【0023】
【発明の効果】
以上説明したように本発明によれば、ポーティング支援システムがポーティング先の環境に依存しないため、ポーティング先の環境にかかわらずに効率的にソースプログラムをポーティングすることができる。また標準規格、各社拡張仕様に基づいて必要な修正行数を提示することにより、プログラムのポーティングに必要な作業量を事前に把握することができるので正確な作業計画を立てることができるという効果がある。
【図面の簡単な説明】
【図1】実施形態のシステム構成を示す図である。
【図2】実施形態のポーティング支援システム200の構成を示す図である。
【図3】実施形態のポーティング支援システム200の概略の処理の流れを示すフローチャートである。
【図4】実施形態のソースプログラムの修正必要箇所検出処理の流れを示すフローチャートである。
【図5】実施形態の標準規格データベースとの比較処理を示すフローチャートである。
【図6】実施形態の各社拡張仕様データベースとの比較処理を示すフローチャートである。
【図7】実施形態のmakefileの修正箇所を検出する処理を示すフローチャートである。
【図8】実施形態のmakefileと標準規格データデースとの比較処理を示すフローチャートである。
【図9】実施形態のmakefileと各社拡張仕様データベースとの比較処理を示すフローチャートである。
【図10】ソースファイルをポーティング支援システムで変換した例を示す図である。
【図11】標準規格データベース及び各社拡張仕様データベースでのソースのフォーマットの例を示す図である。
【図12】ソースファイルに対する修正内容を登録する修正表の例を示した図である。
【図13】makefileをポーティング支援システムで変換した例を示す図である。
【図14】標準規格データベース及び各社拡張仕様データベースでのオプションのフォーマットの例を示す図である。
【図15】makefileに対する修正内容を登録する修正表の例を示す図である。
【図16】インターネットの代わりに郵便でポーティング前プログラムとポーティング後プログラムを送受信する構成を示す図である。
【符号の説明】
100…PC、200…ポーティング支援システム、203…修正必要箇所検索処理部、204…修正必要ステップ数算出部

Claims (4)

  1. 計算機によってソースプログラムのポーティング手順を実行する方法であって、
    ポーティング元からソースプログラム及びコンパイル・リンク・オプション情報を受信し、
    前記ソースプログラムの構文解析を行って関数・マクロの名前、型、および引数の数と型を含む関数・マクロ仕様を抽出し、
    記憶装置に格納された標準規格データベースから読み出した情報に同名の関数・マクロが存在し、抽出された関数・マクロ仕様と不一致の場合に、前記標準規格データベースの情報に基づく修正前と修正後の関数・マクロ仕様を表の形にまとめた修正表に登録し、登録された修正表により前記ソースプログラムを修正し、
    記憶装置に格納された各社拡張仕様データベースから読み出した情報に同名の関数・マクロが存在し、抽出された関数・マクロ仕様と不一致の場合に、前記各社拡張仕様データベースの情報に基づく修正前と修正後の関数・マクロ仕様を表の形にまとめた修正表に登録し、登録された修正表により前記ソースプログラムを修正し、
    コンパイル・リンク・オプション情報の構文解析を行ってオプションの名前、オプションの数と型を含むオプション仕様を抽出し、
    前記標準規格データベースに同名のオプションが記録されており、抽出されたオプション仕様と不一致の場合に、前記標準規格データベースの情報に基づく修正前と修正後のオプション仕様を表の形にまとめた修正表に登録し、登録された修正表により前記コンパイル・リンク・オプション情報を修正し、
    前記各社拡張仕様データベースに同名のオプションが記録されており、抽出されたオプション仕様と不一致の場合に、前記各社拡張仕様データベースの情報に基づく修正前と修正後のオプション仕様を表の形にまとめた修正表に登録し、登録された修正表により前記コンパイル・リンク・オプション情報を修正し、
    修正後のソースプログラム及びコンパイル・リンク・オプション情報を前記ポーティング元へ送信することを特徴とするソースプログラムのポーティング方法。
  2. 前記ポーティング元からの前記ソースプログラム及びコンパイル・リンク・オプション情報を修正した結果として、非修正行数と全体行数の比である合致率を計算して出力することを特徴とする請求項1記載のソースプログラムのポーティング方法。
  3. コンピュータに、ポーティング元からのソースプログラム及びコンパイル・リンク・オプション情報を受信する手順、
    前記ソースプログラムの構文解析を行って関数・マクロの名前、型、および引数の数と型を含む関数・マクロ仕様を抽出する手順、
    記憶装置に格納された標準規格データベースから読み出した情報に同名の関数・マクロが存在し、抽出された関数・マクロ仕様と不一致の場合に、前記標準規格データベースの情報に基づく修正前と修正後の関数・マクロ仕様を表の形にまとめた修正表に登録し、登録された修正表により前記ソースプログラムを修正する手順、
    記憶装置に格納された各社拡張仕様データベースから読み出した情報に同名の関数・マクロが存在し、抽出された関数・マクロ仕様と不一致の場合に、前記各社拡張仕様データベースの情報に基づく修正前と修正後の関数・マクロ仕様を表の形にまとめた修正表に登録し、登録された修正表により前記ソースプログラムを修正する手順、
    コンパイル・リンク・オプション情報の構文解析を行ってオプションの名前、オプションの数と型を含むオプション仕様を抽出する手順、
    前記標準規格データベースに同名のオプションが記録されており、抽出されたオプション仕様と不一致の場合に、前記標準規格データベースの情報に基づく修正前と修正後のオプション仕様を表の形にまとめた修正表に登録し、登録された修正表により前記コンパイル・リンク・オプション情報を修正する手順、
    前記各社拡張仕様データベースに同名のオプションが記録されており、抽出されたオプション仕様と不一致の場合に、前記各社拡張仕様データベースの情報に基づく修正前と修正後のオプション仕様を表の形にまとめた修正表に登録し、登録された修正表により前記コンパイル・リンク・オプション情報を修正する手順、および
    修正後のソースプログラム及びコンパイル・リンク・オプション情報を前記ポーティング元へ送信する手順を実行させるためのプログラム。
  4. さらに前記コンピュータに、前記ポーティング元からの前記ソースプログラム及びコンパイル・リンク・オプション情報を修正した結果として、非修正行数と全体行数の比である合致率を計算して出力する手順を実行させることを特徴とする請求項3記載のプログラム。
JP2001191140A 2001-06-25 2001-06-25 ソースプログラムのポーティング方法 Expired - Fee Related JP4015382B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001191140A JP4015382B2 (ja) 2001-06-25 2001-06-25 ソースプログラムのポーティング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001191140A JP4015382B2 (ja) 2001-06-25 2001-06-25 ソースプログラムのポーティング方法

Publications (2)

Publication Number Publication Date
JP2003005959A JP2003005959A (ja) 2003-01-10
JP4015382B2 true JP4015382B2 (ja) 2007-11-28

Family

ID=19029811

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001191140A Expired - Fee Related JP4015382B2 (ja) 2001-06-25 2001-06-25 ソースプログラムのポーティング方法

Country Status (1)

Country Link
JP (1) JP4015382B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5621426B2 (ja) * 2010-09-08 2014-11-12 日本電気株式会社 オプション情報解析システム、オプション情報解析方法及びプログラム
JP6019843B2 (ja) * 2012-07-11 2016-11-02 富士通株式会社 拡張言語仕様情報提供方法、拡張言語仕様情報提供プログラム、およびコンパイル装置
CN111857725A (zh) * 2020-07-17 2020-10-30 山东云海国创云计算装备产业创新中心有限公司 一种Makefile文件生成方法、装置、设备及介质
US11947966B2 (en) 2021-10-11 2024-04-02 International Business Machines Corporation Identifying computer instructions enclosed by macros and conflicting macros at build time
US11481200B1 (en) 2021-10-11 2022-10-25 International Business Machines Corporation Checking source code validity at time of code update

Also Published As

Publication number Publication date
JP2003005959A (ja) 2003-01-10

Similar Documents

Publication Publication Date Title
US7577946B2 (en) Program product, method, and system for testing consistency of machine code files and source files
US7650353B2 (en) XML specification for electronic data interchange (EDI)
US7263691B2 (en) Parsing structured data
US7647500B2 (en) Synchronous validation and acknowledgment of electronic data interchange (EDI)
US7599944B2 (en) Electronic data interchange (EDI) schema simplification interface
CN109857641B (zh) 对程序源文件进行缺陷检测的方法及装置
US20060041838A1 (en) System and method for automatically generating XML schema for validating XML input documents
US20070143320A1 (en) Automatic schema discovery for electronic data interchange (EDI) at runtime
CN106919612B (zh) 一种上线结构化查询语言脚本的处理方法及装置
WO2003091903A1 (en) System and method for processing of xml documents represented as an event stream
CA2500422A1 (en) Annotated automaton encoding of xml schema for high performance schema validation
US20120047494A1 (en) Application programming interface (api) router implementation and method
US7363577B2 (en) Techniques for serializing events
US20070033579A1 (en) System and method for searching for multiple types of errors in file following translation into a new natural language
JP4015382B2 (ja) ソースプログラムのポーティング方法
US7392519B2 (en) Localization cataloguing tool
CN116346961B (zh) 金融报文处理方法、装置、电子设备及存储介质
Flack et al. Better logging through formality: Applying formal specification techniques to improve audit logs and log consumers
Le Zou et al. On synchronizing with web service evolution
US20020120641A1 (en) Tracking status of inbound trading partner documents
CN106033338A (zh) 基于fog数据的源代码导入及解析的方法和装置
CN114489653A (zh) 基于编译器的数据处理方法、装置以及可读存储介质
JP2001060240A (ja) フォーマット修正方法およびデータ変換方法
JPH01307832A (ja) コンパイラの原始プログラムの文法誤り自動修正方式
TWI498727B (zh) 一種除錯方法及系統

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040722

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070220

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070418

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070515

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070713

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070821

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070913

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100921

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100921

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110921

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120921

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120921

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130921

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees