標準情報(TR)    TR X 0005:2002

Java言語規定 第2版 解説



1. 公表の趣旨及び経緯

Javaは,主として家電製品のソフトウェアのための,コンパクトでアーキテクチャ非依存なプログラム言語として開発され,その後,Web環境におけるさまざまな計算機に適用できるプログラム言語として注目された。Javaの内容は,Sun Microsystems, Inc.のWebに公開され,環境の整備とともに規定内容の更新を継続している。

このように頻繁に改訂される可能性があるが,我が国の技術革新にとって重要と判断される技術に対応するため,標準情報(TR)の制度を制定した通商産業省は,Javaの標準情報化の重要性を認識し,1995年度末に,既にマルチメディア/ハイパメディアの標準化に関する調査研究を開始していた(財)日本規格協会 情報技術標準化研究センター(INSTAC)のマルチメディア/ハイパメディア調査研究委員会のメンバと共に日本サン・マイクロシステムズ(株)を訪れて,Javaの標準情報(TR)としての公表の可能性の打診を開始した。

日本サン・マイクロシステムズ(株)の快諾を確認した後,通商産業省の工業技術院は,マルチメディア/ハイパメディア調査研究委員会に対して,Javaの標準情報(TR)の原案作成を委託した。これを受けてマルチメディア/ハイパメディア調査研究委員会は,1996年度の始めから,まずJava Language Specification, version 1.0[1]の翻訳作業に着手した。

Java言語規定の翻訳原案(TR原案)は,1996年度末に工業技術院に提出され,1997年6月の情報部会で審議された。そこで原案の技術内容は承認されたが,その出版方法について多くの議論が行われた。原案審議は1997年11月の情報部会に延期されて,そこで標準情報 TR X 0005としての出版が決定された。その際に,関連する分散オブジェクトの実現技術におけるJavaの位置付けを示す記述の追加によって,この標準情報(TR)の有用性を高めることが求められ,TR X 0005の第4章にJava言語規定を位置付けることが勧告され,TR X 0005は,"分散オブジェクト指向のプログラム言語及びその環境"として1998年5月に公表された。

TR X 0005:1998は,その3.6.1において,Java言語で実現したコンポーネントフレームワーク及びAPIであるJava Beansに言及し,コンポーネントをJavaで実装することが,Javaの利点であるプラットフォーム非依存性,セキュリティ,ネットワーク機能,GUI機能などを生かすことを示している。

Java Beans及びEnterprise JavaBeansの規定内容については,それぞれ,マルチメディア/ハイパメディア調査研究委員会の1997年度の活動,及びINSTACの高速Webにおける標準化に関する調査研究委員会の1998年度の活動として,翻訳作業が行われ,1998年11月に,TR X 0005:1998に対してそれぞれ第5章及び第6章を追加する追補1として,工業技術院に原案提出された。この追補1は,1999年3月に公表されている。(この追補1については,図が不鮮明であるとの読者からのコメントがあり,図を書き改めた第2刷が,2001年5月に発行された。)

その後もJava Language Specificationの規定内容の更新は,継続されている。これに対応するため,INSTACにおける次世代コンテンツの標準化に関する調査研究委員会は,2001年度の活動として,Java Language Specification Second Edition[2]の翻訳を行い,TR X 0005に第7章を追加する追補2として,2002年1月に経済産業省の産業技術環境局に対して原案提出を行った。


2. 審議中の主要検討課題

2.1 訳語に関する検討

類似用語については次のとおり訳し分けを行い,翻訳の中での概念の識別を施した。

composite character合成文字
composed character結合文字

shadowおおい隠す
obscure不明瞭化
hide隠ぺい(蔽)

これらは,いずれも名前を使うことによる有効範囲の重複に関わるが,隠ぺいは継承に,おおい隠しは局所宣言に,不明瞭化は単純名に関して用いる。

2.2 主な訳語

原案作成委員会は,委員による分担翻訳において訳語の揺れをなるべく小さくするため,予め訳語一覧を作成してそれに基づく翻訳を行った。解説表2.1にそれを示して,今後の改正,関連規定の作成等に際しての参考とする。

