1.5.7 RDMLの「コンパイル」

LANSA ファンクションを実行するためには、RDML のコードを高レベル言語 HLL (High-Level Language) に変換し、さらにコンパイルして実行形式にする必要があります。RDMLはインタープリタ言語ではありません。最終的には実行環境ごとのオブジェクト・プログラムになるので、各プラットフォームの特性を活かした、性能の高いアプリケーションが得られます。

RDMLのコンパイル処理や、HLLによる中間コードの生成過程は、全て透過的です。とは言え、生成されたHLLコードを開発者が確認する必要はなく、これを編集してはいけません。LANSAはコード生成器ではなく、リポジトリと第4世代言語を基盤とした、完全なアプリケーション開発環境です。HLLコードをじかに修正すると、LANSA の高レベル・アプリケーション定義の整合性が崩れてしまいます。また、特定のプラットフォーム用にHLLコードを修正すれば、ほかのプラットフォームでは実行できなくなります。

LANSA は、ターゲットの実行プラットフォームに合わせ、それぞれの高レベル言語を使用します。例えば IBM i の場合、RPG、C/C++ により、もっとも実行速度が速くなります。Windows、Linux の場合、ANSI C/C++ が使用されます。Web アプリケーションでは、 C/C++、XHTML、XML、CGI/Apache プラグイン、IIS プラグインを使います。このように、複数の言語を使い分ける仕組みが、特定のプラットフォームに依存しないアプリケーション開発の鍵となっています。

LANSA はプラットフォーム依存のコンパイラを使用して、実行プログラムおよびオブジェクトを作成しますが、コンパイラによっては、大量の HLL コードの処理能力に違いがあることが分かりました。ある状況では、コンパイラは内部的な限界に達し、実行プログラムの生成に失敗します。このような状況を把握するには、以下について考慮する必要があります。