標準報告書(TR) TR X 0005-1:2006
分散オブジェクト指向のプログラム言語及びその環境 — 第1部: Java言語規定
Distributed Object-Oriented Programming Language and its Environment — Part 1:
The Java Language Specification
序文
このTRは,1996年にSun Microsystems, Inc.から公表され,改訂を続けているThe Java Language Specificationを同社の承認のもとに,技術的内容を変更することなく翻訳した標準報告書である。翻訳は,2000年4月の版に基づく。
なお,このTRに含まれる商標又は標章は,それの所有者の商標又は標章である。
0. 標準報告書としての導入
原規定は,ISO又はJISの様式に基づいてなく,適用範囲及び定義を含んでいない。原規定の参照を容易にするために章・節等の番号を変更せず,しかも適用範囲及び定義を含めて通常のTRの様式に近づけることを目的として,このTRでは,これらの内容をまとめて"0. 標準報告書としての導入"とした。
0.1 適用範囲
この標準報告書(TR)は,Java言語を規定する。
Java言語の利用環境に必要なクラスライブラリ,仮想計算機,応用プログラムインタフェース(API)などについては,別途規定する。
0.2 定義
この標準報告書(TR)で用いる主な用語の定義は,次による。
備考 ここでは,簡単のため Java言語を Javaと呼ぶ。
-
抽象クラス(abstract class)
- 一つ以上の抽象メソッドを含むクラスであり,したがって決してインスタンス化され得ない。抽象クラスは,次のとおりに規定される。つまり,他のクラスが抽象クラスを拡張でき,抽象メソッドを実装することによって抽象クラスを具体化できる。
-
抽象メソッド(abstract method)
- 実装をもたないメソッド。
-
実仮引数並び(actual parameter list)
- 特定メソッドの呼出しにおいて指定される実引数。形式的仮引数並びも参照のこと。
-
API(API)
- 応用プログラムインタフェース。アプリケーションを書くプログラマが,どのようにしてオブジェクトの機能にアクセスするのかの指定。インタフェースは,Java及びC++言語でクラスを用いて指定できる。Javaは,クラスより柔軟なインタフェースを可能にする特別なインタフェース構文ももっている。
-
アプレット(applet)
- Javaで書かれ,HotJavaにおいて動作するプログラム。
-
実引数(argument)
- メソッド呼出しにおいて指定するデータ項目。実引数は,リテラル値,変数又は式であり得る。
-
配列(array)
- 同一の型をもつデータ項目の集まり。配列の中では,各項目の位置は,整数によって一意に指示される。
-
アトム的(atomic)
- どのような環境においても,決して割込みを受けず,不完全な状態に留まることのないオペレーションを示す。
-
二項演算子(binary operator)
- 二つの実引数をもつ演算子。
-
ビット単位の演算子(bitwise operator)
- ビット指向のデータを扱う演算子。
-
ブロック(block)
- 照合括弧({及び})の間のプログラムコード。
-
論理的,論理... 又は 論理の(boolean)
- 真又は偽の値だけをとり得る式又は変数を示す。Javaは,論理型(boolean type)を提供し,真及び偽のリテラル値を提供する。
-
境界区画(bounding box)
- ラスタオブジェクトに関して,完全には透明でないすべての画素を完全に囲む最小のく(矩)形。
-
バイトコード(bytecode)
- Javaコンパイラによって生成され,Javaインタプリタによって実行される機器非依存コード。
-
キャスト(cast)
- あるデータ型から他のデータ型への明示的変換。
-
クラス(class)
- 特定種類のオブジェクトの実装を定義する型。クラス定義は,インスタンス,クラス及びメソッドを定義する。上位クラスが明示的に指定されないとき,上位クラスは暗黙的にオブジェクトとなる。
-
クラスメソッド(class method)
- 特定クラスの名前を用いて呼び出され得るすべてのメソッド。クラスメソッドは,全体としてクラスに作用するが,クラスの特定インスタンスには影響を与えない。クラスメソッドは,クラス定義の中で定義され,静的メソッドとも呼ばれる。
-
クラス変数(class variable)
- 全体として特定クラスに関連するが,そのクラスの特定インスタンスには関連しないデータ項目。クラス変数は,クラス定義の中で定義され,静的フィールドとも呼ばれる。
-
注釈(comment)
- プログラム中の説明的テキストであって,コンパイラによって無視される。
-
コンパイル単位(compilation unit)
- コンパイルできるJavaコードの最小単位。現在のJava実装においては,コンパイル単位をファイルとしている。
-
コンパイラ(compiler)
- ソースコードをコンピュータによって実行できるコードに変換するプログラム。
Javaコンパイラは,JavaソースコードをJavaバイトコードに変換する。
-
コンストラクタ(constructor)
- オブジェクトを生成する疑似メソッド。Javaにおいては,コンストラクタは,そのクラスと同一の名前をもつインスタンスメソッドとする。Javaコンストラクタは,newキーワードによって呼び出される。
-
宣言(declaration)
- 必ずしもデータ用の記憶域を確保したり,メソッド用の実装を用意することなく,識別子及び関連属性を設定する文。
-
派生した(derived from)
- クラスXがクラスYを拡張しているとき,クラスXをクラスYから派生したと定義する。
-
分散した(distributed)
- 複数のアドレス空間において動作している。
-
例外(exception)
- プログラムをエラー継続から防ぐ,プログラム実行中の事象。Javaは,try,catch及びthrowキーワードを伴う例外をサポートする。
-
例外ハンドラ(exception handler)
- 特定型の例外に反応するプログラムブロック。プログラムが回復できるエラーに関する例外については,例外ハンドラの実行後に,プログラムが再開できる。
-
実行可能コンテント(executable content)
- HTMLファイルと共に動作するアプリケーション。
-
拡張する(extend)
- フィールド又はメソッドを追加するか,上位クラスからメソッドを上書きするかのどちらかによって,クラスは,拡張して機能追加を行う。インタフェースは,拡張してメソッド追加を行う。
-
フィールド(field)
- クラスのデータメンバ。特記のない場合,フィールドは静的とする。
-
形式的仮引数並び(formal parameter list)
- 特定メソッドの定義が規定する仮引数。
-
ガーベジコレクション(garbage collection)
- もはや使用しない記憶を自動的に検出して解放すること。Java実行時システムは,ガーベジコレクションを実行するので,プログラマがオブジェクトを明示的に解放することは決してない。
-
階層(hierarchy)
- ルートという原点の位置を占めるアイテムを除く各アイテムが,既存のアイテムに基づいて構成する特定のフォームにおける関係の分類。階層においては,各アイテムは,その元に1個以上のアイテムをもつ。Javaクラス階層では,ルートはオブジェクトクラスとする。
-
HTML(HTML)
- ハイパテキストマーク付け言語。インタネット上のハイパテキスト文書のための,SGML(標準一般化マーク付け言語)に基づくファイル様式。画像,音声,ビデオストリーム,フォームフィールド,及び簡素なフォーマティングを組み込むことができる。他のオブジェクトへの参照は,URLを用いて組み込む。
-
識別子(identifier)
- Javaプログラムにおける変数アイテムの名前。
-
継承(inheritance)
- 上位の型において定義される変数及びメソッドを自動的に含むクラスの概念。
-
インスタンス(instance)
- 特定クラスのオブジェクト。Javaプログラムでは,クラスのインスタンスは,クラス名を後置したnew演算子を用いて生成される。
-
インタフェース(interface)
- 幾つかのクラスによって実装できるメソッドのグループ。
-
インタプリタ(interpreter)
- すべての文を復号して実行するモジュール。Javaインタプリタは,Javaバイトコードを復号して実行する。
-
リンカ(linker)
- 要素マシンコードモジュールから実行可能な完全プログラムを生成するモジュール。Javaリンカは,コンパイル済みクラスから,実行可能プログラムを生成する。
-
リテラル(literal)
- すべての整数,浮動小数点又は文字の値の基本表現。例えば,3.0は単精度浮動小数点リテラルであり,'a'は文字リテラルである。
-
局所変数(local variable)
- ブロック内で知られたデータアイテム。ブロック外のコードからはアクセスできない。
-
メンバ(member)
- クラスのフィールド又はメソッド。特記のない場合,メンバは静的とする。
-
メソッド(method)
- クラスにおいて定義される機能。
-
オーバロード(overloading)
- 同一有効範囲における多重アイテムを参照するために,一つの識別子を用いること。Javaでは,メソッドをオーバロードできるが,変数又は演算子をオーバロードすることはできない。
-
上書き(overriding)
- はじめにメソッドを定義したクラスの下位クラスにおいてメソッドの別の実装を与えること。
-
パッケージ(package)
- 型のグループ。パッケージは,packageキーワードを用いて宣言される。
-
プロセス(process)
- 1個以上のスレッドを含む仮想番地空間。
-
参照(reference)
- 値が番地であるデータ要素。
-
実行時システム(runtime system)
- Java仮想計算機用にコンパイルされたプログラムが動作できるソフトウェア環境。
-
有効範囲(scope)
- どこで識別子が利用可能かを決定する識別子の特性。Javaにおけるほとんどの識別子は,クラス有効範囲又は局所有効範囲のどちらかをもつ。
-
静的フィールド(static field)
- クラス変数の別名。
-
静的メソッド(static method)
- クラスメソッドの別名。
-
下位クラス(subclass)
- 特定のクラスから,中間に複数のクラスを伴って派生されたクラス。
-
上位クラス(superclass)
- 特定のクラスを,中間に複数のクラスを伴って派生するクラス。
-
上位の型(supertype)
- その型によって拡張されたり実装されるすべてのインタフェース及びクラス。
-
スレッド(thread)
- プログラム実行の基本単位。一つのプロセスは,並行動作して異なったジョブを実行する幾つかのスレッドをもつことができる。スレッドがそのジョブを終了すると,そのスレッドは,一時停止又は終了となる。
-
変数(variable)
- 識別子によって命名されたデータのアイテム。すべての変数は,型及び有効範囲をもつ。
-
仮想計算機(virtual machine)
- ソフトウェア又はハードウェアにおいて,いろいろな方法で実装できる計算装置に関する抽象規定。Java仮想計算機は,バイトコード命令セット,レジスタ集合,スタック,ガーベジコレクション,ヒープ及びメソッド記憶領域から構成される。