解説表2.1 訳語一覧
原語訳語
A
abrupt completion中途完了
abstract declarator抽象宣言子
abstract machine抽象計算機
abstract semantics抽象的意味
accessアクセス
access controlアクセス制御
accessibleアクセス可能
accessibilityアクセス可能性
action動作
activation frame活性化フレーム
active position現表示位置
active use能動的使用
activity活動
actual argument実引数
actual function実際の関数
additive expression加減式
additive operator加減演算子
addressアドレス
address constantアドレス定数
address operatorアドレス演算子
allocate割り当てる
alphabetアルファベット
alternate constructor invocation代替コンストラクタ呼出し
alternative(s)選択肢
ambiguous memberあいまいなメンバ
ambiguous nameあいまい名
AND expressionAND式
anonymous class declaration匿名クラス宣言
apostropheアポストロフィー
append追加
argument実引数
argument expression list実引数式リスト
arithmetic constant expression算術定数式
arithmetic type算術型
array配列
array component配列の構成要素
array declarator配列宣言子
array type配列型
assign代入する
assignable to代入可能
assignment代入,割当て
assignment compatible with代入互換
assignment conversion代入変換
assignment expression代入式
assignment operator代入演算子
associate関連付ける
associative結合的
atomicアトム的
automatic storage duration自動記憶域期間
B
backslash character逆スラッシュ文字
backspace後退
base基数
basic character set基本文字集合
basic type基本型
behavior振る舞い
binary compatibleバイナリ互換性
binary numeric promotion二項数値昇格
binary operator二項演算子
binary streamバイナリストリーム
bitwise logical AND operatorビット単位のAND演算子
bitwise operatorビット単位の演算子
blank final未初期化最終
blockブロック
block scopeブロック有効範囲
block-statement-group(s)ブロック文グループ
boolean論理的,論理...,又は論理の
boolean equality operator論理型等価演算子
boolean type論理型
boolean-valued expression論理値式
bootstrapブートストラップ
brace波括弧
bracket角括弧
break binary compatibilityバイナリ互換性を損なう
break statementbreak文
break targetbreakターゲット
bufferedバッファリングされた
bytecodeバイトコード
C
call呼出し
caller呼出し側
calling environment呼出し環境
canonical name正準名
capacity容量
carriage return復帰
case independent大文字小文字を区別しない
case label caseラベル
castキャスト
cast expressionキャスト式
cast operatorキャスト演算子
casting conversionキャスト変換
category分類
caught捕捉される
character文字
character constant文字定数
character sequence文字の並び
character set文字集合
character string literal単純文字列リテラル
character type文字型
check検査
checked exception検査例外
class bodyクラス本体
class declarationクラス宣言
class instanceクラスインスタンス
class loaderクラスローダ
class methodクラスメソッド
class modifierクラス修飾子
class of the objectそのオブジェクトのクラス
class variableクラス変数
clean upクリアする
clearクリアする
cloningクローニング
closeクローズする
cluttered乱雑な
code符号
comma operatorコンマ演算子
comment注釈
common initial sequence共通の先頭列
common type共通の型
commutative可換的
commutative operation可換的演算
comparison operator比較演算子
compatibility互換性
compatible互換の,互換性のある
compilation unitコンパイル単位
compile-time typeコンパイル時の型
complete normally正常完了
completion完了
component構成要素
component type構成要素型
composed character結合文字
composite character合成文字
composite type合成型
compound assignment複合代入
compound statement複合文
concatenate連結する
concurrent並行
condition条件
conditional boolean operator条件論理演算子
conditional expression条件式
conditional inclusion条件付き取込み
conditional operator条件演算子
conditional-and expression条件AND式
conditional-or expression条件OR式
conformance適合性
conforming適合する
conforming program適合プログラム
consistent一貫性
constant定数
constant expression定数式
constant field定数フィールド
constraint制約
constructorコンストラクタ
constructor parameterコンストラクタパラメタ
context文脈
continue statementcontinue文
contract取決め
control character制御文字
control line制御行
controlling constant expression制御定数式
controlling expression制御式
conversion変換
conversion contexts変換の文脈
conversion specification変換指定
conversion specifier変換指定子
copy複写する
create生成する
current
D
daemonデーモン
deallocate解放する
decimal constant10進定数
decimal digit10進数字
decimal value10進値
decimal-point character小数点文字
declaration宣言
declaration list宣言並び
declaration specifier宣言指定子列
declarator宣言子
declarator type derivation宣言子型派生
declare宣言する
decrementデクリメント
defaultデフォルトの
default argument promotionデフォルト実引数拡張
default constructorデフォルトコンストラクタ
default labelデフォルトラベル
default valueデフォルト値
defensive防御的な
definitely assigned確実に代入された
definitely unassigned確実に未代入である
definition定義
delegate委譲する
delimiter区切り記号
denormalized非正規化
denote表す
design設計
designate指し示す
digit数字
digit sequence数字列
direct abstract declarator直接抽象宣言子
direct declarator直接宣言子
direct extension直接的拡張
direct subclass直接的下位クラス
direct subinterface直接的下位インタフェース
direct superclass直接的上位クラス
direct superinterface直接的上位インタフェース
directive指令
directly直接的(に,な)
directly implement直接的に実装する
directoryディレクトリ
disassociate切り離す
discuss記述する
discussion記述
dispatchディスパッチ
division operator除算演算子
do statementdo文
documentation comment文書化注釈
domain error定義域エラー
double value set倍精度数値集合
double-extended-exponent value set倍精度指数部拡張数値集合
double-quote二重引用符
dynamically enclosed動的に囲まれる
E
edge
element要素
element type要素型
ellipsis省略記号
else groupelseグループ
embedded assignment埋込み代入
empty
empty statement空文
enclose取り囲む
enclosing取囲み
end-of-fileファイルの終わり
end-of-file indicatorファイル終了表示子
enum specifier列挙型指定子
enumerated type列挙型
enumeration列挙
enumeration constant列挙定数
enumeration content列挙内容
enumeration object列挙オブジェクト
enumeration specifier列挙指定子
enumeration tag列挙タグ
enumerator列挙子
enumerator list列挙子並び
environment環境
environment list環境の並び
equality expression等価式
equality operator等価演算子
equivalent等価な
error classエラークラス
error conditionエラー条件
error indicatorエラー表示子
error numberエラー番号
escape sequenceエスケープシーケンス
evaluate評価する
eventイベント
evolution機能変更
exception例外
exception class例外クラス
exception handler例外ハンドラ
exception parameter例外パラメタ
exception-handler parameter例外ハンドラパラメタ
exclusive OR expressionXOR式
execution environment実行環境
exit抜け出す,抜出し
exponent指数
exponent part指数部
exportエクスポートする
expression
expression name式名
expression statement式文
extended character set拡張文字集合
extended exponent range拡張指数範囲
extension拡張
external declaration外部宣言
external definition外部定義
external identifier外部識別子
external linkage外部結合
external name外部名
external object definition外部オブジェクト定義
F
fieldフィールド
field declarationフィールド宣言
field widthフィールド幅
file nameファイル名
file pointerファイルポインタ
file position indicatorファイル位置表示子
file positioningファイル位置付け
final (class)最終(クラス)
finalizable終了化可能
finalized終了化
finalizer終了化子
finalizer-reachable終了化到達可能
flagフラグ
float value set単精度数値集合
floating constant浮動小数点定数
floating suffix浮動小数点接尾語
floating type浮動小数点型
floating-point number浮動小数点数
floating-point type浮動小数点型
floating-point value浮動小数点数値
float-extended-exponent value set単精度指数部拡張数値集合
flow analysisフロー解析
flushフラッシュする
for statementfor文
form feed書式送り
formal parameter仮引数
format書式
formatted input/output書式付き入出力
forwarding method転送メソッド
FP-strictFP厳密な
fractional constant小数点定数
fractional part小数部
free解放する
freestanding execution environmentフリースタンディング実行環境
full expression完全式
fully buffered完全バッファリングされた
function関数
function body関数本体
function call関数呼出し
function declarator関数宣言子
function definition関数定義
function designator関数指示子
function image関数イメージ
function prototype関数原型
function prototype scope関数原型有効範囲
function scope関数有効範囲
function type関数型
function-call operator関数呼出し演算子
G
garbage collectionガーベジコレクション
general purpose一般用
generate生成する
global大域
goal symbol目標記号
goto statementgoto文
gradual underflow緩やかなアンダフロー
groupグループ
group partグループ構成要素
H
handle取り扱う
headerヘッダ
header nameへッダ名
hexadecimal constant16進定数
hexadecimal digit16進数字
hexadecimal escape sequence16進拡張表記
hide隠ぺいする
horizontal tabulation文字タブ
hosted execution environmentホスト実行環境
I
identifier識別子
identifier list識別子並び
IEEE Standard for Binary Floating-Point Arithmetic2進数浮動小数点計算のためのIEEE規格
if groupifグループ
if sectionif節
if statementif文
immediate subexpression直接副式
immediately直接的(な,に),ただちに,すぐに
implement実装する
implementation処理系,実装
implementation limit処理系限界
implementation-defined処理系定義の
importインポートする
import declarationインポート宣言
inaccessibleアクセス不可能な
inclusive OR expressionOR式
incomplete type不完全型
inconstant constant不定の定数
incrementインクリメント
incrementation part増分部
indeterminate不定の
indexインデクス,指標
indicator表示子
inexact不正確
infinity無限大
inherit継承
init declarator初期化宣言子
init declarator list初期化宣言子並び
initial shift state初期シフト状態
initial value初期値
initialization初期化
initialized array creation expression初期化済み配列生成式
initializer初期化子
initializer list初期化子並び
inner class内部クラス
inner member class内部メンバクラス
innermost最内(の)
input failure入力誤り
input item入力項目
input stream入力ストリーム
input/output入出力
instance initializerインスタンス初期化子
instance methodインスタンスメソッド
instance variableインスタンス変数
instanceof operatorinstanceof演算子
integer character constant単純文字定数
integer constant整数定数
integer literal整数リテラル
integer suffix整数接尾辞
integer type整数型
integral constant expression整数的な定数式
integral promotion整数的な拡張
integral type整数的な型
integrity完全性
interface modifierインタフェース修飾子
internインターンする
internal identifier内部識別子
internal linkage内部結合
internal name内部名
interrupt割込み
invocation呼出し
invoker呼出し元
involve含まれる
italicイタリック
iteration statement繰返し文
J
Java digitJava数字
Java letterJava字
Java letter-or-digitJava letter-or-digit
Java Virtual MachineJava仮想計算機
Java Virtual Machine SpecificationJava仮想計算機規定
jump statement分岐文
K
keywordキーワード
Korean (language)朝鮮語(チョソノ)
L
labelラベル
label nameラベル名
labeled statementラベル付き文
language言語
late-bound遅延束縛
"laziest" form of resolution“もっとも怠慢な”形式の記号解決
left parenthesis左括弧
left-associative左結合
left-hand side左辺
legacy過去の
length長さ
letter
lexical element字句要素
lexical grammar字句文法
lexically字句的(な,に)
libraryライブラリ
line
line buffered行バッファリングされた
line feed改行
line number行番号
linkageリンク,結合
linkingリンク,リンキング
literalリテラル
live threadライブスレッド
loadロード
load factor負荷係数
loadingロード,ローディング
local局所
local class declaration statement局所クラス宣言文
local variable局所変数
local variable declaration statement局所変数宣言文
locale現地
locale-specific behavior現地固有の振る舞い
lockロック
lockロック設定する
logical ANDAND
logical AND expressionAND式
logical complement expression論理補数式
logical OROR
logical OR expressionOR式
logical source line論理ソース行
long suffix長語接尾語
lookup検索
loop bodyループ本体
loss of precision精度の損失
lowercase letter小文字
lparen左括弧
lvalue左辺値
M
main memory主メモリ
map写像する
mapping写像
master copyマスタコピー
matching failure照合誤り
maximum priority最高優先順位
memberメンバ
member-access operatorメンバアクセス演算子
meta-メタ
methodメソッド
method bodyメソッド本体
method invocation conversionメソッド呼出し変換
method nameメソッド名
method parameterメソッドパラメタ
minus sign負符号
modeモード
modifiable lvalue変更可能な左辺値
monetary formatting金額の書式化
monitorモニタ
multiplication operator乗算演算子
multiplicative expression乗除式
multiplicative operator乗除演算子
N
name collision名前の衝突
name conflict名前の競合
name space名前空間
named method invocation名前付きメソッド呼出し
narrowing primitive conversionプリミティブ型の縮小変換
narrowing reference conversion参照型の縮小変換
native実装固有の,ネイティブ
negation否定
nested入れ子の
new-line改行
new-line character改行文字
no linkage無結合
non-white-space character非空白類文字
nondigit非数字
nonterminal非終端記号
nonzero digit非ゼロ数字
normal completion正常完了
normal mode正常モード
null空,null
null character空文字
null literal 空リテラル
null pointer空ポインタ
null pointer constant空ポインタ定数
null statement空文
null type空型
numeric promotion数値昇格
numeric type数値型
numerical comparison operator数値比較演算子
numerical equality operator数値等価演算子
O
objectオブジェクト
object equalityオブジェクト等価演算
object typeオブジェクト型
obscure不明瞭な
obscuring不明瞭化
observable観測可能な
obsolescent feature廃要素
octal8進
octal constant8進定数
octal digit8進数字
octal escape sequence8進拡張表記
offsetオフセット
openオープンする
operandオペランド
operation演算,操作
operator演算子
optionalオプションの
optional symbolオプション記号
ordered順序付ける
ordinary identifier通常の識別子
otherwiseそうでなければ
output stream出力ストリーム
overflowオーバフロー
overloadオーバロード
override上書き
P
packageパッケージ
package declarationパッケージ宣言
padding詰物
pair
parameter仮引数
parameter declaration仮引数宣言
parameter list仮引数並び
parameter type list仮引数型並び
parenthesis括弧
passive use受動的使用
pathパス
performance性能
periodピリオド
physical source line物理ソース行
plus sign正符号
point指す
pointlessly要領を得ない
pointerポインタ
pointersポインタ
polar method極手法
policy方策,方式
pollポーリング
polymorphically多態に
postdecrement expression後置デクリメント式
postfix expression後置式
postincrement expression後置インクリメント式
pp number前処理数
precedence優先順位
precise正確
precision精度
predecrement expression前置デクリメント式
predefinedあらかじめ定義された
prefix接頭辞
preincrement expression前置インクリメント式
preparation準備
primary基本
primary expression基本式
primary method invocation expression基本メソッド呼出し式
primitive constantプリミティブ定数
primitive typeプリミティブ型
printing character表示文字
priority優先順位
private私的(な)
processプロセス,処理,過程
processor timeプロセサ時問
production生成規則
programプログラム
program executionプログラムの実行
program nameプログラム名
program parameterプログラムパラメタ
program startupプログラム開始処理
program terminationプログラム終了処理
program textプログラムテキスト
programming languageプログラム言語
promote昇格する
promotion昇格
property属性
protect保護(の)
public公開(の)
punctuator区切り子
Q
qualified access限定アクセス
qualified class instance creation expression限定クラスインスタンス生成式
qualified name限定名
qualified type限定型
qualified version限定版
qualify限定する
quotation mark引用符
R
radix基数
range error値域エラー
reachable到達可能
read読取り
read error読取りエラー
reason理由
reclaim再利用
recursive再帰的
redefinition再定義
reduce分解される
reference equality operator参照型等価演算子
reference type参照型
referenced type被参照型
references参照
reflection自己反映
reflective自己反映的
reflexive反射性
relational expression関係式
relational operator関係演算子
remainder operator剰余演算子
replacement list置換要素並び
requirement要件
rescan再走査
reserved identifier予約済み識別子
resolution解決
resumed再開
return statementreturn文
return type返却値の型
return value返却値
reverse solidus逆斜線
right parenthesis右括弧
right-hand side右辺
robust頑健
rootルート
round to nearest直近への丸め
round toward zero0に向かう丸め
roundoff丸め操作
runtime実行時
runtime exception class実行時例外のクラス
S
same class同一クラス
same interface同一インタフェース
same type同一型
scalar typeスカラ型
scanlist走査文字の並び
scanset走査文字集合
scope有効範囲
search検索
seed生成源
selection statement選択文
semantic rule意味規則
separator character分離文字
sequence系列
sequence point副作用完了点
setセットする
set stateセット状態
shadowおおい隠す
shallow浅い
shift distanceシフト幅
shift expressionシフト式
shift operatorシフト演算子
side effect副作用
sign符号
signalシグナル
signal handlerシグナル処理ルーチン
signal numberシグナル番号
signatureシグネチャ
signed integer type符号付き整数型
significant part有効数字部
simple assignment単純代入
simple name単純名
single-quote一重引用符
single-type-import declaration単一の型インポート宣言
source character setソース文字集合
source fileソースファイル
source file inclusionソースファイル取込み
spaceスペース
space characterスペース文字
specification規定
specifier指定子
specifier qualifier list型指定子型限定子並び
spellingつづり
standard標準(ISO,IEC,ITU及びJIS以外の場合)
standard error標準エラー
standard exception class標準例外クラス
standard input標準入力
standard output標準出力
state-dependent encoding状態依存符号化
statement
statement label文のラベル
statement list文並び
static context静的文脈
static initializer静的初期化子
static storage duration静的記憶域期間
static variable initializer静的変数初期化子
step段階,手順
storage duration記憶域期間
storage-class specifier記憶域クラス指定子
store記憶する
straightforward implementationすなおな実装
strat-up開始
streamストリーム
string文字列
string concatenation文字列連結
string concatenation operator文字列連結演算子
string conversion文字列変換
string literal文字列リテラル
strongly typed強く型付けされた
sub(superと対の場合)下位の
subclass下位クラス
subexpression副式
subinterface下位インタフェース
subject sequence変換対象列
subpackage下位パッケージ
subscript下付き添字
subscript operator下付き添字演算子
substatement副文
subtype下位型
successful termination成功終了
suffix接尾辞
super(subと対の場合)上位の
superclass上位クラス
superinterface上位インタフェース
suppress抑制する
suspended一時停止
switch bodyスイッチ本体
switch statementswitch文
symbolic reference記号参照
symmetric対称な
synchronizing同期化する
syntactic grammar構文文法
syntactic sugar糖衣構文
syntax rule構文規則
T
table
tagタグ
tagged paragraphタグ付き段落
targetターゲット
temporary file一時ファイル
terminating null character終端空文字
terminating zero-valued code終端0値コード
text streamテキストストリーム
this book, this manualこの標準情報(TR)
threadスレッド
thrown投げられる
tokenトークン
tokenizerトークン切出し器
top level最上位(の)
transitive推移性
translation environment翻訳環境
translation limit翻訳限界
translation phase翻訳フェーズ
translation unit翻訳単位
treatment処置
trivial way自明な方法
truncate切り捨てる
type
type comparison operator型比較演算子
type conversion型変換
type definition型定義
type name型名
type qualifier型限定子
type qualifier list型限定子並び
type specifier型指定子
type-import-on-demand declaration要求時の型インポート宣言
typedef name型定義名
U
unary expression単項式
unary numeric promotion単項数値昇格
unary operator単項演算子
unbufferedバッファリングされていない
unchecked exceptions class非検査例外クラス
undefined未定義の
underflowアンダフロー
underscore下線
unfinalized未終了化
UnicodeUnicode
unique package name一意なパッケージ名
unloadアンロード
unlockロック解除(する)
unnamed名前のない
unordered順序付けしない
unqualified class instance creation expression非限定クラスインスタンス生成式
unqualified superclass field access 非限定上位クラスフィールドアクセス
unqualified superclass method invocation非限定上位クラスメソッド呼出し
unqualified type非限定型
unqualified version非限定版
unreachable到達不能
unsigned integer type符号無し整数型
unsigned suffix符号無し接尾語
unspecified未規定の
unsuccessful termination失敗終了
update stream更新ストリーム
uppercase letter大文字
use使用
usual arithmetic conversion通常の算術型変換
UTF lengthUTF長
utilityユティリティ
V
value
variable initializer変数初期化子
vectorベクトル
verification検証
verifier検証器
version
virtual machine仮想計算機
void expressionボイド式
volatile object揮発性オブジェクト
W
wait set待機集合
weak reference弱参照
when false偽の場合
when true真の場合
while statementwhile文
white space空白類
white-space character空白類文字
widening primitive conversionプリミティブ型の拡大変換
widening reference conversion参照型の拡大変換
width
working copy作業コピー
working memory作業メモリ
wrapper objectラッパーオブジェクト
write書込み
write error書込みエラー

2.3 第1版と第2版との違い

Java言語は,最初の版が1996年に発行され,その後改訂が重ねられた。第2版は,ウェブ上に公開されていた幾つかの変更をまとめて,2000年4月に出版された。

旧版との大きな違いは,入れ子型宣言の追加及び浮動小数点まわりの改訂である。メソッドの検索,バイナリ適合性に関しても明確化と修正とを施している。ライブラリは,大きくなり過ぎたため,第2版から削除されている。

Java言語のそれ以上の拡張は,SMI社が主導するJava Community Processで行なわれており,ジェネリックな型,アサーション,メモリモデルなどが拡張対象に上っている。

第2版における変更点を,章毎に次に示す。

1.
19.以降の章の概要を削除し,次の節を新たに追加した。
  • 1.2 記法
  • 1.3 既定義のクラスとインタフェースとの関係
2.
"LALR(1)構文解析法による構文文法については,19.が規定する。”ことの記述を削除した。
3.
  • Unicode 2.0ではなく,Unicode 2.1を使用する。
  • キーワードに,strictfpを追加した。
5.
strictfp修飾子の追加に伴い,5.1.8 値集合変換(Value set conversion)を追加した。
6.
  • おおい隠す,不明瞭,隠蔽という概念を区別する。
  • protectedメンバ及びprotectedコンストラクタの概念を導入した。
  • "パッケージ又は型名"及び"正準名"という新要素に対応する。
  • デフォルトアクセスについての記述をまとめる。
