JP5278088B2 - プログラムの飜訳装置、飜訳方法、ならびに、プログラム - Google Patents
プログラムの飜訳装置、飜訳方法、ならびに、プログラム Download PDFInfo
- Publication number
- JP5278088B2 JP5278088B2 JP2009075783A JP2009075783A JP5278088B2 JP 5278088 B2 JP5278088 B2 JP 5278088B2 JP 2009075783 A JP2009075783 A JP 2009075783A JP 2009075783 A JP2009075783 A JP 2009075783A JP 5278088 B2 JP5278088 B2 JP 5278088B2
- Authority
- JP
- Japan
- Prior art keywords
- translation
- variable
- post
- value
- storage area
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Description
union{int i; char s[5];}y;
y.i = 2009;
を実行することになる。
2009 = 217 + 7×256
であるから、上記の整数値の代入を実行することによって、y.s[0]は217になり、y.s[1]は7になる。
strcpy(y.s,"");
や、
strcpy(y.s,"a");
などによって、文字配列y.sに長さ0や1のASCIIZ文字列が書き込まれていた場合には特に、y.iへの代入によって、終端文字が上書きされてしまう。
strcpy(y.s,"2009");
を実行した場合には、文字配列y.sは、ASCIIZ文字列として有効なものであり、プログラマーが期待した値が格納されているが、整数y.iは、「2」の文字コード50と、「0」の文字コード48と、から、
50 + 48×256 = 12338
という値を持つことになる。これは、西暦年としては、適切なものではない。
01 Y
02 YI PIC Z(4)
03 YY REDEFINES YI
04 YS PIC X(4)
MOVE 2009 TO YI
を実行したとすると、これと記憶域が重なる文字列変数YSの0文字目は文字2の文字コードが、0文字目は文字0の文字コードが、0文字目は文字0の文字コードが、0文字目は文字9の文字コードが、それぞれ割り当てられることとなる。
MOVE 'abcd' TO YS
のように、長さ4の文字列「abcd」を代入した場合には、この文字列は整数として解釈することが不可能である。したがって、整数変数YIの値は無効になり、YIの値を参照すると、例外が生じる。
(1)変数の記憶域を重複させるための宣言文。
(2)記憶域が重複した変数に値を代入する代入文。当該変数の使用は、C++言語でいう「左辺値(L-value)」としての使用に相当する。
(3)記憶域が重複した変数の値を参照する式を含む参照文。当該変数の使用は、C++言語でいう「右辺値(R-value)」としての使用に相当する。
(4)記憶域が重複した変数の値をデータベースに登録する登録文。
(5)記憶域が重複した変数の値をデータベースから読み出す読出文。
(6)記憶域が重複した変数を利用しない通常文。
宣言飜訳部104は、記憶域に配置される領域が重複する変数のCOBOL言語による宣言を、JAVA(登録商標)による宣言にコンパイルする。
void setVI(Object value);
void setVS(Object value);
Object getVI() throws CobolException;
Object getVS() throws CobolException;
代入飜訳部105は、重複した記憶域に配置される変数に対する代入文を飜訳するものである。したがって、飜訳の際には、
(1)まず、COBOL言語による「変数に代入される値を表す式」をJAVA(登録商標)言語のプログラムに、飜訳する。
(2)その後に、当該飜訳結果を実行した結果得られる値を引き数として与えて、セッターメソッドを呼び出すことによって、当該変数に代入するというJAVA(登録商標)プログラムに飜訳する。
bs = CobolExtractToByteSequence(arg);
vs = arg;
fs = true;
が実行されることになる。
fs = false
のような代入が行われる。
cs = CobolExtractToByteSequence(yi);
のように展開する。
fi = false;
となる。
vi = CobolDeExtractFromByteSequence(cs);
fi = true;
のような処理を行うこととなる。
参照飜訳部106は、「重複する記憶域に配置される変数の値を参照する式」や、「重複する記憶域に配置される変数の値を参照する式を含む文」を飜訳する。
return vi;
に相当する。
throw (new CobolException);
を実行することに相当する。
再定義項目、すなわち、記憶域が重複して配置される変数がデータベースに登録されるレコードの一部となっている場合、あるCOBOL言語の実装では、最先に宣言された変数についてのみ、データベースとの間での登録と読出を行うこととしている。
(a)当該最先に宣言されたCOBOL変数に対するフラグ変数がtrueであれば、当該データ変数の値をデータベースへ書き込み、
(b)フラグ変数がfalseであれば、値が存在しないことを表すNIL値をデータベースへ書き込む
処理を行うものとなる。
(a)データベースから読み出した値がNIL値であれば、当該フラグ変数をfalseに設定し、
(b)データベースから読み出した値がNIL値でなければ、当該フラグ変数をtrueに設定し、当該データ変数に読み出した値を代入する
処理を行うものとなる。
102 字句解析部
103 構文解析部
104 宣言飜訳部
105 代入飜訳部
106 参照飜訳部
107 登録飜訳部
108 読出飜訳部
109 通常飜訳部
110 結合部
Claims (6)
- 第1のプログラミング言語で記述された飜訳前プログラムを、第2のプログラミング言語で記述された飜訳後プログラムに飜訳する飜訳装置であって、
前記飜訳前プログラムにおける「第1の飜訳前変数が確保される記憶域と、第2の飜訳前変数が確保される記憶域と、が重複する」旨の宣言を、当該宣言を、前記飜訳後プログラムにおいて、「前記第1の飜訳前変数に対応付けられる第1の飜訳後変数および第1の飜訳後フラグと、前記第2の飜訳前変数に対応付けられる第2の飜訳後変数および第2の飜訳後フラグと、を、互いに重複しない記憶域に確保する」旨の宣言に飜訳する宣言飜訳部、
前記飜訳前プログラムにおける「前記第1の飜訳前変数に値を代入する」旨の文を、前記飜訳後プログラムにおいて「前記第1の飜訳後変数に当該値を代入し、当該代入される値のうち、前記重複される記憶域に記憶されるべき情報を、当該第2の飜訳後変数が確保される記憶域のうち、前記重複される記憶域に対応付けられる記憶域に書き込み、前記第2の飜訳後変数が確保される記憶域に記憶される情報が、前記第2の飜訳後変数の値として有効であるか否かを、前記第2の飜訳後フラグに書き込む」旨の文に飜訳し、前記飜訳前プログラムにおける「前記第2の飜訳前変数に値を代入する」旨の文を、前記飜訳後プログラムにおいて「前記第2の飜訳後変数に当該値を代入し、当該代入される値のうち、前記重複される記憶域に記憶されるべき情報を、当該第1の飜訳後変数が確保される記憶域のうち、前記重複される記憶域に対応付けられる記憶域に書き込み、前記第1の飜訳後変数が確保される記憶域に記憶される情報が、前記第1の飜訳後変数の値として有効であるか否かを、前記第1の飜訳後フラグに書き込む」旨の文に飜訳する代入飜訳部、
前記飜訳前プログラムにおける「前記第1の飜訳前変数の値を参照する」旨の式を、前記飜訳後プログラムにおいて「前記第1の飜訳後変数が確保される記憶域に記憶される情報が前記第1の飜訳後変数の値として有効であるか否かを、前記第1の飜訳後フラグを参照して判定し、有効であると判定された場合は、当該第1の飜訳後変数の値を参照し、有効でないと判定された場合は、例外を発生させる」旨の式に飜訳し、前記飜訳前プログラムにおける「前記第2の飜訳前変数の値を参照する」旨の式を、前記飜訳後プログラムにおいて「前記第2の飜訳後変数が確保される記憶域に記憶される情報が前記第2の飜訳後変数の値として有効であるか否かを、前記第2の飜訳後フラグを参照して判定し、有効であると判定された場合は、当該第2の飜訳後変数の値を参照し、有効でないと判定された場合は、例外を発生させる」旨の式に飜訳する参照飜訳部
を備えることを特徴とする飜訳装置。 - 請求項1に記載の飜訳装置であって、
前記飜訳前プログラムにおける「前記第1の飜訳前変数の値をデータベースに登録する」旨の文を、前記飜訳後プログラムにおいて、「前記第1の飜訳後変数が確保される記憶域に記憶される情報が前記第1の飜訳後変数の値として有効であるか否かを、前記第1の飜訳後フラグを参照して判定し、有効であると判定された場合は、当該第1の飜訳後変数の値をデータベースに登録し、有効でないと判定された場合は、NIL値をデータベースに登録」する旨の文に飜訳し、前記飜訳前プログラムにおける「前記第2の飜訳前変数の値をデータベースに登録する」旨の文を、前記飜訳後プログラムにおいて、「前記第2の飜訳後変数が確保される記憶域に記憶される情報が前記第2の飜訳後変数の値として有効であるか否かを、前記第2の飜訳後フラグを参照して判定し、有効であると判定された場合は、当該第2の飜訳後変数の値をデータベースに登録し、有効でないと判定された場合は、NIL値をデータベースに登録」する旨の文に飜訳する登録飜訳部、
前記飜訳前プログラムにおける「データベースから読み出した値を第1の飜訳前変数に代入する」旨の文を、前記飜訳後プログラムにおいて、「データベースから値を読み出し、当該読み出された値がNIL値である場合、前記第1の飜訳後変数が確保される記憶域に記憶される情報が有効でない旨を前記第1の飜訳後フラグに書き込み、当該読み出された値がNIL値でない場合、前記第1の飜訳後変数が確保される記憶域に記憶される情報が有効である旨を前記第1の飜訳後フラグに書き込み、前記第1の飜訳後変数が確保される記憶域にに当該読み出された値を書き込む」旨の文に飜訳し、前記飜訳前プログラムにおける「データベースから読み出した値を第2の飜訳前変数に代入する」旨の文を、前記飜訳後プログラムにおいて、「データベースから値を読み出し、当該読み出された値がNIL値である場合、前記第2の飜訳後変数が確保される記憶域に記憶される情報が有効でない旨を前記第2の飜訳後フラグに書き込み、当該読み出された値がNIL値でない場合、前記第2の飜訳後変数が確保される記憶域に記憶される情報が有効である旨を前記第2の飜訳後フラグに書き込み、前記第2の飜訳後変数が確保される記憶域にに当該読み出された値を書き込む」旨の文に飜訳する読出飜訳部
をさらに備えることを特徴とする飜訳装置。 - 請求項1または2に記載の飜訳装置であって、
前記第1の飜訳前変数は、ゾーン形式二進化十進数型であり、
前記第2の飜訳前変数は、他方は、それ以外の整数型であり、
前記第1の飜訳後変数は、前記第1の飜訳前変数ががとりうる整数の範囲を表現できる整数型であり、
前記第2の飜訳後変数は、前記第2の飜訳前変数ががとりうる整数の範囲を表現できる整数型である
ことを特徴とする飜訳装置。 - 請求項1または2に記載の飜訳装置であって、
前記第1の飜訳前変数は、ゾーン形式二進化十進数型であり、
前記第2の飜訳前変数は、文字列型であり、
前記第1の飜訳後変数は、前記第1の飜訳前変数ががとりうる整数の範囲を表現できる整数型であり、
前記第2の飜訳後変数は、前記第2の飜訳前変数は、文字列型である
ことを特徴とする飜訳装置。 - 第1のプログラミング言語で記述された飜訳前プログラムを、第2のプログラミング言語で記述された飜訳後プログラムに飜訳する翻訳装置が実行する飜訳方法であって、前記飜訳装置は、宣言飜訳部、代入飜訳部、参照飜訳部を備え、
前記宣言飜訳部が、前記飜訳前プログラムにおける「第1の飜訳前変数が確保される記憶域と、第2の飜訳前変数が確保される記憶域と、が重複する」旨の宣言を、当該宣言を、前記飜訳後プログラムにおいて、「前記第1の飜訳前変数に対応付けられる第1の飜訳後変数および第1の飜訳後フラグと、前記第2の飜訳前変数に対応付けられる第2の飜訳後変数および第2の飜訳後フラグと、を、互いに重複しない記憶域に確保する」旨の宣言に飜訳する宣言飜訳工程、
前記代入飜訳部が、前記飜訳前プログラムにおける「前記第1の飜訳前変数に値を代入する」旨の文を、前記飜訳後プログラムにおいて「前記第1の飜訳後変数に当該値を代入し、当該代入される値のうち、前記重複される記憶域に記憶されるべき情報を、当該第2の飜訳後変数が確保される記憶域のうち、前記重複される記憶域に対応付けられる記憶域に書き込み、前記第2の飜訳後変数が確保される記憶域に記憶される情報が、前記第2の飜訳後変数の値として有効であるか否かを、前記第2の飜訳後フラグに書き込む」旨の文に飜訳し、前記飜訳前プログラムにおける「前記第2の飜訳前変数に値を代入する」旨の文を、前記飜訳後プログラムにおいて「前記第2の飜訳後変数に当該値を代入し、当該代入される値のうち、前記重複される記憶域に記憶されるべき情報を、当該第1の飜訳後変数が確保される記憶域のうち、前記重複される記憶域に対応付けられる記憶域に書き込み、前記第1の飜訳後変数が確保される記憶域に記憶される情報が、前記第1の飜訳後変数の値として有効であるか否かを、前記第1の飜訳後フラグに書き込む」旨の文に飜訳する代入飜訳工程、
前記参照飜訳部が、前記飜訳前プログラムにおける「前記第1の飜訳前変数の値を参照する」旨の式を、前記飜訳後プログラムにおいて「前記第1の飜訳後変数が確保される記憶域に記憶される情報が前記第1の飜訳後変数の値として有効であるか否かを、前記第1の飜訳後フラグを参照して判定し、有効であると判定された場合は、当該第1の飜訳後変数の値を参照し、有効でないと判定された場合は、例外を発生させる」旨の式に飜訳し、前記飜訳前プログラムにおける「前記第2の飜訳前変数の値を参照する」旨の式を、前記飜訳後プログラムにおいて「前記第2の飜訳後変数が確保される記憶域に記憶される情報が前記第2の飜訳後変数の値として有効であるか否かを、前記第2の飜訳後フラグを参照して判定し、有効であると判定された場合は、当該第2の飜訳後変数の値を参照し、有効でないと判定された場合は、例外を発生させる」旨の式に飜訳する参照飜訳工程
を備えることを特徴とする飜訳方法。 - コンピュータに、第1のプログラミング言語で記述された飜訳前プログラムを、第2のプログラミング言語で記述された飜訳後プログラムに飜訳させるプログラムであって、前記プログラムは、前記コンピュータを、
前記飜訳前プログラムにおける「第1の飜訳前変数が確保される記憶域と、第2の飜訳前変数が確保される記憶域と、が重複する」旨の宣言を、当該宣言を、前記飜訳後プログラムにおいて、「前記第1の飜訳前変数に対応付けられる第1の飜訳後変数および第1の飜訳後フラグと、前記第2の飜訳前変数に対応付けられる第2の飜訳後変数および第2の飜訳後フラグと、を、互いに重複しない記憶域に確保する」旨の宣言に飜訳する宣言飜訳部、
前記飜訳前プログラムにおける「前記第1の飜訳前変数に値を代入する」旨の文を、前記飜訳後プログラムにおいて「前記第1の飜訳後変数に当該値を代入し、当該代入される値のうち、前記重複される記憶域に記憶されるべき情報を、当該第2の飜訳後変数が確保される記憶域のうち、前記重複される記憶域に対応付けられる記憶域に書き込み、前記第2の飜訳後変数が確保される記憶域に記憶される情報が、前記第2の飜訳後変数の値として有効であるか否かを、前記第2の飜訳後フラグに書き込む」旨の文に飜訳し、前記飜訳前プログラムにおける「前記第2の飜訳前変数に値を代入する」旨の文を、前記飜訳後プログラムにおいて「前記第2の飜訳後変数に当該値を代入し、当該代入される値のうち、前記重複される記憶域に記憶されるべき情報を、当該第1の飜訳後変数が確保される記憶域のうち、前記重複される記憶域に対応付けられる記憶域に書き込み、前記第1の飜訳後変数が確保される記憶域に記憶される情報が、前記第1の飜訳後変数の値として有効であるか否かを、前記第1の飜訳後フラグに書き込む」旨の文に飜訳する代入飜訳部、
前記飜訳前プログラムにおける「前記第1の飜訳前変数の値を参照する」旨の式を、前記飜訳後プログラムにおいて「前記第1の飜訳後変数が確保される記憶域に記憶される情報が前記第1の飜訳後変数の値として有効であるか否かを、前記第1の飜訳後フラグを参照して判定し、有効であると判定された場合は、当該第1の飜訳後変数の値を参照し、有効でないと判定された場合は、例外を発生させる」旨の式に飜訳し、前記飜訳前プログラムにおける「前記第2の飜訳前変数の値を参照する」旨の式を、前記飜訳後プログラムにおいて「前記第2の飜訳後変数が確保される記憶域に記憶される情報が前記第2の飜訳後変数の値として有効であるか否かを、前記第2の飜訳後フラグを参照して判定し、有効であると判定された場合は、当該第2の飜訳後変数の値を参照し、有効でないと判定された場合は、例外を発生させる」旨の式に飜訳する参照飜訳部
として機能させることを特徴とするプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009075783A JP5278088B2 (ja) | 2009-03-26 | 2009-03-26 | プログラムの飜訳装置、飜訳方法、ならびに、プログラム |
CN201080013814.9A CN102365622B (zh) | 2009-03-26 | 2010-03-26 | 翻译设备、翻译方法和程序存储介质 |
PCT/JP2010/055387 WO2010110430A1 (ja) | 2009-03-26 | 2010-03-26 | プログラムの飜訳装置、飜訳方法、ならびに、記録媒体 |
US13/259,914 US8527968B2 (en) | 2009-03-26 | 2010-03-26 | Translation device, translation method, and storage medium for program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009075783A JP5278088B2 (ja) | 2009-03-26 | 2009-03-26 | プログラムの飜訳装置、飜訳方法、ならびに、プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010231312A JP2010231312A (ja) | 2010-10-14 |
JP5278088B2 true JP5278088B2 (ja) | 2013-09-04 |
Family
ID=42781120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009075783A Active JP5278088B2 (ja) | 2009-03-26 | 2009-03-26 | プログラムの飜訳装置、飜訳方法、ならびに、プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US8527968B2 (ja) |
JP (1) | JP5278088B2 (ja) |
CN (1) | CN102365622B (ja) |
WO (1) | WO2010110430A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5278088B2 (ja) | 2009-03-26 | 2013-09-04 | 日本電気株式会社 | プログラムの飜訳装置、飜訳方法、ならびに、プログラム |
US10846197B1 (en) * | 2018-12-13 | 2020-11-24 | Facebook, Inc. | Systems and methods for debugging mixed-language applications |
CN112114817B (zh) * | 2020-09-28 | 2023-09-19 | 中国银行股份有限公司 | 基于cobol语言的数据字典字段信息获取方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001005674A (ja) * | 1999-06-21 | 2001-01-12 | Pfu Ltd | データ受渡装置および記録媒体 |
JP2006031173A (ja) | 2004-07-13 | 2006-02-02 | Nec Corp | コンパイル装置,方法およびそのプログラム |
US20060031820A1 (en) * | 2004-08-09 | 2006-02-09 | Aizhong Li | Method for program transformation and apparatus for COBOL to Java program transformation |
US7386840B1 (en) * | 2004-09-09 | 2008-06-10 | Lockheed Martin Corporation | Method, apparatus, and program for source code translation from COBOL to object-oriented code |
US7779396B2 (en) * | 2005-08-10 | 2010-08-17 | Microsoft Corporation | Syntactic program language translation |
JP5278088B2 (ja) | 2009-03-26 | 2013-09-04 | 日本電気株式会社 | プログラムの飜訳装置、飜訳方法、ならびに、プログラム |
US9182962B2 (en) * | 2010-12-09 | 2015-11-10 | Todd Bradley KNEISEL | Method for translating a cobol source program into readable and maintainable program code in an object oriented second programming language |
-
2009
- 2009-03-26 JP JP2009075783A patent/JP5278088B2/ja active Active
-
2010
- 2010-03-26 WO PCT/JP2010/055387 patent/WO2010110430A1/ja active Application Filing
- 2010-03-26 US US13/259,914 patent/US8527968B2/en not_active Expired - Fee Related
- 2010-03-26 CN CN201080013814.9A patent/CN102365622B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
JP2010231312A (ja) | 2010-10-14 |
US8527968B2 (en) | 2013-09-03 |
WO2010110430A1 (ja) | 2010-09-30 |
CN102365622A (zh) | 2012-02-29 |
US20120017202A1 (en) | 2012-01-19 |
CN102365622B (zh) | 2014-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Leroy | Unboxed objects and polymorphic typing | |
US8707278B2 (en) | Embedding class hierarchy into object models for multiple class inheritance | |
JP2005032259A (ja) | 共有ライブラリーシステム及び前記システム構築方法 | |
US10409559B2 (en) | Single-source-base compilation for multiple target environments | |
JP6418696B2 (ja) | 命令セットシミュレータおよびそのシミュレータ生成方法 | |
US10545743B2 (en) | Enhanced programming language source code conversion with implicit temporary object emulation | |
JP2001022591A (ja) | コンパイラ装置、コンパイルプログラムが記録されたコンピュータ読み取り可能な記録媒体及びコンパイル方法 | |
JP2011118909A (ja) | メモリアクセス命令のベクトル化 | |
US11556317B2 (en) | Instruction translation support method and information processing apparatus | |
JP5278088B2 (ja) | プログラムの飜訳装置、飜訳方法、ならびに、プログラム | |
US8539458B2 (en) | Transforming addressing alignment during code generation | |
JP4652680B2 (ja) | コンパイル方法および装置、ならびにコンパイラ | |
CN113835620B (zh) | 一种提高安全芯片应用执行效率的方法及系统 | |
CN114780100A (zh) | 编译方法、电子设备及存储介质 | |
CN113138755A (zh) | 一种json序列化和反序列化的优化方法及系统 | |
US9298630B2 (en) | Optimizing memory bandwidth consumption using data splitting with software caching | |
JP6982920B1 (ja) | ソースコード変換装置、及びプログラム | |
US11635947B2 (en) | Instruction translation support method and information processing apparatus | |
JP2006146613A (ja) | プログラム変換方法 | |
KR20190060561A (ko) | 이종 디바이스의 선택적 추상화를 통한 사물 인터넷 어플리케이션의 개발 환경을 통합하는 방법 및 시스템 | |
CN114428603A (zh) | 一种基于编译器生成short和int类型指令的方法和系统 | |
JP2018124877A (ja) | コード生成装置、コード生成方法、およびコード生成プログラム | |
CN118672588A (zh) | 智能合约编译方法、系统、电子设备和目标代码运行方法 | |
Kim | Advanced compiler optimization for CalmRISC8 low-end embedded processor | |
Xu et al. | Implementation Method and Code Reuse and Maintenance Mechanism of a RISC-V Lightweight Code Library |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120208 |
|
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: 20130423 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130506 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5278088 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |