概要

今日、企業が必要としているものは、高品質のアプリケーションを開発したり 既存のアプリケーションの在庫を保守したりするうえでの、効率的で、一貫性があり、かつ簡単な手法です。アプリケーション開発においては、コードのモジュール化や共用、ワークステーション・ベースのフロントエンドでのアプリケーション開発などが 行われる傾向にあります。Language Environment® は、Language Environment に準拠したすべての高級言語 (HLL) プロダクトに共通の環境を提供します。ここで HLL とは、アセンブラー言語よりも高水準で、プログラム生成プログラムや照会言語よりも低水準のプログラム言語を指します。

従来、プログラム言語においては、異なるオペレーティング・システム間での呼び出しや、動作の整合性が制限されていました。この制限のため、1 つのアプリケーションで複数の言語を使用する場合には 制約がありました。また、プログラム言語では、データ構造および条件処理をインプリメントする場合と、システム・サービスおよびライブラリー・ルーチンとインターフェースをとる場 合とでは規則が異なっていました。

Language Environment は、関係するすべての HLL のための共通のランタイム環境を提供します。このプログラムは、ランタイム・メッセージ処理用、条件処理用、ストレージ管理用のルーチンなど 必須のランタイム・サービスを統合します。これらのサービスはすべて、プログラム言語相互間で整合性のある 一連のインターフェースを介して使用することができます。これらのインターフェースは、プログラマー自身で呼び出すことも、言語に固有のサービスを使用して呼び出すこともできます。Language Environment を使用すると、アプリケーションのプログラム言語の要件や システム・リソースの要件に関係なく、複数のアプリケーションに単一のランタイム環境を 使用することができます。

Language Environment の構成は以下のとおりです。
  • 基本ルーチン。プログラムの開始と停止、ストレージの割り振り、異なる言語で 書かれたプログラムとの通信、および条件の指示と処理などをサポートします。
  • 共通ライブラリー・サービス。システムで実行しているプログラムに 共通して必要な数学サービスや日付/時刻サービスなど。 これらの機能は、呼び出し可能サービスのライブラリーを介してサポートされます。
  • ランタイム・ライブラリーの言語固有部分。言語に固有の多くのルーチンが Language Environment サービスを呼び出すため、言語が 異なっても整合性のある動作が得られます。

図 1 は、Language Environment を構成する個々のコンポーネントを示しています。POSIX サポートは、Language Environment 基本プロダクトと C 言語に固有のライブラリーで提供されています。

図 1. Language Environment のコンポーネント
Language Environment は複数のコンポーネントで構成されています。
z/OS Language Environment は、以下の IBM® コンパイラー製品を使って生成されるアプリケー ションにとって前提条件となるランタイム環境です。
  • z/OS® XL C/C++
  • OS/390® C/C++
  • C/C++ コンパイラー MVS™/ESA 版
  • AD/Cycle C/370™ コンパイラー
  • VisualAge for Java、Enterprise Edition for OS/390
  • Enterprise COBOL for z/OS
  • Enterprise COBOL for z/OS and OS/390
  • COBOL for OS/390 & VM
  • COBOL for MVS & VM (旧名称 COBOL/370)
  • Enterprise PL/I for z/OS
  • Enterprise PL/I for z/OS and OS/390
  • VisualAge PL/I for OS/390
  • PL/I for MVS & VM
  • AD/Cycle PL/I for MVS & VM
  • VS FORTRAN および FORTRAN IV (互換モード)

リストされているすべてのコンパイラーが、現在サポートされているわけではありませんが、Language Environment は、それらが作成したコンパイル済みのオブジェクトをサポートします。

Language Environment では、 VS Fortran バージョン 2 のコンパイル済みコード (OS/390 のみ) をサポートしていますが、このようなコードに必須というわけではありません。

多くの場合、リストされているコンパイラーの以前のバージョンから生成されたコンパイル済みコードを実行できます。さらに、アセンブラー・ルーチンを Language Environment のもとで実行するための、一連のアセンブラー・マクロが提供されています。

IBM VisualAge® for Java™、Enterprise Edition for OS/390 (プログラム番号 5655-JAV) の詳細については、製品の資料を参照してください。

図 2 は、Language Environment が作成する共通環境を示しています。

図 2. 共通ランタイム環境
Language Environment の共通ランタイム・ライブラリーは、ソース・コードおよびコンパイラーで構成されています。

図 3 は、Language Environment が AMODE 64 用に作成する共通環境を示しています。

図 3. AMODE 64 用の 共通ランタイム環境
AMODE 64 用 Language Environment の共通ランタイム環境には、ソース・コードおよびコンパイラーが含まれています。

詳細については、「z/OS Language Environment 64 ビット仮想アドレッシング・モード向けプログラミング・ガイド」を参照してください。

Language Environment は 、C、C++、またはLanguage Environment 準拠の アセンブラーで作成さ れたアプリケーションの 64 ビット・アドレッシングをサポートします。

64 ビット・アドレッシングをサポートする以前の Language Environment のアプリケ ーションは、COBOL、PL/I、C、C++、Fortran、または Language Environment 準拠のアセンブラー を使用して作成されていました。これらのアプリケーションは、24 ビット・アドレッシング・モード (AMODE 24) または 31 ビット・アドレッシング・モード (AMODE 31) のいずれかで実行されました。Language Environment には、これらの 2 つの アドレッシング・モード間に互換性を持たせるためのサポートが幾つか組み込まれまし た。 AMODE 24 は、長さが 24 ビットのアドレスを使用し、最大 16 メガバイトまでの仮想ストレージをアクセスできます。これは、 「16 MB 境界」と呼ばれることがあります。AMODE 31 のアプリケーションは、 長さが 31 ビットのアドレスを使用し、最大 2 ギガバイトまでの仮想ストレージをアクセスできます。31 ビット・アドレッシングでのこの制限を、 「2 GB 境界」と呼びます。これら 2 つの用語は、 アドレス可能ストレージの文脈内では、「境界」と短縮形で表示されることがあります。

Language Environment がサポートする 64 ビット・アドレッシング・モード (AMODE 64) のアドレスの長さは 64 ビットで、最大 16 エクサバイトまでの仮想ストレージをアクセスできます。これは、きわめて高位の アドレスであり、下記に述べる非常に重要な考慮事項が幾つかあります。
  • AMODE 24 または AMODE 31 を使用する既存のまたは新規の Language Environment アプリケーションは、変更せずに継続して実行 できます。 これらは、64 ビット・アドレッシングの導入以前からあった同じ Language Environment サービスを使用して実行され、これらのサービスのサポートと拡張は継続 されます。
  • AMODE 64 を使用する Language Environment アプリケーションは、AMODE 24 または AMODE 31 を使用するアプリケーションと互換性がありません。 AMODE 64 のアプリケーションと、AMODE 24 または AMODE 31 のアプリケー ションとの間の唯一の通信方法は、プロセス間またはアドレス・スペース間で通 信する手段のみになります。 ただし、AMODE 64 を使用する Language Environment アプリケーションは、AMODE 24 または AMODE 31 を使用する既存アプリケーションと共に、同じ物理構成上で実行できます。
  • 必要であれば、AMODE 64 のアプリケーションをサポートする Language Environment の新規ランタイム・オプションも使えます。新規ランタイム・オプションは、 主に、2 GB 境界より上にある新規スタックとヒープ・ストレージを サポートします。既存の他のすべてのランタイム・オプションには、引き続き AMODE 24 と AMODE 31 アプリケーション向けサポートと拡張が行なわれます。