7.
  • 内部クラスなどと区別するために,単に型,クラス,インタフェースと記述されていたものに"最上位の"を前置した。
  • 説明を明確にするため,パッケージ及びコンパイル単位の観測可能性という概念を導入した。
  • ドメイン名から一意なパッケージ名を生成する規約において,最初の構成要素の大文字を小文字に変更した。
8.
  • クラス型名の有効範囲の記述を削除した。
  • 内部クラス,取り囲みインスタンスを定義した。
  • メンバ型宣言を追加した。
9.
  • インタフェースを入れ子にすることが可能になり,上位,下位などの概念を明確化した。
  • strictfpインタフェースを導入した。
  • インタフェースがメンバ型宣言を含むことを可能にした。
10.
単精度値及び単精度指数部拡張値,倍精度値及び倍精度指数部拡張値の導入に伴う配列の定義を拡張した。
11.
パッケージjava.langの規定削除に伴って,その関連記述を削除した。
14.
ブロックの構成要素に局所クラス宣言を追加した。
15.
  • strictfp修飾子の追加に伴い,FP厳密式に関する記述,及びFP厳密である場合とない場合とに分けた記述を追加した。
  • 内部クラス及び匿名クラスに関する記述を追加した。
  • 最も特殊なメソッドに関する定義を明確化した。
  • 式の名前に関する節を削除した。
16.
  • "確実に未代入"の場合についての規定を追加した。
  • 16.3以降の規定を追加した。

3. 原規定との比較

3.1 章・節などの構成

原規定は,必ずしもJIS又は標準情報(TR)の様式には整合していないため,整合化の対応が必要である。しかしTRの読者が原規定を参照する際の便を考慮すると,章・節構成はなるべく原規定のそれを保存することが望まれる。そこで,次に示すだけの修正(章・節番号の変更なし)を施して,この標準情報(TR)を構成した。

3.2 その他の翻訳表記上の留意

原規定は,HTMLを用いて記述されている。この標準情報(TR)も原則として,原規定のタグを保存することにしたが,特に次の点に留意した。出版された標準情報(TR)は,そのHTMLテキストをHTMLブラウザによって印刷した出力である。


4. 懸案事項

4.1 原案レビュー環境

Sun Microsystemsは,この標準情報(TR)の出版許諾に際して,翻訳原案に対する同社によるレビューを要求し,標準情報(TR)の原案段階から同社がその内容をレビューしてコメントできる環境を作ることで合意が成立している。

そこで,次に示すWebに原案を掲載して,頻繁に更新される原案に対する同社によるレビューを容易にした。

http://www.y-adagio.com/public/standards/tr_javalang2/jTOC.doc.html

