(57)【要約】【課題】複数のプログラミング言語を用いてアプリケーションを開発する場合に、ユーザのビルド操作を簡略化することにより、開発効率をより向上させる。【解決手段】コンパイラ１０、２０、３０により、複数のプログラミング言語で記述されたソースプログラム１３、２３、３３が、互いに共通の中間言語のオブジェクトプログラム１４、２４、３４に翻訳される。リンカ５４により、ソースプログラム１３、２３、３３間での参照関係に基づき、全ての参照先アドレスが定まるようにオブジェクトプログラム１４、２４、３４のリンク処理順が決定され、この順にリンク処理が行われる。【選択図】図４
2014048706.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、プログラムが格納された記憶手段と、入力手段とを有し、
該プログラムは、
該プロセッサに対し、第１〜ｎ指示に応答して、それぞれ第１〜ｎプログラミング言語（ｎは２以上）で記述された第１〜ｎソースプログラムを、互いに共通の中間言語の第１〜ｎオブジェクトプログラムに翻訳させる第１〜ｎコンパイラと、
該第１〜ｎソースプログラムのそれぞれで呼び出される第１〜ｎ標準ライブラリと、
該プロセッサに対し、ビルド指示に応答して、該第１〜ｎソースプログラムの翻訳が完了していれば、該第１〜ｎソースプログラム間での参照関係に基づき、全ての参照先アドレスが定まるように該第１〜ｎオブジェクトプログラムのリンク処理順を決定させ、該リンク処理順に、該第１〜ｎオブジェクトプログラムのリンク処理を行わせることにより、１つの実行可能ファイルを作成させるリンカと、
該プロセッサに対し、該入力手段の操作に応じて、該第１〜ｎ指示をそれぞれ該第１〜ｎコンパイラに与え、又は、該リンカに該ビルド指示を与えるアプリケーション開発統合マネージャと、
を有することを特徴とするアプリケーション開発装置。
【請求項２】
該記憶手段は補助記憶装置を含み、
該アプリケーション開発統合マネージャは、該プロセッサに対し、該入力手段を介した、該第１〜ｎソースプログラムの該補助記憶装置への保存指示に応答して、それぞれ該第１〜ｎソースプログラムを該補助記憶装置へ保存させるとともに、それぞれ該第１〜ｎ指示を該第１〜ｎコンパイラに与えさせる、
ことを特徴とする請求項１に記載のアプリケーション開発装置。
【請求項３】
該アプリケーション開発統合マネージャは、該プロセッサに対し、第ｉソースプログラム（１≦ｉ≦ｎ）中のソースコードの修正、削除又は該第ｉソースプログラムへのソースコード追加の、該入力手段に対する確定操作に応答して、第ｉコンパイラに部分コンパイル指示を与えさせ、
該第ｉコンパイラは、該プロセッサに対し、該部分コンパイル指示に応答して、該修正、削除又は追加に係るソースファイルを翻訳させ、
該アプリケーション開発統合マネージャは、該プロセッサに対し、この翻訳の結果を該補助記憶装置に上書き保存させる、
ことを特徴とする請求項２に記載のアプリケーション開発装置。
【請求項４】
該１つの指示は、該ビルド指示であることを特徴とする請求項１乃至３のいずれか１つに記載のアプリケーション開発装置。
【請求項５】
請求項１乃至４のいずれか１つに記載のアプリケーション開発装置の記憶手段に格納された該第１〜ｎコンパイラと、該第１〜ｎ標準ライブラリと、該リンカとを有することを特徴とするアプリケーション開発ツール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプログラミング言語をそれぞれコンパイルして互いに共通の中間言語にしリンクして実行可能ファイルを生成するアプリケーション開発装置及びアプリケーション開発ツールに関する。
【背景技術】
【０００２】
図１は、従来における複数のプログラミング言語を用いたアプリケーション開発を説明するための概略ブロック図である。
【０００３】
例えば、プログラミング言語としてＪａｖａ（登録商標）のみを用いる場合には、この図の最下段に示すように、Ｊａｖａコンパイラ１０と、リンカリンカ１１１１と、Ｊａｖａ用標準ライブラリ１２とを備え、不図示のエディタで作成したＪａｖａソースプログラム１３をＪａｖａコンパイラ１０で翻訳して、バイトコード列のオブジェクトプログラム１４を生成する。オブジェクトプログラム１４は、Ｊａｖａソースプログラム１３の複数のソースファイルのそれぞれに対応したＣｌａｓｓファイルからなり、Ｃｌａｓｓファイル間の参照がシンボルで表されてリローケータブルとなっている。リンカリンカ１１１１は、オブジェクトプログラム１４のこれらＣｌａｓｓファイルに基づいて、アドレス未定のシンボルの相対アドレス（ＯＳが、メモリ上に配置する先頭アドレスを決定し、この相対アドレスが該先頭アドレスに加算される。）を決定して、実行可能プログラム１５を生成する。Ｊａｖａ用標準ライブラリ１２は動的リンクライブラリであり、リンカリンカ１１１１によりその参照情報が実行可能プログラム１５内に組み込まれる（以下、他の標準ライブラリについても同様）。
【０００４】
一方、Ｊａｖａ用標準ライブラリ１２以外の他のプログラミング言語の標準ライブラリも用いて実行可能プログラム１５を作成すれば、Ｊａｖａソースプログラム１３の構成をより簡単化することが可能となる場合がある。
【０００５】
そこで、プログラム開発環境ツールに更に、Ｐｙｔｈｏｎ（正確にはＪｙｔｈｏｎ、以下同様）コンパイラ２０、リンカ２１及びＰｙｔｈｏｎ用標準ライブラリ２２を備え、Ｊａｖａソースプログラム１３の一部をＰｙｔｈｏｎソースプログラム２３で置き換え、Ｐｙｔｈｏｎソースファイル２３においてＰｙｔｈｏｎ用標準ライブラリ２２中の必要なものを呼び出し、上記同様に、Ｐｙｔｈｏｎソースプログラム２３をＰｙｔｈｏｎコンパイラ２０で翻訳して、バイトコード列のオブジェクトプログラム２４を生成する。オブジェクトプログラム２４は、Ｐｙｔｈｏｎソースプログラム２３の複数のソースファイルのそれぞれに対応したＣｌａｓｓファイルからなり、Ｃｌａｓｓファイル間の参照がシンボルで表されてリローケータブルとなっている。リンカ２１は、オブジェクトプログラム２４のこれらＣｌａｓｓファイルに基づいて、アドレス未定のシンボルの相対アドレスを決定して、ライブラリファイル２５を生成する。
【０００６】
同様にまた、プログラム開発環境ツールに更に、ＪＳＰ（JavaServer Pages）コンパイラ３０、リンカ３１及びＪＳＰ用標準ライブラリ３２を備え、Ｊａｖａソースプログラム１３の一部をＪＳＰソースプログラム３３で置き換え、ＪＳＰソースプログラム３３においてＪＳＰ用標準ライブラリ３２中の必要なものを呼び出し、ＪＳＰソースプログラム３３をＪＳＰコンパイラ３０で翻訳して、バイトコード列のオブジェクトプログラム３４を生成する。オブジェクトプログラム３４は、ＪＳＰソースプログラム３３の複数のソースファイルのそれぞれに対応したＣｌａｓｓファイルからなり、Ｃｌａｓｓファイル間の参照がシンボルで表されてリローケータブルとなっている。リンカ３１は、オブジェクトプログラム３４のこれらＣｌａｓｓファイルに基づいて、アドレス未定のシンボルの相対アドレスを決定して、ライブラリファイル３５を生成する。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Jython, ウィキペディア, http://ja.wikipedia.org/wiki/Jython
【非特許文献２】JSP, ウィキペディア, http://ja.wikipedia.org/wiki/JavaServer_Pages
【非特許文献３】Eclipse, ウィキペディア, http://ja.wikipedia.org/wiki/Eclipse
【発明の概要】
【発明が解決しようとする課題】
【０００８】
実行可能プログラム１５を生成する場合、従来では、ユーザがリンカリンカ１１１１に対し、オブジェクトプログラム１４のみならずライブラリファイル２５及び３５も指定し、更に、オブジェクトプログラム１４とライブラリファイル２５とライブラリファイル３５との間の参照関係を考慮してオブジェクトプログラム１４、ライブラリファイル２５及び３５に対するリンク処理順も指定して、リンカリンカ１１１１を起動させることにより、実行可能プログラム１５を作成していた。
【０００９】
このような処理を開発段階で繰り返し行う必要があるので、開発効率が低下する原因となっていた。
【００１０】
本発明の目的は、このような問題点に鑑み、複数のプログラミング言語を用いてアプリケーションを開発する場合に、ユーザのビルド操作を簡略化することにより、開発効率をより向上させることが可能なアプリケーション開発装置及びアプリケーション開発ツールを提供することにある。
【課題を解決するための手段】
【００１１】
本発明によるアプリケーション開発装置の第１態様では、プロセッサと、プログラムが格納された記憶手段と、入力手段とを有し、
該プログラムは、
該プロセッサに対し、第１〜ｎ指示に応答して、それぞれ第１〜ｎプログラミング言語（ｎは２以上）で記述された第１〜ｎソースプログラムを、互いに共通の中間言語の第１〜ｎオブジェクトプログラムに翻訳させる第１〜ｎコンパイラと、
該第１〜ｎソースプログラムのそれぞれで呼び出される第１〜ｎ標準ライブラリと、
該プロセッサに対し、ビルド指示に応答して、該第１〜ｎソースプログラムの翻訳が完了していれば、該第１〜ｎソースプログラム間での参照関係に基づき、全ての参照先アドレスが定まるように該第１〜ｎオブジェクトプログラムのリンク処理順を決定させ、該リンク処理順に、該第１〜ｎオブジェクトプログラムのリンク処理を行わせることにより、１つの実行可能ファイルを作成させるリンカと、
該プロセッサに対し、該入力手段の操作に応じて、該第１〜ｎ指示をそれぞれ該第１〜ｎコンパイラに与え、又は、該リンカに該ビルド指示を与えるアプリケーション開発統合マネージャとを有する。
【００１２】
本発明によるアプリケーション開発装置の第２態様では、第１態様において、該記憶手段は補助記憶装置を含み、
該アプリケーション開発統合マネージャは、該プロセッサに対し、該入力手段を介した、該第１〜ｎソースプログラムの該補助記憶装置への保存指示に応答して、それぞれ該第１〜ｎソースプログラムを該補助記憶装置へ保存させるとともに、それぞれ該第１〜ｎ指示を該第１〜ｎコンパイラに与えさせる。
【００１３】
本発明によるアプリケーション開発装置の第３態様では、第２態様において、該アプリケーション開発統合マネージャは、該プロセッサに対し、第ｉソースプログラム（１≦ｉ≦ｎ）中のソースコードの修正、削除又は該第ｉソースプログラムへのソースコード追加の、該入力手段に対する確定操作に応答して、第ｉコンパイラに部分コンパイル指示を与えさせ、
該第ｉコンパイラは、該プロセッサに対し、該部分コンパイル指示に応答して、該修正、削除又は追加に係るソースファイルを翻訳させ、
該アプリケーション開発統合マネージャは、該プロセッサに対し、この翻訳の結果を該補助記憶装置に上書き保存させる。
【発明の効果】
【００１４】
上記第１態様の構成によれば、第１〜ｎコンパイラがプロセッサに対し、第１〜ｎ指示に応答して、それぞれ第１〜ｎプログラミング言語で記述された第１〜ｎソースプログラムを、互いに共通の中間言語の第１〜ｎオブジェクトプログラムに翻訳させ、リンカが該プロセッサに対し、ビルド指示に応答して、該第１〜ｎソースプログラムの翻訳が完了していれば、該第１〜ｎソースプログラム間での参照関係に基づき、全ての参照先アドレスが定まるように該第１〜ｎオブジェクトプログラムのリンク処理順を決定させ、該リンク処理順に、該第１〜ｎオブジェクトプログラムのリンク処理を行わせることにより、１つの実行可能ファイルを作成させるので、ユーザは複数のプログラミング言語を用いて効率よくアプリケーションを開発することができるという効果を奏する。
【００１５】
上記第３態様の構成によれば、第ｉソースプログラム中のソースコードの修正、削除又は該第ｉソースプログラムへのソースコード追加の確定操作により、該修正、削除又は追加に係るソースファイルが翻訳されるので、ユーザはさらに効率よくアプリケーションを開発することができるという効果を奏する。
【００１６】
本発明の他の目的、特徴的な構成及び効果は、以下の説明を特許請求の範囲及び図面の記載と関係づけて読むことにより明らかになる。 
【図面の簡単な説明】
【００１７】
【図１】従来における複数のプログラミング言語を用いたアプリケーション開発を説明するための概略ブロック図である。
【図２】本発明の実施例１に係るアプリケーション開発装置のハードウエア構成を示す概略ブロック図である。
【図３】複数のプログラミング言語用のプラグインモジュールが組み込まれたＩＤＥツールの概略機能ブロック図である。
【図４】図３中のコンパイラ、リンカ及び標準ライブラリに関係した部分のより詳細な概略ブロック図である。
【図５】自動実行される部分コンパイル処理の概略フローチャートである。
【図６】リンク処理を示す概略フローチャートである。
【図７】（Ａ）〜（Ｃ）は、図６のステップＳ１０の処理の説明図である。
【図８】図６のステップＳ１４のリンク処理の説明図である。
【実施例１】
【００１８】
図２は、アプリケーション開発装置４０のハードウエア構成を示す概略ブロック図である。
【００１９】
このハードウェア構成は、通常のパーソナルコンピュータであり、ＭＰＵ（Micro-Processing Unit）４１がインターフェイス４２を介してＰＲＯＭ（Programmable Read Only Memory）４３、ＤＲＡＭ（Dynamic Random Access Memory）４４、補助記憶装置４５、入力装置４６及び表示装置４７に結合されている。図１では、簡単化の為に、複数種のインターフェイスを１つのブロック４２で表している。
【００２０】
ＰＲＯＭ４３は、例えばフラッシュメモリであり、ＢＩＯＳ（Basic Input/Output System）が格納されている。ＤＲＡＭ４４は、主記憶装置として用いられる。補助記憶装置４５には、ＯＳ（Operating System）、各種ドライバ及びアプリケーション開発ツールが格納されている。入力装置は、例えばキーボード及びポインティングデバイスである。
【００２１】
このアプリケーション開発ツールは、例えばｅｃｌｉｐｓｅのような統合開発環境（ＩＤＥ）ツールと、これに組み込まれる、複数のプログラミング言語でアプリケーションを開発できるようにするためのそれぞれのプラグインモジュールとを含んでいる。
【００２２】
図３は、上記プラグインモジュールが組み込まれたＩＤＥツールの概略機能ブロック図である。
【００２３】
このツールは、複数のプログラミング言語のそれぞれに対応したテキストエディタ５０、デザイナ５１、デバッガ５２、コンパイラ５３、リンカ５４及び標準ライブラリ５５を備えている。ここに、デザイナ５１は、標準要素をドラッグ＆ドロップでパネル上に配置することによりユーザインターフェイスを作成するプログラムである。
【００２４】
また、これらとユーザとの間のインターフェイスとしてアプリケーション開発統合マネージャ５６を備えている。この統合マネージャ５６は、表示装置４７に、アプリケーション開発のためのメニューを表示させ、ユーザによる入力装置４６の操作を介して、表示画面を切り替え又は構成要素５０〜５５のうちの対応するものを起動させて、ユーザの要求に応え、その結果を表示装置４７に表示させる。
【００２５】
図４は、図３中のコンパイラ５３、リンカ５４及び標準ライブラリ５５に関係した部分のより詳細な概略ブロック図である。
【００２６】
図３のコンパイラ５３は、図４のＪａｖａコンパイラ１０、Ｐｙｔｈｏｎコンパイラ２０及びＪＳＰコンパイラ３０を備え、図３の標準ライブラリ５５は、Ｊａｖａ用標準ライブラリ１２、Ｐｙｔｈｏｎ用標準ライブラリ２２及びＪＳＰ用標準ライブラリ３２を備えている。
【００２７】
以下、上記ＩＤＥツールとしてｅｃｌｉｐｓｅを用いた場合を説明する。
【００２８】
ユーザは、入力装置４６を操作して、統合マネージャ５６を介し、プロジェクトを作成する。この際、統合マネージャ５６に対し、プロジェクト名を指定するとともに、プログラミング言語としてＪａｖａ、Ｐｙｔｈｏｎ及びＪＳＰを指定する。
【００２９】
統合マネージャ５６はこれに応答して、このプロジェクト名のディレクトリをワークスペース（ディレクトリ）内に生成し、Ｊａｖａ、Ｐｙｔｈｏｎ及びＪＳＰのそれぞれのソースプログラムをビルドするのに必要な情報を記述したプロジェクトファイル（ＸＭＬファイル）５７を生成し、これを、該プロジェクト名のディレクトリ内に配置する。このプロジェクトファイル５７には、Ｊａｖａコンパイラ１０、Ｐｙｔｈｏｎコンパイラ２０及びＪＳＰコンパイラ３０のそれぞれを起動可能にさせるための情報として、Ｊａｖａ、Ｐｙｔｈｏｎ及びＪＳＰのそれぞれのＮａｔｕｒｅ要素が記述されている。
【００３０】
統合マネージャ５６はまた、ソースプログラム格納用ディレクトリｓｒｃ及びオブジェクトプログラム格納用ディレクトリｂｉｎを生成し、ディレクトリｓｒｃ内に、Ｊａｖａ、Ｐｙｔｈｏｎ及びＪＳＰのソースプログラム格納用の子ディレクトリを生成し、ディレクトリｂｉｎ内に、Ｊａｖａ、Ｐｙｔｈｏｎ及びＪＳＰのオブジェクトプログラム格納用の子ディレクトリを生成する。
【００３１】
ユーザは、アプリケーション開発統合マネージャ５６を介しテキストエディタ５０を起動させて、Ｊａｖａソースプログラム１３、Ｐｙｔｈｏｎソースプログラム２３及びＪＳＰソースプログラム３３を作成する。この際、それぞれＪａｖａ用標準ライブラリ１２、Ｐｙｔｈｏｎ用標準ライブラリ２２及びＪＳＰ用標準ライブラリ３２内の必要なサブルーチンを呼び出す。
【００３２】
入力装置４６を操作して、アプリケーション開発統合マネージャ５６を介しＪａｖａソースプログラム１３、Ｐｙｔｈｏｎソースプログラム２３、を補助記憶装置４５に保存させると、アプリケーション開発統合マネージャ５６はこれに応答して、それぞれＪａｖａコンパイラ１０、Ｐｙｔｈｏｎコンパイラ２０及びＪＳＰコンパイラ３０をバックグランドで起動させることにより、Ｊａｖａソースプログラム１３、Ｐｙｔｈｏｎソースプログラム２３及びＪＳＰソースプログラム３３を翻訳して、オブジェクトプログラム１４，２４及び３４を生成し、これらを補助記憶装置４５内の上記複数のディレクトリのうちの対応するものの中に保存する。なお、このＪＳＰコンパイラ３０は、ＪＳＰソースプログラム３３をＪａｖａサーブレットに変換した後、複数のｃｌａｓｓファイルからなるオブジェクトプログラム３４を生成する。
【００３３】
Ｊａｖａソースプログラム１３が補助記憶装置４５に保存された後、ユーザがテキストエディタ５０を介しＪａｖａソースプログラム１３のソースコードを修正、削除又は追加して、その操作を確定すると、すなわちリターンキーを押下し又はマウスをクリックすると（確定操作を行うと）、アプリケーション開発統合マネージャ５６はこれに応答して、修正、削除又は追加に係るＪａｖａソースファイルを補助記憶装置４５内に上書き保存するとともに、図５の処理を開始する。
【００３４】
（Ｓ０）これら修正、削除又は追加に係るＪａｖａソースファイルをＪａｖａコンパイラ１０に対しバックグラウンドで翻訳させ、すなわちＪａｖａソースプログラム１３を部分翻訳させ、そのＣｌａｓｓファイルを補助記憶装置４５内に上書き保存させる。
【００３５】
同様に、オブジェクトプログラム２４は、補助記憶装置４５に保存された後、ユーザがテキストエディタ５０を介しＰｙｔｈｏｎソースプログラム２３のソースコードを修正、削除又は追加すると、アプリケーション開発統合マネージャ５６はその確定操作に応答して、修正、削除又は追加に係るＰｙｔｈｏｎソースファイルを補助記憶装置４５内に上書き保存するとともに、図５の処理を開始する。
【００３６】
（Ｓ０）これら修正、削除又は追加に係るＰｙｔｈｏｎソースファイルをＰｙｔｈｏｎコンパイラ２０に対しバックグラウンドで翻訳させ、すなわちＰｙｔｈｏｎソースプログラム２３を部分翻訳させ、そのＣｌａｓｓファイルを補助記憶装置４５内に上書き保存させる。
【００３７】
また、オブジェクトプログラム３４は、補助記憶装置４５に保存された後、ユーザがテキストエディタ５０を介しＪＳＰソースプログラム３３のソースコードを修正、削除又は追加すると、アプリケーション開発統合マネージャ５６はその確定操作に応答して、修正、削除又は追加に係るＪＳＰソースファイルを補助記憶装置４５内に上書き保存するとともに、図５の処理を開始する。
【００３８】
（Ｓ０）これら修正、削除又は追加に係るＪＳＰソースファイルをＪＳＰコンパイラ３０に対しバックグラウンドで翻訳させ、すなわちＪＳＰソースプログラム３３を部分翻訳させ、そのＣｌａｓｓファイルを補助記憶装置４５内に上書き保存させる。
【００３９】
ここで、「ビルド」はソースプログラムをコンパイルし、その結果の複数のオブジェクトファイルをリンクする意味であるが、ソースプログラムが既にコンパイルされている場合、後者のみを行うことを意味する。すなわち、「ビルド」という表現のみ用いることで、ユーザによる操作を分かり易くしている。
【００４０】
次に、ユーザが入力装置４６を操作してアプリケーション開発統合マネージャ５６にビルド指示を与えると、統合マネージャ５６はこれに応答して、ソースプログラムが既にコンパイルされていると判断した場合、リンカ５４を起動させる。リンカ５４はこれに応答して、図６に示す処理を開始する。
【００４１】
（Ｓ１０）Ｊａｖａソースプログラム１３，Ｐｙｔｈｏｎソースプログラム２３、ＪＳＰソースプログラム３３の間の参照関係を調べる。例えば図７（Ａ）に示すように、Ｊａｖａソースプログラム１３がＰｙｔｈｏｎソースプログラム２３、ＪＳＰソースプログラム３３内のサブルーチンを呼び出し、Ｐｙｔｈｏｎソースプログラム２３がＪＳＰソースプログラム３３内のサブルーチンを呼び出している場合、Ｊａｖａソースプログラム１３はＰｙｔｈｏｎソースプログラム２３，ＪＳＰソースプログラム３３を参照している。ＪＳＰソースプログラム３３はＪａｖａソースプログラム１３及びＰｙｔｈｏｎソースプログラム２３の何れも参照していない。
【００４２】
（Ｓ１１）Ｓ１０において、Ｊａｖａソースプログラム１３、Ｐｙｔｈｏｎソースプログラム２３、ＪＳＰソースプログラム３３のうちの任意の２つの間で、相互参照しているものがあった場合にはステップＳ１２へ進み、そうでなければステップＳ１３へ進む。
【００４３】
（Ｓ１２）相互参照エラーであることをアプリケーション開発統合マネージャ５６に通知して図６の処理を終了する。統合マネージャ５６はこれに応答して、表示装置４７に、相互参照エラーであることを表示させる。
【００４４】
（Ｓ１３）ステップＳ１０での参照関係に基づいて、プログラミング言語単位でのリンク処理順を決定する。
【００４５】
すなわち、例えば図７（Ａ）の場合、Ｊａｖａソースプログラム１３、Ｐｙｔｈｏｎソースプログラム２３及びＪＳＰソースプログラム３３のうち、外部参照していないＪＳＰソースプログラム３３を第１位とし、次に、このＪＳＰソースプログラム３３を除いたＪａｖａソースプログラム１３及びＰｙｔｈｏｎソースプログラム２３について図７（Ｂ）に示すように、外部参照していないＰｙｔｈｏｎソースプログラム２３を第２位とし、次にこれを除いたＪａｖａソースプログラム１３を第３位とする。図７（Ｃ）の場合には、Ｊａｖａソースプログラム１３、Ｐｙｔｈｏｎソースプログラム２３及びＪＳＰソースプログラム３３のうち、外部参照していないＰｙｔｈｏｎソースプログラム２３及びＪＳＰソースプログラム３３を第１位とし、次に、このＰｙｔｈｏｎソースプログラム２３、ＪＳＰソースプログラム３３を除いたＪａｖａソースプログラム１３を第２位とする。
【００４６】
（Ｓ１４）ステップＳ１４で決定した順にリンク処理を実行する。同順位のものについては、いずれを先にリンク処理してもよい。
【００４７】
すなわち、図７（Ａ）の場合、ＪＳＰソースプログラム３３、Ｐｙｔｈｏｎソースプログラム２３及びＪａｖａソースプログラム１３の順にリンク処理を実行し、図７（Ｃ）の場合、Ｐｙｔｈｏｎソースプログラム２３、ＪＳＰソースプログラム３３及びＪａｖａソースプログラム１３の順に又はＪＳＰソースプログラム３３、Ｐｙｔｈｏｎソースプログラム２３及びＪａｖａソースプログラム１３の順にリンク処理を実行する。
【００４８】
ＪＳＰソースプログラム３３、Ｐｙｔｈｏｎソースプログラム２３、Ｊａｖａソースプログラム１３それぞれについては、上記同様にソースファイル間の参照関係を調べてリンク処理順を決定し、リンク処理を行う。
【００４９】
図８において、バイトコード群（静的リンクライブラリ）３５は、図４のオブジェクトプログラム３４についてＣｌａｓｓファイル毎のリンク処理順を決定した後にリンク処理を行って、未定のシンボルのアドレスを決定し、ＪＳＰ標準ライブラリ３２の参照情報を追加し、全体をアドレス順に並べたものを示している。同様に、図８のバイトコード群２５は、図４のオブジェクトプログラム２４についてＣｌａｓｓファイル毎のリンク処理順を決定した後にリンク処理を行って、未定のシンボルのアドレスを決定し、Ｐｙｔｈｏｎ標準ライブラリ２２の参照情報を追加し、全体をアドレス順に並べたものを示している。図８のバイトコード群１６は、図４のオブジェクトプログラム１４についてＣｌａｓｓファイル毎のリンク処理順を決定した後にリンク処理を行って、未定のシンボルのアドレスを決定し、Ｊａｖａ標準ライブラリ１２の参照情報を追加し、全体をアドレス順に並べたものを示している。図８の実行可能プログラム１５は、このようなバイトコード群３５、２５及び１６間のリンク処理により、未定シンボルのアドレスを決定してバイトコード順に配列したものである。
【００５０】
本実施例１によれば、複数のコンパイラＪａｖａコンパイラ１０１０、２０、３０がプロセッサ４１に対し、入力装置４６を介した指示に応答して、複数のプログラミング言語で記述されたソースプログラム１３、２３、３３を、互いに共通の中間言語のオブジェクトプログラム１４、２４、３４に翻訳させ、リンカ５４がプロセッサ４１に対し、ビルド指示に応答して、ソースプログラム１３、２３、３３間での参照関係に基づき、全ての参照先アドレスが定まるようにオブジェクトプログラム１４、２４、３４のリンク処理順を決定させ、該リンク処理順に、オブジェクトプログラム１４、２４、３４のリンク処理を行わせることにより、１つの実行可能ファイル１５を作成させるので、ユーザは複数のプログラミング言語を用いて効率よくアプリケーションを開発することができるという効果を奏する。
【００５１】
また、ソースプログラム１３、２３、３３中の任意のソースコードの修正、削除又は追加の確定操作により、該修正、削除又は追加に係るソースファイルが自動翻訳されるので、ユーザはさらに効率よくアプリケーションを開発することができるという効果を奏する。
【００５２】
以上において、本発明の好適な実施例を説明したが、本発明には他にも種々の変形例が含まれ、上記実施例で述べた各構成要素の機能を実現する他の構成を用いたもの、当業者であればこれらの構成又は機能から想到するであろう他の構成も、本発明に含まれる。
【００５３】
例えば、プログラミング言語は、上記のものに限定されず、共通の中間言語に翻訳される２以上のものであればよい。
【符号の説明】
【００５４】
１０  Ｊａｖａコンパイラ
１１、２１、３１  リンカ
１２  Ｊａｖａ用標準ライブラリ
１３  Ｊａｖａソースプログラム
１４、２４、３４  オブジェクトプログラム
１５  実行可能プログラム
１６  バイトコード群
２０  Ｐｙｔｈｏｎコンパイラ
２２  Ｐｙｔｈｏｎ用標準ライブラリ
２３  Ｐｙｔｈｏｎソースプログラム
３０  ＪＳＰコンパイラ
３２  ＪＳＰ用標準ライブラリ
３３  ＪＳＰソースプログラム
４０  アプリケーション開発装置
４１  ＭＰＵ
４２  インターフェイス
４３  ＰＲＯＭ
４４  ＤＲＡＭ
４５  補助記憶装置
４６  入力装置
４７  表示装置
５０  テキストエディタ
５１  デザイナ
５２  デバッガ
５３  コンパイラ
５４  リンカ
５５  標準ライブラリ
５６  アプリケーション開発統合マネージャ
【図１】
2014048706.tif 000003
【図２】
2014048706.tif 000004
【図３】
2014048706.tif 000005
【図４】
2014048706.tif 000006
【図５】
2014048706.tif 000007
【図６】
2014048706.tif 000008
【図７】
2014048706.tif 000009
【図８】
2014048706.tif 000010