JP2014048706A - Application developing device and application developing tool - Google Patents
Application developing device and application developing tool Download PDFInfo
- 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
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
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
一方、Java用標準ライブラリ12以外の他のプログラミング言語の標準ライブラリも用いて実行可能プログラム15を作成すれば、Javaソースプログラム13の構成をより簡単化することが可能となる場合がある。
On the other hand, if the
そこで、プログラム開発環境ツールに更に、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)
同様にまた、プログラム開発環境ツールに更に、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)
実行可能プログラム15を生成する場合、従来では、ユーザがリンカリンカ1111に対し、オブジェクトプログラム14のみならずライブラリファイル25及び35も指定し、更に、オブジェクトプログラム14とライブラリファイル25とライブラリファイル35との間の参照関係を考慮してオブジェクトプログラム14、ライブラリファイル25及び35に対するリンク処理順も指定して、リンカリンカ1111を起動させることにより、実行可能プログラム15を作成していた。
When the
このような処理を開発段階で繰り返し行う必要があるので、開発効率が低下する原因となっていた。 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.
図2は、アプリケーション開発装置40のハードウエア構成を示す概略ブロック図である。
FIG. 2 is a schematic block diagram showing the hardware configuration of the
このハードウェア構成は、通常のパーソナルコンピュータであり、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
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
このアプリケーション開発ツールは、例えば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
また、これらとユーザとの間のインターフェイスとしてアプリケーション開発統合マネージャ56を備えている。この統合マネージャ56は、表示装置47に、アプリケーション開発のためのメニューを表示させ、ユーザによる入力装置46の操作を介して、表示画面を切り替え又は構成要素50〜55のうちの対応するものを起動させて、ユーザの要求に応え、その結果を表示装置47に表示させる。
Further, an application
図4は、図3中のコンパイラ53、リンカ54及び標準ライブラリ55に関係した部分のより詳細な概略ブロック図である。
FIG. 4 is a more detailed schematic block diagram of portions related to the
図3のコンパイラ53は、図4のJavaコンパイラ10、Pythonコンパイラ20及びJSPコンパイラ30を備え、図3の標準ライブラリ55は、Java用標準ライブラリ12、Python用標準ライブラリ22及びJSP用標準ライブラリ32を備えている。
The
以下、上記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
統合マネージャ56はこれに応答して、このプロジェクト名のディレクトリをワークスペース(ディレクトリ)内に生成し、Java、Python及びJSPのそれぞれのソースプログラムをビルドするのに必要な情報を記述したプロジェクトファイル(XMLファイル)57を生成し、これを、該プロジェクト名のディレクトリ内に配置する。このプロジェクトファイル57には、Javaコンパイラ10、Pythonコンパイラ20及びJSPコンパイラ30のそれぞれを起動可能にさせるための情報として、Java、Python及びJSPのそれぞれのNature要素が記述されている。
In response to this, the
統合マネージャ56はまた、ソースプログラム格納用ディレクトリsrc及びオブジェクトプログラム格納用ディレクトリbinを生成し、ディレクトリsrc内に、Java、Python及びJSPのソースプログラム格納用の子ディレクトリを生成し、ディレクトリbin内に、Java、Python及びJSPのオブジェクトプログラム格納用の子ディレクトリを生成する。
The
ユーザは、アプリケーション開発統合マネージャ56を介しテキストエディタ50を起動させて、Javaソースプログラム13、Pythonソースプログラム23及びJSPソースプログラム33を作成する。この際、それぞれJava用標準ライブラリ12、Python用標準ライブラリ22及びJSP用標準ライブラリ32内の必要なサブルーチンを呼び出す。
The user activates the
入力装置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
Javaソースプログラム13が補助記憶装置45に保存された後、ユーザがテキストエディタ50を介しJavaソースプログラム13のソースコードを修正、削除又は追加して、その操作を確定すると、すなわちリターンキーを押下し又はマウスをクリックすると(確定操作を行うと)、アプリケーション開発統合マネージャ56はこれに応答して、修正、削除又は追加に係るJavaソースファイルを補助記憶装置45内に上書き保存するとともに、図5の処理を開始する。
After the
(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
同様に、オブジェクトプログラム24は、補助記憶装置45に保存された後、ユーザがテキストエディタ50を介しPythonソースプログラム23のソースコードを修正、削除又は追加すると、アプリケーション開発統合マネージャ56はその確定操作に応答して、修正、削除又は追加に係るPythonソースファイルを補助記憶装置45内に上書き保存するとともに、図5の処理を開始する。
Similarly, after the
(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
また、オブジェクトプログラム34は、補助記憶装置45に保存された後、ユーザがテキストエディタ50を介しJSPソースプログラム33のソースコードを修正、削除又は追加すると、アプリケーション開発統合マネージャ56はその確定操作に応答して、修正、削除又は追加に係るJSPソースファイルを補助記憶装置45内に上書き保存するとともに、図5の処理を開始する。
Further, after the
(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
ここで、「ビルド」はソースプログラムをコンパイルし、その結果の複数のオブジェクトファイルをリンクする意味であるが、ソースプログラムが既にコンパイルされている場合、後者のみを行うことを意味する。すなわち、「ビルド」という表現のみ用いることで、ユーザによる操作を分かり易くしている。 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
(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
(S11)S10において、Javaソースプログラム13、Pythonソースプログラム23、JSPソースプログラム33のうちの任意の2つの間で、相互参照しているものがあった場合にはステップS12へ進み、そうでなければステップS13へ進む。
(S11) If there is a cross-reference between any two of the
(S12)相互参照エラーであることをアプリケーション開発統合マネージャ56に通知して図6の処理を終了する。統合マネージャ56はこれに応答して、表示装置47に、相互参照エラーであることを表示させる。
(S12) The application
(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
(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ソースプログラム33、Pythonソースプログラム23、Javaソースプログラム13それぞれについては、上記同様にソースファイル間の参照関係を調べてリンク処理順を決定し、リンク処理を行う。
For each of the
図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
本実施例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
また、ソースプログラム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
以上において、本発明の好適な実施例を説明したが、本発明には他にも種々の変形例が含まれ、上記実施例で述べた各構成要素の機能を実現する他の構成を用いたもの、当業者であればこれらの構成又は機能から想到するであろう他の構成も、本発明に含まれる。 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
42
44 DRAM
45
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コンパイラは、該プロセッサに対し、該部分コンパイル指示に応答して、該修正、削除又は追加に係るソースファイルを翻訳させ、
該アプリケーション開発統合マネージャは、該プロセッサに対し、この翻訳の結果を該補助記憶装置に上書き保存させる、
ことを特徴とする請求項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.
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)
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)
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 |
-
2012
- 2012-08-29 JP JP2012188719A patent/JP5813600B2/en not_active Expired - Fee Related
Patent Citations (4)
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)
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)
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 |