このレビューは今後も継続され,必要に応じてコメントに基づく内容修正を行う。

4.2 誤りの訂正

原規定の翻訳作業に際して,幾つかの記述の問題点が明らかになっている。その中で明らかに誤り又は不適切な記述と判断できる解説表4.1の箇所については,訂正して翻訳を行った。

解説表4.1 原規定の誤り
箇所及び原規定の記述訂正した記述
[7.7の第8段落]
For more information, refer to the documents stored at ftp://rs.internic.net/rfc, for example, rfc920.txt and rfc1032.txt.
詳細については,http://www.ietf.org/rfc.html から取得できるドキュメント,例えば,rfc920.txt 及び rfc1032.txt を参照のこと。 (理由: ftp://rs.internic.net/には,すでにRFCアーカイブは存在しない)
[9.1.2の第2段落]
repeated from §4.2
4.3の記述を繰り返す (理由: 正しくは4.2でなく4.3)
[13の第3段落]
The paper quoted above appears in Proceedings of OOPSLA '95, published as ACM SIGPLAN Notices, Volume 30, Number 10, October 1995, pages 426-438.
これらのことは,ACM SIGPLAN Notices, Volume 30, Number 10, October 1995として発行されたProceedings of OOPSLA '95の426ページ〜438ページにあるIra R. Forman, Michael H. Conner, Scott H. Danforth及びLarry K. Raperらの論文Release-to-Release Binary Compatibility in SOMに示されている。 (理由: 論文の題名と著者名が欠落している)
[10.4の第1段落]
expression enclosed by [ and ],
"["及び"]" (理由: 文字引用の形式が10.6と整合性がない)
[13.4.11の第一段落]
Adding a method or constructor declaration to a class will not break compatibility with any pre-existing binaries, in the case where a type could no longer be recompiled because an invocation previously referenced a method or constructor of a superclass with an incompatible type. The previously compiled class with such a reference will continue to reference the method or constructor declared in a superclass.
クラスへのメソッド宣言又はコンストラクタ宣言の追加は,いかなる既存のバイナリとの互換性も損なわない。呼出しが,非互換な型をもつ上位クラスのメソッド又はコンストラクタを以前は参照していたために,もはや型を再コンパイルできない場合には,そのような参照をもつ以前にコンパイルしたクラスが,上位クラスで宣言されたメソッド又はコンストラクタを参照し続ける。 (理由: 「,」と「.」の取り違え)
[14.10の第9段落]
case 1
case 1: (理由: ラベルの':'が欠落している)
[17.8の第3段落]
(before entering a loop, for example), and keep them in working registers for later use within the loop.
(例えば,ループに入る前に),(例えば,ループ内での)後の使用のために作業レジスタに保持する。 (理由: 最適化が「ループ内での」処理に限定されるはずは無い)

4.3 誤りの指摘

翻訳作業に際して,原規定の誤りと判断されたが,このTRでは原規定の記述どおり翻訳した箇所を解説表4.2に示す。これらは,解説表4.1の訂正内容とともに,原案作成委員会から原規定のエディタに対してフィードバックされる。

解説表4.2 原規定の誤りと判断される記述
箇所及び原規定の記述問題点
[5.1.2の第3段落]
such conversions that are not strictfp may lose information about the overall magnitude of the converted value.
strictfpに関する仕様変更の原因となったIntel系のプロセッサにおける浮動 小数点計算では,当時のJava言語規定で定められていたIEEE 754の単精度(32 ビット),倍精度(64ビット)ではなく,拡張精度(80ビット)を用いていた。
したがって,逆にstrictfp の方が情報が失われやすい。 strictfpが要求することは,計算結果の高い精度ではなく,プラットフォームに依存しない計算結果の厳密な再現性(exact reproducibility)である。
[5.6.2の最終段落]
The example converts the ASCII character G to the ASCII control-G (BEL), by masking off all but the low 5 bits of the character.
ControlキーとGキーを一緒に押した結果,どのようなコードが生成されるかは 実行環境に依存する。
[12.の第3段落]
the procedure followed when a program exits
12.8を参照しての導入であるが,12.8は,抜け出す条件を記述しており,手続きを 記述しているわけではない。

5. 参考文献

[1] The Java Language Specification, 1996-08 (http://java.sun.com/docs/books/jls/index.html)

[2] Java Language Specification Second Edition, 2000-04

6. 原案作成委員会

この標準情報(TR)の原案を作成した(財)日本規格協会 情報技術標準化研究センター(INSTAC)の次世代コンテンツの標準化に関する調査研究委員会及び作業グループ(WG3)の委員構成を,それぞれ解説表6.1及び解説表6.2に示す。

解説表6.1 次世代コンテンツの標準化に関する調査研究委員会
氏名 所属
(委員長) 池田 克夫 大阪工業大学
(幹事) 村田 真 日本アイ・ビー・エム株式会社
(幹事) 小町 祐史 松下電送システム株式会社
(幹事) 平山 亮 金沢工業大学
内山 光一 株式会社東芝
久保田 靖夫 大日本印刷株式会社
黒川 利明 株式会社CSK
斎藤 伸雄 凸版印刷株式会社
二本松 勝 株式会社日立製作所
木戸 達雄 経済産業省産業技術環境局
藤原 洋 株式会社インターネット総合研究所
松本 充司 早稲田大学
柳町 昭夫 株式会社NHKアイテック
(事務局) 山中 正幸 財団法人日本規格協会

解説表6.2 作業グループ3(WG3)
氏名 所属
(主査) 小町 祐史 松下電送システム株式会社
(幹事) 内山 光一 株式会社東芝
稲垣 達夫 グランスフィア株式会社
奥井 康弘 株式会社日本ユニテック
海田 茂 ネクストソリューション株式会社
風間 一洋 日本電信電話株式会社
上村 圭介 国際大学グローバル・コミュニケーション・センター
栗林 博 オムロン株式会社
黒川 利明 株式会社CSK
八谷 祥一 株式会社アプリックス
澤田 位 財団法人日本規格協会
出葉 義治 ソニー株式会社
内藤 広志 大阪工業大学
西村 利浩 富士通株式会社
石川 則夫 経済産業省商務情報政策局
オブザーバ 浅利 千鶴 浅利会計事務所
オブザーバ 篠原 章夫 日本電信電話株式会社
オブザーバ 山東 滋 株式会社日立製作所
オブザーバ 萩原 崇弘 経済産業省商務情報政策局
オブザーバ 高橋 昌行 経済産業省産業技術環境局
(事務局) 山中 正幸 財団法人日本規格協会