JP2014048706A - Application developing device and application developing tool - Google Patents

Application developing device and application developing tool Download PDF

Info

Publication number
JP2014048706A
JP2014048706A JP2012188719A JP2012188719A JP2014048706A JP 2014048706 A JP2014048706 A JP 2014048706A JP 2012188719 A JP2012188719 A JP 2012188719A JP 2012188719 A JP2012188719 A JP 2012188719A JP 2014048706 A JP2014048706 A JP 2014048706A
Authority
JP
Japan
Prior art keywords
source
application development
program
programs
source program
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.)
Granted
Application number
JP2012188719A
Other languages
Japanese (ja)
Other versions
JP5813600B2 (en
Inventor
Kotaro Kaneko
巧太郎 金子
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.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Document Solutions Inc
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 Kyocera Document Solutions Inc filed Critical Kyocera Document Solutions Inc
Priority to JP2012188719A priority Critical patent/JP5813600B2/en
Publication of JP2014048706A publication Critical patent/JP2014048706A/en
Application granted granted Critical
Publication of JP5813600B2 publication Critical patent/JP5813600B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

PROBLEM TO BE SOLVED: To further enhance development efficiency by simplifying a build operation performed by a user when an application is developed using a plurality of programming languages.SOLUTION: Source programs 13, 23, and 33 written in a plurality of programming languages are compiled into object programs 14, 24, and 34 of an intermediate language common to the programming languages, by compilers 10, 20, and 30. A linker 54 determines a linking process order among the object programs 14, 24, and 34 based on a reference relationship among the source programs 13, 23, and 33 such that all referred addresses are fixed, and a linking process is performed in this order.

Description

本発明は、複数のプログラミング言語をそれぞれコンパイルして互いに共通の中間言語にしリンクして実行可能ファイルを生成するアプリケーション開発装置及びアプリケーション開発ツールに関する。   The present invention relates to an application development apparatus and an application development tool for compiling a plurality of programming languages and linking them into a common intermediate language to generate an executable file.

図1は、従来における複数のプログラミング言語を用いたアプリケーション開発を説明するための概略ブロック図である。   FIG. 1 is a schematic block diagram for explaining conventional application development using a plurality of programming languages.

例えば、プログラミング言語としてJava(登録商標)のみを用いる場合には、この図の最下段に示すように、Javaコンパイラ10と、リンカリンカ1111と、Java用標準ライブラリ12とを備え、不図示のエディタで作成したJavaソースプログラム13をJavaコンパイラ10で翻訳して、バイトコード列のオブジェクトプログラム14を生成する。オブジェクトプログラム14は、Javaソースプログラム13の複数のソースファイルのそれぞれに対応したClassファイルからなり、Classファイル間の参照がシンボルで表されてリローケータブルとなっている。リンカリンカ1111は、オブジェクトプログラム14のこれらClassファイルに基づいて、アドレス未定のシンボルの相対アドレス(OSが、メモリ上に配置する先頭アドレスを決定し、この相対アドレスが該先頭アドレスに加算される。)を決定して、実行可能プログラム15を生成する。Java用標準ライブラリ12は動的リンクライブラリであり、リンカリンカ1111によりその参照情報が実行可能プログラム15内に組み込まれる(以下、他の標準ライブラリについても同様)。   For example, when only Java (registered trademark) is used as the programming language, as shown at the bottom of the figure, the Java compiler 10, the linker 1111 and the Java standard library 12 are provided, and an editor (not shown) is used. The created Java source program 13 is translated by the Java compiler 10 to generate a bytecode string object program 14. The object program 14 is a Class file corresponding to each of a plurality of source files of the Java source program 13, and references between the Class files are represented by symbols and are relocatable. The linker linker 1111 determines the relative address of the symbol whose address is undetermined based on these Class files of the object program 14 (the OS determines a start address to be arranged on the memory, and this relative address is added to the start address). And the executable program 15 is generated. The Java standard library 12 is a dynamic link library, and its reference information is incorporated into the executable program 15 by the linker 1111 (hereinafter, the same applies to other standard libraries).

一方、Java用標準ライブラリ12以外の他のプログラミング言語の標準ライブラリも用いて実行可能プログラム15を作成すれば、Javaソースプログラム13の構成をより簡単化することが可能となる場合がある。   On the other hand, if the executable program 15 is created using a standard library of a programming language other than the Java standard library 12, the configuration of the Java source program 13 may be further simplified.

そこで、プログラム開発環境ツールに更に、Python(正確にはJython、以下同様)コンパイラ20、リンカ21及びPython用標準ライブラリ22を備え、Javaソースプログラム13の一部をPythonソースプログラム23で置き換え、Pythonソースファイル23においてPython用標準ライブラリ22中の必要なものを呼び出し、上記同様に、Pythonソースプログラム23をPythonコンパイラ20で翻訳して、バイトコード列のオブジェクトプログラム24を生成する。オブジェクトプログラム24は、Pythonソースプログラム23の複数のソースファイルのそれぞれに対応したClassファイルからなり、Classファイル間の参照がシンボルで表されてリローケータブルとなっている。リンカ21は、オブジェクトプログラム24のこれらClassファイルに基づいて、アドレス未定のシンボルの相対アドレスを決定して、ライブラリファイル25を生成する。   Therefore, the program development environment tool is further provided with a Python (to be precise, Python, hereinafter the same) compiler 20, a linker 21 and a standard library 22 for Python, and a part of the Java source program 13 is replaced with a Python source program 23. In the file 23, necessary ones in the Python standard library 22 are called, and the Python source program 23 is translated by the Python compiler 20 in the same manner as described above to generate an object program 24 of a byte code string. The object program 24 is a Class file corresponding to each of a plurality of source files of the Python source program 23, and references between the Class files are represented by symbols and are relocatable. The linker 21 determines a relative address of a symbol whose address is undetermined based on these Class files of the object program 24 and generates a library file 25.

同様にまた、プログラム開発環境ツールに更に、JSP(JavaServer Pages)コンパイラ30、リンカ31及びJSP用標準ライブラリ32を備え、Javaソースプログラム13の一部をJSPソースプログラム33で置き換え、JSPソースプログラム33においてJSP用標準ライブラリ32中の必要なものを呼び出し、JSPソースプログラム33をJSPコンパイラ30で翻訳して、バイトコード列のオブジェクトプログラム34を生成する。オブジェクトプログラム34は、JSPソースプログラム33の複数のソースファイルのそれぞれに対応したClassファイルからなり、Classファイル間の参照がシンボルで表されてリローケータブルとなっている。リンカ31は、オブジェクトプログラム34のこれらClassファイルに基づいて、アドレス未定のシンボルの相対アドレスを決定して、ライブラリファイル35を生成する。   Similarly, the program development environment tool further includes a JSP (JavaServer Pages) compiler 30, a linker 31, and a JSP standard library 32. A part of the Java source program 13 is replaced with the JSP source program 33. A necessary one in the JSP standard library 32 is called, and the JSP source program 33 is translated by the JSP compiler 30 to generate an object program 34 of a bytecode string. The object program 34 is a Class file corresponding to each of a plurality of source files of the JSP source program 33, and references between the Class files are represented by symbols and are relocatable. The linker 31 determines a relative address of a symbol whose address is undetermined based on these Class files of the object program 34 and generates a library file 35.

Jython, ウィキペディア, http://ja.wikipedia.org/wiki/JythonJython, Wikipedia, http://en.wikipedia.org/wiki/Jython JSP, ウィキペディア, http://ja.wikipedia.org/wiki/JavaServer_PagesJSP, Wikipedia, http://en.wikipedia.org/wiki/JavaServer_Pages Eclipse, ウィキペディア, http://ja.wikipedia.org/wiki/EclipseEclipse, Wikipedia, http://en.wikipedia.org/wiki/Eclipse

実行可能プログラム15を生成する場合、従来では、ユーザがリンカリンカ1111に対し、オブジェクトプログラム14のみならずライブラリファイル25及び35も指定し、更に、オブジェクトプログラム14とライブラリファイル25とライブラリファイル35との間の参照関係を考慮してオブジェクトプログラム14、ライブラリファイル25及び35に対するリンク処理順も指定して、リンカリンカ1111を起動させることにより、実行可能プログラム15を作成していた。   When the executable program 15 is generated, conventionally, the user designates not only the object program 14 but also the library files 25 and 35 to the linker 1111, and further, between the object program 14, the library file 25, and the library file 35. The executable program 15 is created by activating the linker 1111 by designating the link processing order for the object program 14 and the library files 25 and 35 in consideration of the above reference relationship.

このような処理を開発段階で繰り返し行う必要があるので、開発効率が低下する原因となっていた。   Since it is necessary to repeatedly perform such processing at the development stage, it has been a cause of a decrease in development efficiency.

本発明の目的は、このような問題点に鑑み、複数のプログラミング言語を用いてアプリケーションを開発する場合に、ユーザのビルド操作を簡略化することにより、開発効率をより向上させることが可能なアプリケーション開発装置及びアプリケーション開発ツールを提供することにある。   In view of such problems, the object of the present invention is an application that can improve development efficiency by simplifying a user's build operation when developing an application using a plurality of programming languages. It is to provide a development device and an application development tool.

本発明によるアプリケーション開発装置の第1態様では、プロセッサと、プログラムが格納された記憶手段と、入力手段とを有し、
該プログラムは、
該プロセッサに対し、第1〜n指示に応答して、それぞれ第1〜nプログラミング言語(nは2以上)で記述された第1〜nソースプログラムを、互いに共通の中間言語の第1〜nオブジェクトプログラムに翻訳させる第1〜nコンパイラと、
該第1〜nソースプログラムのそれぞれで呼び出される第1〜n標準ライブラリと、
該プロセッサに対し、ビルド指示に応答して、該第1〜nソースプログラムの翻訳が完了していれば、該第1〜nソースプログラム間での参照関係に基づき、全ての参照先アドレスが定まるように該第1〜nオブジェクトプログラムのリンク処理順を決定させ、該リンク処理順に、該第1〜nオブジェクトプログラムのリンク処理を行わせることにより、1つの実行可能ファイルを作成させるリンカと、
該プロセッサに対し、該入力手段の操作に応じて、該第1〜n指示をそれぞれ該第1〜nコンパイラに与え、又は、該リンカに該ビルド指示を与えるアプリケーション開発統合マネージャとを有する。
In the first aspect of the application development apparatus according to the present invention, the processor includes a processor, a storage unit storing a program, and an input unit.
The program
In response to the first to n instructions, the first to n source programs described in the first to n programming languages (where n is 2 or more) are transferred to the processors in the first to nth intermediate languages. First to n compilers to be translated into object programs;
First to n standard libraries called by each of the first to n source programs;
If the translation of the first to n source programs is completed in response to the build instruction for the processor, all reference destination addresses are determined based on the reference relationship between the first to n source programs. A linker that creates one executable file by determining the link processing order of the first to n object programs as described above, and performing the link processing of the first to n object programs in the link processing order,
The processor has an application development integration manager that gives the first to n instructions to the first to n compilers or gives the build instructions to the linker according to the operation of the input means.

本発明によるアプリケーション開発装置の第2態様では、第1態様において、該記憶手段は補助記憶装置を含み、
該アプリケーション開発統合マネージャは、該プロセッサに対し、該入力手段を介した、該第1〜nソースプログラムの該補助記憶装置への保存指示に応答して、それぞれ該第1〜nソースプログラムを該補助記憶装置へ保存させるとともに、それぞれ該第1〜n指示を該第1〜nコンパイラに与えさせる。
In a second aspect of the application development apparatus according to the present invention, in the first aspect, the storage means includes an auxiliary storage device,
The application development integration manager sends the first to n source programs to the processor in response to an instruction to store the first to n source programs in the auxiliary storage device via the input means. The first to n instructions are respectively given to the first to n compilers while being stored in the auxiliary storage device.

本発明によるアプリケーション開発装置の第3態様では、第2態様において、該アプリケーション開発統合マネージャは、該プロセッサに対し、第iソースプログラム(1≦i≦n)中のソースコードの修正、削除又は該第iソースプログラムへのソースコード追加の、該入力手段に対する確定操作に応答して、第iコンパイラに部分コンパイル指示を与えさせ、
該第iコンパイラは、該プロセッサに対し、該部分コンパイル指示に応答して、該修正、削除又は追加に係るソースファイルを翻訳させ、
該アプリケーション開発統合マネージャは、該プロセッサに対し、この翻訳の結果を該補助記憶装置に上書き保存させる。
In a third aspect of the application development device according to the present invention, in the second aspect, the application development integration manager modifies, deletes or deletes the source code in the i-th source program (1 ≦ i ≦ n) or the processor. In response to the confirmation operation for the input means for adding source code to the i-th source program, the i-th compiler is given a partial compilation instruction,
The i-th compiler causes the processor to translate the source file for the correction, deletion or addition in response to the partial compilation instruction;
The application development integration manager causes the processor to overwrite the result of the translation in the auxiliary storage device.

上記第1態様の構成によれば、第1〜nコンパイラがプロセッサに対し、第1〜n指示に応答して、それぞれ第1〜nプログラミング言語で記述された第1〜nソースプログラムを、互いに共通の中間言語の第1〜nオブジェクトプログラムに翻訳させ、リンカが該プロセッサに対し、ビルド指示に応答して、該第1〜nソースプログラムの翻訳が完了していれば、該第1〜nソースプログラム間での参照関係に基づき、全ての参照先アドレスが定まるように該第1〜nオブジェクトプログラムのリンク処理順を決定させ、該リンク処理順に、該第1〜nオブジェクトプログラムのリンク処理を行わせることにより、1つの実行可能ファイルを作成させるので、ユーザは複数のプログラミング言語を用いて効率よくアプリケーションを開発することができるという効果を奏する。   According to the configuration of the first aspect, the first to n compilers, in response to the first to n instructions, give the processors the first to n source programs described in the first to n programming languages, respectively. If the first to n object programs in a common intermediate language are translated, and the linker completes the translation of the first to n source programs in response to the build instruction to the processor, the first to n objects Based on the reference relationship between the source programs, the link processing order of the first to n object programs is determined so that all reference destination addresses are determined, and the link processing of the first to n object programs is performed in the link processing order. By doing so, one executable file is created, so users can efficiently develop applications using multiple programming languages. There is an effect that it is possible.

上記第3態様の構成によれば、第iソースプログラム中のソースコードの修正、削除又は該第iソースプログラムへのソースコード追加の確定操作により、該修正、削除又は追加に係るソースファイルが翻訳されるので、ユーザはさらに効率よくアプリケーションを開発することができるという効果を奏する。   According to the configuration of the third aspect, the source file related to the correction, deletion, or addition is translated by the correction operation, the deletion of the source code in the i-th source program, or the confirmation operation for adding the source code to the i-th source program. As a result, the user can develop an application more efficiently.

本発明の他の目的、特徴的な構成及び効果は、以下の説明を特許請求の範囲及び図面の記載と関係づけて読むことにより明らかになる。   Other objects, characteristic configurations and effects of the present invention will become apparent from the following description read in connection with the appended claims and the drawings.

従来における複数のプログラミング言語を用いたアプリケーション開発を説明するための概略ブロック図である。It is a schematic block diagram for demonstrating the application development using the some programming language in the past. 本発明の実施例1に係るアプリケーション開発装置のハードウエア構成を示す概略ブロック図である。It is a schematic block diagram which shows the hardware constitutions of the application development apparatus which concerns on Example 1 of this invention. 複数のプログラミング言語用のプラグインモジュールが組み込まれたIDEツールの概略機能ブロック図である。It is a schematic functional block diagram of an IDE tool in which plug-in modules for a plurality of programming languages are incorporated. 図3中のコンパイラ、リンカ及び標準ライブラリに関係した部分のより詳細な概略ブロック図である。FIG. 4 is a more detailed schematic block diagram of portions related to the compiler, linker, and standard library in FIG. 3. 自動実行される部分コンパイル処理の概略フローチャートである。It is a schematic flowchart of the partial compilation process performed automatically. リンク処理を示す概略フローチャートである。It is a schematic flowchart which shows a link process. (A)〜(C)は、図6のステップS10の処理の説明図である。(A)-(C) are explanatory drawings of the process of step S10 of FIG. 図6のステップS14のリンク処理の説明図である。It is explanatory drawing of the link process of step S14 of FIG.

図2は、アプリケーション開発装置40のハードウエア構成を示す概略ブロック図である。   FIG. 2 is a schematic block diagram showing the hardware configuration of the application development apparatus 40.

このハードウェア構成は、通常のパーソナルコンピュータであり、MPU(Micro-Processing Unit)41がインターフェイス42を介してPROM(Programmable Read Only Memory)43、DRAM(Dynamic Random Access Memory)44、補助記憶装置45、入力装置46及び表示装置47に結合されている。図1では、簡単化の為に、複数種のインターフェイスを1つのブロック42で表している。   This hardware configuration is a normal personal computer, and an MPU (Micro-Processing Unit) 41 is connected via an interface 42 to a PROM (Programmable Read Only Memory) 43, a DRAM (Dynamic Random Access Memory) 44, an auxiliary storage device 45, An input device 46 and a display device 47 are coupled. In FIG. 1, a plurality of types of interfaces are represented by one block 42 for the sake of simplicity.

PROM43は、例えばフラッシュメモリであり、BIOS(Basic Input/Output System)が格納されている。DRAM44は、主記憶装置として用いられる。補助記憶装置45には、OS(Operating System)、各種ドライバ及びアプリケーション開発ツールが格納されている。入力装置は、例えばキーボード及びポインティングデバイスである。   The PROM 43 is a flash memory, for example, and stores a basic input / output system (BIOS). The DRAM 44 is used as a main storage device. The auxiliary storage device 45 stores an OS (Operating System), various drivers, and application development tools. The input device is, for example, a keyboard and a pointing device.

このアプリケーション開発ツールは、例えばeclipseのような統合開発環境(IDE)ツールと、これに組み込まれる、複数のプログラミング言語でアプリケーションを開発できるようにするためのそれぞれのプラグインモジュールとを含んでいる。   This application development tool includes, for example, an integrated development environment (IDE) tool such as Eclipse, and respective plug-in modules for allowing an application to be developed in a plurality of programming languages.

図3は、上記プラグインモジュールが組み込まれたIDEツールの概略機能ブロック図である。   FIG. 3 is a schematic functional block diagram of an IDE tool in which the plug-in module is incorporated.

このツールは、複数のプログラミング言語のそれぞれに対応したテキストエディタ50、デザイナ51、デバッガ52、コンパイラ53、リンカ54及び標準ライブラリ55を備えている。ここに、デザイナ51は、標準要素をドラッグ&ドロップでパネル上に配置することによりユーザインターフェイスを作成するプログラムである。   This tool includes a text editor 50, a designer 51, a debugger 52, a compiler 53, a linker 54, and a standard library 55 corresponding to each of a plurality of programming languages. The designer 51 is a program for creating a user interface by arranging standard elements on a panel by drag and drop.

また、これらとユーザとの間のインターフェイスとしてアプリケーション開発統合マネージャ56を備えている。この統合マネージャ56は、表示装置47に、アプリケーション開発のためのメニューを表示させ、ユーザによる入力装置46の操作を介して、表示画面を切り替え又は構成要素50〜55のうちの対応するものを起動させて、ユーザの要求に応え、その結果を表示装置47に表示させる。   Further, an application development integration manager 56 is provided as an interface between them and the user. The integrated manager 56 displays a menu for application development on the display device 47, and switches the display screen or activates the corresponding one of the components 50 to 55 through the operation of the input device 46 by the user. In response to the user's request, the display device 47 displays the result.

図4は、図3中のコンパイラ53、リンカ54及び標準ライブラリ55に関係した部分のより詳細な概略ブロック図である。   FIG. 4 is a more detailed schematic block diagram of portions related to the compiler 53, linker 54, and standard library 55 in FIG.

図3のコンパイラ53は、図4のJavaコンパイラ10、Pythonコンパイラ20及びJSPコンパイラ30を備え、図3の標準ライブラリ55は、Java用標準ライブラリ12、Python用標準ライブラリ22及びJSP用標準ライブラリ32を備えている。   The compiler 53 in FIG. 3 includes the Java compiler 10, the Python compiler 20, and the JSP compiler 30 in FIG. 4, and the standard library 55 in FIG. 3 includes the Java standard library 12, the Python standard library 22, and the JSP standard library 32. I have.

以下、上記IDEツールとしてeclipseを用いた場合を説明する。   Hereinafter, a case where Eclipse is used as the IDE tool will be described.

ユーザは、入力装置46を操作して、統合マネージャ56を介し、プロジェクトを作成する。この際、統合マネージャ56に対し、プロジェクト名を指定するとともに、プログラミング言語としてJava、Python及びJSPを指定する。   The user operates the input device 46 to create a project via the integration manager 56. At this time, a project name is designated for the integrated manager 56, and Java, Python, and JSP are designated as programming languages.

統合マネージャ56はこれに応答して、このプロジェクト名のディレクトリをワークスペース(ディレクトリ)内に生成し、Java、Python及びJSPのそれぞれのソースプログラムをビルドするのに必要な情報を記述したプロジェクトファイル(XMLファイル)57を生成し、これを、該プロジェクト名のディレクトリ内に配置する。このプロジェクトファイル57には、Javaコンパイラ10、Pythonコンパイラ20及びJSPコンパイラ30のそれぞれを起動可能にさせるための情報として、Java、Python及びJSPのそれぞれのNature要素が記述されている。   In response to this, the integration manager 56 generates a directory with this project name in the workspace (directory), and a project file (in which information necessary for building the source programs of Java, Python, and JSP is described ( XML file) 57 is generated and placed in the project name directory. In this project file 57, the Nature elements of Java, Python, and JSP are described as information for enabling each of the Java compiler 10, Python compiler 20, and JSP compiler 30 to be activated.

統合マネージャ56はまた、ソースプログラム格納用ディレクトリsrc及びオブジェクトプログラム格納用ディレクトリbinを生成し、ディレクトリsrc内に、Java、Python及びJSPのソースプログラム格納用の子ディレクトリを生成し、ディレクトリbin内に、Java、Python及びJSPのオブジェクトプログラム格納用の子ディレクトリを生成する。   The integration manager 56 also generates a source program storage directory src and an object program storage directory bin, generates Java, Python, and JSP source program child directories in the directory src, and in the directory bin, A child directory for storing Java, Python, and JSP object programs is generated.

ユーザは、アプリケーション開発統合マネージャ56を介しテキストエディタ50を起動させて、Javaソースプログラム13、Pythonソースプログラム23及びJSPソースプログラム33を作成する。この際、それぞれJava用標準ライブラリ12、Python用標準ライブラリ22及びJSP用標準ライブラリ32内の必要なサブルーチンを呼び出す。   The user activates the text editor 50 via the application development integration manager 56 to create the Java source program 13, Python source program 23, and JSP source program 33. At this time, necessary subroutines in the Java standard library 12, the Python standard library 22, and the JSP standard library 32 are called.

入力装置46を操作して、アプリケーション開発統合マネージャ56を介しJavaソースプログラム13、Pythonソースプログラム23、を補助記憶装置45に保存させると、アプリケーション開発統合マネージャ56はこれに応答して、それぞれJavaコンパイラ10、Pythonコンパイラ20及びJSPコンパイラ30をバックグランドで起動させることにより、Javaソースプログラム13、Pythonソースプログラム23及びJSPソースプログラム33を翻訳して、オブジェクトプログラム14,24及び34を生成し、これらを補助記憶装置45内の上記複数のディレクトリのうちの対応するものの中に保存する。なお、このJSPコンパイラ30は、JSPソースプログラム33をJavaサーブレットに変換した後、複数のclassファイルからなるオブジェクトプログラム34を生成する。   When the input device 46 is operated and the Java source program 13 and the Python source program 23 are stored in the auxiliary storage device 45 via the application development integration manager 56, the application development integration manager 56 responds to the Java compiler, respectively. 10. By starting the Python compiler 20 and the JSP compiler 30 in the background, the Java source program 13, the Python source program 23, and the JSP source program 33 are translated to generate object programs 14, 24, and 34. It is stored in the corresponding one of the plurality of directories in the auxiliary storage device 45. The JSP compiler 30 converts the JSP source program 33 into a Java servlet, and then generates an object program 34 composed of a plurality of class files.

Javaソースプログラム13が補助記憶装置45に保存された後、ユーザがテキストエディタ50を介しJavaソースプログラム13のソースコードを修正、削除又は追加して、その操作を確定すると、すなわちリターンキーを押下し又はマウスをクリックすると(確定操作を行うと)、アプリケーション開発統合マネージャ56はこれに応答して、修正、削除又は追加に係るJavaソースファイルを補助記憶装置45内に上書き保存するとともに、図5の処理を開始する。   After the Java source program 13 is stored in the auxiliary storage device 45, when the user corrects, deletes or adds the source code of the Java source program 13 via the text editor 50 and confirms the operation, that is, the return key is pressed. Alternatively, when the mouse is clicked (when the confirmation operation is performed), the application development integration manager 56 responds to this by overwriting and saving the Java source file related to correction, deletion or addition in the auxiliary storage device 45, as shown in FIG. Start processing.

(S0)これら修正、削除又は追加に係るJavaソースファイルをJavaコンパイラ10に対しバックグラウンドで翻訳させ、すなわちJavaソースプログラム13を部分翻訳させ、そのClassファイルを補助記憶装置45内に上書き保存させる。   (S0) The Java source file related to these corrections, deletions or additions is translated in the background by the Java compiler 10, that is, the Java source program 13 is partially translated, and the Class file is overwritten and saved in the auxiliary storage device 45.

同様に、オブジェクトプログラム24は、補助記憶装置45に保存された後、ユーザがテキストエディタ50を介しPythonソースプログラム23のソースコードを修正、削除又は追加すると、アプリケーション開発統合マネージャ56はその確定操作に応答して、修正、削除又は追加に係るPythonソースファイルを補助記憶装置45内に上書き保存するとともに、図5の処理を開始する。   Similarly, after the object program 24 is stored in the auxiliary storage device 45, when the user corrects, deletes or adds the source code of the Python source program 23 via the text editor 50, the application development integration manager 56 performs the confirmation operation. In response, the Python source file related to correction, deletion, or addition is overwritten and saved in the auxiliary storage device 45, and the processing of FIG. 5 is started.

(S0)これら修正、削除又は追加に係るPythonソースファイルをPythonコンパイラ20に対しバックグラウンドで翻訳させ、すなわちPythonソースプログラム23を部分翻訳させ、そのClassファイルを補助記憶装置45内に上書き保存させる。   (S0) The Python source file related to the correction, deletion, or addition is translated in the background by the Python compiler 20, that is, the Python source program 23 is partially translated, and the Class file is overwritten and saved in the auxiliary storage device 45.

また、オブジェクトプログラム34は、補助記憶装置45に保存された後、ユーザがテキストエディタ50を介しJSPソースプログラム33のソースコードを修正、削除又は追加すると、アプリケーション開発統合マネージャ56はその確定操作に応答して、修正、削除又は追加に係るJSPソースファイルを補助記憶装置45内に上書き保存するとともに、図5の処理を開始する。   Further, after the object program 34 is stored in the auxiliary storage device 45, when the user corrects, deletes or adds the source code of the JSP source program 33 via the text editor 50, the application development integration manager 56 responds to the confirmation operation. Then, the JSP source file related to correction, deletion or addition is overwritten and saved in the auxiliary storage device 45, and the processing of FIG. 5 is started.

(S0)これら修正、削除又は追加に係るJSPソースファイルをJSPコンパイラ30に対しバックグラウンドで翻訳させ、すなわちJSPソースプログラム33を部分翻訳させ、そのClassファイルを補助記憶装置45内に上書き保存させる。   (S0) The JSP source file related to these corrections, deletions or additions is translated in the background by the JSP compiler 30, that is, the JSP source program 33 is partially translated, and the Class file is overwritten and saved in the auxiliary storage device 45.

ここで、「ビルド」はソースプログラムをコンパイルし、その結果の複数のオブジェクトファイルをリンクする意味であるが、ソースプログラムが既にコンパイルされている場合、後者のみを行うことを意味する。すなわち、「ビルド」という表現のみ用いることで、ユーザによる操作を分かり易くしている。   Here, “build” means to compile a source program and link a plurality of resulting object files, but when the source program has already been compiled, it means to perform only the latter. In other words, only the expression “build” is used to make the user's operation easy to understand.

次に、ユーザが入力装置46を操作してアプリケーション開発統合マネージャ56にビルド指示を与えると、統合マネージャ56はこれに応答して、ソースプログラムが既にコンパイルされていると判断した場合、リンカ54を起動させる。リンカ54はこれに応答して、図6に示す処理を開始する。   Next, when the user operates the input device 46 to give a build instruction to the application development integration manager 56, the integration manager 56 determines that the source program has already been compiled. Start. In response to this, the linker 54 starts the processing shown in FIG.

(S10)Javaソースプログラム13,Pythonソースプログラム23、JSPソースプログラム33の間の参照関係を調べる。例えば図7(A)に示すように、Javaソースプログラム13がPythonソースプログラム23、JSPソースプログラム33内のサブルーチンを呼び出し、Pythonソースプログラム23がJSPソースプログラム33内のサブルーチンを呼び出している場合、Javaソースプログラム13はPythonソースプログラム23,JSPソースプログラム33を参照している。JSPソースプログラム33はJavaソースプログラム13及びPythonソースプログラム23の何れも参照していない。   (S10) The reference relationship among the Java source program 13, the Python source program 23, and the JSP source program 33 is checked. For example, as shown in FIG. 7A, when the Java source program 13 calls a subroutine in the Python source program 23 and the JSP source program 33 and the Python source program 23 calls a subroutine in the JSP source program 33, the Java The source program 13 refers to the Python source program 23 and the JSP source program 33. The JSP source program 33 does not refer to either the Java source program 13 or the Python source program 23.

(S11)S10において、Javaソースプログラム13、Pythonソースプログラム23、JSPソースプログラム33のうちの任意の2つの間で、相互参照しているものがあった場合にはステップS12へ進み、そうでなければステップS13へ進む。   (S11) If there is a cross-reference between any two of the Java source program 13, Python source program 23, and JSP source program 33 in S10, the process proceeds to step S12. If so, the process proceeds to step S13.

(S12)相互参照エラーであることをアプリケーション開発統合マネージャ56に通知して図6の処理を終了する。統合マネージャ56はこれに応答して、表示装置47に、相互参照エラーであることを表示させる。   (S12) The application development integration manager 56 is notified of the cross reference error, and the processing in FIG. 6 is terminated. In response, the integration manager 56 causes the display device 47 to display a cross-reference error.

(S13)ステップS10での参照関係に基づいて、プログラミング言語単位でのリンク処理順を決定する。   (S13) The link processing order in programming language units is determined based on the reference relationship in step S10.

すなわち、例えば図7(A)の場合、Javaソースプログラム13、Pythonソースプログラム23及びJSPソースプログラム33のうち、外部参照していないJSPソースプログラム33を第1位とし、次に、このJSPソースプログラム33を除いたJavaソースプログラム13及びPythonソースプログラム23について図7(B)に示すように、外部参照していないPythonソースプログラム23を第2位とし、次にこれを除いたJavaソースプログラム13を第3位とする。図7(C)の場合には、Javaソースプログラム13、Pythonソースプログラム23及びJSPソースプログラム33のうち、外部参照していないPythonソースプログラム23及びJSPソースプログラム33を第1位とし、次に、このPythonソースプログラム23、JSPソースプログラム33を除いたJavaソースプログラム13を第2位とする。   That is, for example, in the case of FIG. 7A, among the Java source program 13, the Python source program 23, and the JSP source program 33, the JSP source program 33 that is not externally referenced is ranked first, and then this JSP source program As shown in FIG. 7B, the Java source program 13 and the Python source program 23 excluding 33 are placed in the second place, and the Java source program 13 excluding this is the second source. 3rd place. In the case of FIG. 7C, among the Java source program 13, the Python source program 23, and the JSP source program 33, the Python source program 23 and the JSP source program 33 that are not externally referenced are ranked first, The Java source program 13 excluding the Python source program 23 and the JSP source program 33 is ranked second.

(S14)ステップS14で決定した順にリンク処理を実行する。同順位のものについては、いずれを先にリンク処理してもよい。   (S14) Link processing is executed in the order determined in step S14. Any one of the same rank may be linked first.

すなわち、図7(A)の場合、JSPソースプログラム33、Pythonソースプログラム23及びJavaソースプログラム13の順にリンク処理を実行し、図7(C)の場合、Pythonソースプログラム23、JSPソースプログラム33及びJavaソースプログラム13の順に又はJSPソースプログラム33、Pythonソースプログラム23及びJavaソースプログラム13の順にリンク処理を実行する。   That is, in the case of FIG. 7A, the link processing is executed in the order of the JSP source program 33, the Python source program 23, and the Java source program 13, and in the case of FIG. 7C, the Python source program 23, the JSP source program 33, and The link processing is executed in the order of the Java source program 13 or in the order of the JSP source program 33, the Python source program 23, and the Java source program 13.

JSPソースプログラム33、Pythonソースプログラム23、Javaソースプログラム13それぞれについては、上記同様にソースファイル間の参照関係を調べてリンク処理順を決定し、リンク処理を行う。   For each of the JSP source program 33, Python source program 23, and Java source program 13, the reference relationship between the source files is examined in the same manner as described above to determine the link processing order, and the link processing is performed.

図8において、バイトコード群(静的リンクライブラリ)35は、図4のオブジェクトプログラム34についてClassファイル毎のリンク処理順を決定した後にリンク処理を行って、未定のシンボルのアドレスを決定し、JSP標準ライブラリ32の参照情報を追加し、全体をアドレス順に並べたものを示している。同様に、図8のバイトコード群25は、図4のオブジェクトプログラム24についてClassファイル毎のリンク処理順を決定した後にリンク処理を行って、未定のシンボルのアドレスを決定し、Python標準ライブラリ22の参照情報を追加し、全体をアドレス順に並べたものを示している。図8のバイトコード群16は、図4のオブジェクトプログラム14についてClassファイル毎のリンク処理順を決定した後にリンク処理を行って、未定のシンボルのアドレスを決定し、Java標準ライブラリ12の参照情報を追加し、全体をアドレス順に並べたものを示している。図8の実行可能プログラム15は、このようなバイトコード群35、25及び16間のリンク処理により、未定シンボルのアドレスを決定してバイトコード順に配列したものである。   In FIG. 8, the bytecode group (static link library) 35 determines the link processing order for each class file for the object program 34 in FIG. The reference information of the standard library 32 is added, and the whole is arranged in the order of addresses. Similarly, the byte code group 25 in FIG. 8 performs link processing after determining the link processing order for each class file for the object program 24 in FIG. Reference information is added and the whole is arranged in the order of addresses. The byte code group 16 in FIG. 8 determines the address of an undetermined symbol after determining the link processing order for each class file for the object program 14 in FIG. 4, and determines the reference information of the Java standard library 12. It is added and the whole is arranged in the order of addresses. The executable program 15 shown in FIG. 8 is obtained by determining the addresses of the undetermined symbols and arranging them in the order of the byte codes by the link processing between the byte code groups 35, 25 and 16.

本実施例1によれば、複数のコンパイラJavaコンパイラ1010、20、30がプロセッサ41に対し、入力装置46を介した指示に応答して、複数のプログラミング言語で記述されたソースプログラム13、23、33を、互いに共通の中間言語のオブジェクトプログラム14、24、34に翻訳させ、リンカ54がプロセッサ41に対し、ビルド指示に応答して、ソースプログラム13、23、33間での参照関係に基づき、全ての参照先アドレスが定まるようにオブジェクトプログラム14、24、34のリンク処理順を決定させ、該リンク処理順に、オブジェクトプログラム14、24、34のリンク処理を行わせることにより、1つの実行可能ファイル15を作成させるので、ユーザは複数のプログラミング言語を用いて効率よくアプリケーションを開発することができるという効果を奏する。   According to the first embodiment, a plurality of compilers Java compilers 1010, 20, 30 respond to an instruction through the input device 46 to the processor 41, and source programs 13, 23, written in a plurality of programming languages 33 is translated into a common intermediate language object program 14, 24, 34, and the linker 54 responds to the build instruction to the processor 41 based on the reference relationship between the source programs 13, 23, 33. One executable file is determined by determining the link processing order of the object programs 14, 24, and 34 so that all reference destination addresses are determined, and performing the link processing of the object programs 14, 24, and 34 in the link processing order. 15 allows users to use multiple programming languages for efficiency There is an effect that it is possible to develop a Ku application.

また、ソースプログラム13、23、33中の任意のソースコードの修正、削除又は追加の確定操作により、該修正、削除又は追加に係るソースファイルが自動翻訳されるので、ユーザはさらに効率よくアプリケーションを開発することができるという効果を奏する。   In addition, since the source file related to the correction, deletion, or addition is automatically translated by the correction, deletion, or addition confirmation operation of any source code in the source programs 13, 23, 33, the user can execute the application more efficiently. There is an effect that it can be developed.

以上において、本発明の好適な実施例を説明したが、本発明には他にも種々の変形例が含まれ、上記実施例で述べた各構成要素の機能を実現する他の構成を用いたもの、当業者であればこれらの構成又は機能から想到するであろう他の構成も、本発明に含まれる。   In the above, preferred embodiments of the present invention have been described. However, the present invention includes various modifications, and other configurations that realize the functions of the respective components described in the above embodiments are used. However, other configurations that would be conceived by those skilled in the art from these configurations or functions are also included in the present invention.

例えば、プログラミング言語は、上記のものに限定されず、共通の中間言語に翻訳される2以上のものであればよい。   For example, the programming language is not limited to the above, but may be any language that is translated into a common intermediate language.

10 Javaコンパイラ
11、21、31 リンカ
12 Java用標準ライブラリ
13 Javaソースプログラム
14、24、34 オブジェクトプログラム
15 実行可能プログラム
16 バイトコード群
20 Pythonコンパイラ
22 Python用標準ライブラリ
23 Pythonソースプログラム
30 JSPコンパイラ
32 JSP用標準ライブラリ
33 JSPソースプログラム
40 アプリケーション開発装置
41 MPU
42 インターフェイス
43 PROM
44 DRAM
45 補助記憶装置
46 入力装置
47 表示装置
50 テキストエディタ
51 デザイナ
52 デバッガ
53 コンパイラ
54 リンカ
55 標準ライブラリ
56 アプリケーション開発統合マネージャ
10 Java compiler 11, 21, 31 Linker 12 Standard library for Java 13 Java source program 14, 24, 34 Object program 15 Executable program 16 Byte code group 20 Python compiler 22 Standard library for Python 23 Python source program 30 JSP compiler 32 JSP Standard Library 33 JSP Source Program 40 Application Development Device 41 MPU
42 Interface 43 PROM
44 DRAM
45 Auxiliary storage device 46 Input device 47 Display device 50 Text editor 51 Designer 52 Debugger 53 Compiler 54 Linker 55 Standard library 56 Application development integration manager

Claims (5)

プロセッサと、プログラムが格納された記憶手段と、入力手段とを有し、
該プログラムは、
該プロセッサに対し、第1〜n指示に応答して、それぞれ第1〜nプログラミング言語(nは2以上)で記述された第1〜nソースプログラムを、互いに共通の中間言語の第1〜nオブジェクトプログラムに翻訳させる第1〜nコンパイラと、
該第1〜nソースプログラムのそれぞれで呼び出される第1〜n標準ライブラリと、
該プロセッサに対し、ビルド指示に応答して、該第1〜nソースプログラムの翻訳が完了していれば、該第1〜nソースプログラム間での参照関係に基づき、全ての参照先アドレスが定まるように該第1〜nオブジェクトプログラムのリンク処理順を決定させ、該リンク処理順に、該第1〜nオブジェクトプログラムのリンク処理を行わせることにより、1つの実行可能ファイルを作成させるリンカと、
該プロセッサに対し、該入力手段の操作に応じて、該第1〜n指示をそれぞれ該第1〜nコンパイラに与え、又は、該リンカに該ビルド指示を与えるアプリケーション開発統合マネージャと、
を有することを特徴とするアプリケーション開発装置。
A processor, storage means for storing a program, and input means;
The program
In response to the first to n instructions, the first to n source programs described in the first to n programming languages (where n is 2 or more) are transferred to the processors in the first to nth intermediate languages. First to n compilers to be translated into object programs;
First to n standard libraries called by each of the first to n source programs;
If the translation of the first to n source programs is completed in response to the build instruction for the processor, all reference destination addresses are determined based on the reference relationship between the first to n source programs. A linker that creates one executable file by determining the link processing order of the first to n object programs as described above, and performing the link processing of the first to n object programs in the link processing order,
An application development integration manager for giving the first to n instructions to the first to n compilers or giving the build instructions to the linker according to the operation of the input means to the processor;
An application development apparatus comprising:
該記憶手段は補助記憶装置を含み、
該アプリケーション開発統合マネージャは、該プロセッサに対し、該入力手段を介した、該第1〜nソースプログラムの該補助記憶装置への保存指示に応答して、それぞれ該第1〜nソースプログラムを該補助記憶装置へ保存させるとともに、それぞれ該第1〜n指示を該第1〜nコンパイラに与えさせる、
ことを特徴とする請求項1に記載のアプリケーション開発装置。
The storage means includes an auxiliary storage device,
The application development integration manager sends the first to n source programs to the processor in response to an instruction to store the first to n source programs in the auxiliary storage device via the input means. Storing in the auxiliary storage device and giving the first to n instructions to the first to n compilers, respectively.
The application development apparatus according to claim 1.
該アプリケーション開発統合マネージャは、該プロセッサに対し、第iソースプログラム(1≦i≦n)中のソースコードの修正、削除又は該第iソースプログラムへのソースコード追加の、該入力手段に対する確定操作に応答して、第iコンパイラに部分コンパイル指示を与えさせ、
該第iコンパイラは、該プロセッサに対し、該部分コンパイル指示に応答して、該修正、削除又は追加に係るソースファイルを翻訳させ、
該アプリケーション開発統合マネージャは、該プロセッサに対し、この翻訳の結果を該補助記憶装置に上書き保存させる、
ことを特徴とする請求項2に記載のアプリケーション開発装置。
The application development integration manager performs, with respect to the processor, a confirmation operation on the input means for modifying, deleting, or adding source code to the i-th source program in the i-th source program (1 ≦ i ≦ n). In response, the i-th compiler is given a partial compilation instruction,
The i-th compiler causes the processor to translate the source file for the correction, deletion or addition in response to the partial compilation instruction;
The application development integration manager causes the processor to overwrite and save the result of the translation in the auxiliary storage device.
The application development apparatus according to claim 2.
該1つの指示は、該ビルド指示であることを特徴とする請求項1乃至3のいずれか1つに記載のアプリケーション開発装置。   4. The application development apparatus according to claim 1, wherein the one instruction is the build instruction. 請求項1乃至4のいずれか1つに記載のアプリケーション開発装置の記憶手段に格納された該第1〜nコンパイラと、該第1〜n標準ライブラリと、該リンカとを有することを特徴とするアプリケーション開発ツール。   The first to n compilers, the first to n standard libraries, and the linker stored in the storage unit of the application development apparatus according to claim 1. Application development tool.
JP2012188719A 2012-08-29 2012-08-29 Application development device and application development tool Expired - Fee Related JP5813600B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012188719A JP5813600B2 (en) 2012-08-29 2012-08-29 Application development device and application development tool

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012188719A JP5813600B2 (en) 2012-08-29 2012-08-29 Application development device and application development tool

Publications (2)

Publication Number Publication Date
JP2014048706A true JP2014048706A (en) 2014-03-17
JP5813600B2 JP5813600B2 (en) 2015-11-17

Family

ID=50608374

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012188719A Expired - Fee Related JP5813600B2 (en) 2012-08-29 2012-08-29 Application development device and application development tool

Country Status (1)

Country Link
JP (1) JP5813600B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018169887A (en) * 2017-03-30 2018-11-01 東芝産業機器システム株式会社 Program manufacturing method and computer system updating method
JP2022550871A (en) * 2019-10-02 2022-12-05 インダストリー-アカデミック コーオペレーション ファウンデーション オブ スンチョン ナショナル ユニバーシティ coding education system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0377135A (en) * 1989-08-20 1991-04-02 Pfu Ltd Function rearranging system
JPH07121379A (en) * 1993-10-28 1995-05-12 Nec Software Ltd Plural languages mixing compiler
JP3088672U (en) * 2002-03-19 2002-09-20 船井電機株式会社 Compilation system
US20040194072A1 (en) * 2003-03-25 2004-09-30 Venter Barend H. Multi-language compilation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0377135A (en) * 1989-08-20 1991-04-02 Pfu Ltd Function rearranging system
JPH07121379A (en) * 1993-10-28 1995-05-12 Nec Software Ltd Plural languages mixing compiler
JP3088672U (en) * 2002-03-19 2002-09-20 船井電機株式会社 Compilation system
US20040194072A1 (en) * 2003-03-25 2004-09-30 Venter Barend H. Multi-language compilation

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6015022210; 鈴木純一: '"特集3 開発プラットフォームEclipse クイックガイド編"' JAVA Developer No.4 UNIX USER 2002年11月号増刊, 20021101, pp.90-97, ソフトバンクパブリッシング株式会社 *
JPN6015022211; 音成 幹、久我守弘、村上和彰、富田眞治: '"統合型並列化コンパイラ・システム"' 情報処理学会研究報告 Vol.91,No.23, 19910311, pp.1-8(91-ARC-87-7), 社団法人情報処理学会 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018169887A (en) * 2017-03-30 2018-11-01 東芝産業機器システム株式会社 Program manufacturing method and computer system updating method
JP2022550871A (en) * 2019-10-02 2022-12-05 インダストリー-アカデミック コーオペレーション ファウンデーション オブ スンチョン ナショナル ユニバーシティ coding education system

Also Published As

Publication number Publication date
JP5813600B2 (en) 2015-11-17

Similar Documents

Publication Publication Date Title
US8201143B2 (en) Dynamic mating of a modified user interface with pre-modified user interface code library
US9448770B2 (en) Source code editor
Raybaut Spyder-documentation
US9235433B2 (en) Speculative object representation
TW201337755A (en) Multiple national language supporting system and method of applications
US20070271553A1 (en) Method and system for translating assembler code to a target language
CN110058861B (en) Source code processing method and device, storage medium and electronic equipment
Bolin Closure: The definitive guide: Google tools to add power to your JavaScript
CN113064593B (en) Method and device for dynamic mobile APP, computer equipment and storage medium
US20090328000A1 (en) System, apparatus and method for programming a computing device
JP5813600B2 (en) Application development device and application development tool
US8875089B2 (en) Workspace model for interrelated projects
Botturi et al. Model-driven design for the development of multi-platform smartphone applications
Merino et al. Bacatá: a language parametric notebook generator (tool demo)
CN117813586A (en) Hot reloading running applications with unsaved source code changes
Lilis et al. An integrated implementation framework for compile‐time metaprogramming
JP2017091070A (en) Executable code generation program and executable code generation device
CN112379885A (en) Applet compiling method, device and equipment and readable storage medium
Himschoot et al. Introduction to WebAssembly and Blazor
US20170103011A1 (en) Information processing apparatus and system
JP2011180814A (en) Compiler apparatus, compiling method and program
Quinlan et al. Rose user manual: A tool for building source-to-source translators draft user manual (version 0.9. 11.115)
bin Uzayr et al. Browserify
Camilleri An IDE for the grammatical framework
JP2011090511A (en) Execution program, compiler, and device and method of correcting execution program operation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140722

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150730

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: 20150818

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150916

R150 Certificate of patent or registration of utility model

Ref document number: 5813600

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees