JIS X 4346:1999 情報処理技術―マルチメディア・ハイパメディア情報符号化―第6部:拡張対話型応用 | ページ 3

10
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
次の基本操作呼出しを考える。
: fork (100 99 "ginteger 1 : goctetstring " start "
"gobjectref 150 : goctetstring : indirectref 2)
これは,次のシグネチャと静的に型解決することができる。
public static void Prog. start (ObjectReference, OctetString)
備考 Call基本操作又はFork基本操作のParameters引数の中のParameterがちょうど2個である場合,
メソッド呼出しのシグネチャは,次のものとなる。
void <methodname> ( )
ただし,<methodname>部分を対象メソッドの名前に置き換えて考える。
表1 MHEG-5引数の型とJVMの型との対応
MHEG-5引数の型 JVMの型
Boolean Boolean
OctetString OctetString
Integer Integer
ContentReference ContentReference
ObjectReference ObjectReference
備考 JVMの型Boolean及びIntegerは,カーネルAPI(java.langパッケージ)が定義している。JVM
の型OctetString, Content Reference及びObject Referenceは,MHEG-5API(iso.mheg5パッケージ)
が定義している(附属書C参照)。
7.2.3.3 Deactivation振る舞い MHEG-6交換プログラムオブジェクトのDeactivation振る舞いは,次の事
由のいずれかによって引き起こされる。
− 当該オブジェクトを対象としたStop基本操作が実行された場合。
− 当該オブジェクトを活性化したCall基本操作又はFork基本操作によって起動されたメソッドから生
成されたすべてのスレッドが正常終了した場合。
Stop基本操作は,非同期のプログラム,すなわち,Fork基本操作によって起動されたプログラムにだけ
適用されなければならない。その効果として,Fork基本操作から生成されたすべてのVMスレッドを停止
することでプログラムを終了させなければならない。
Fork基本操作によって起動されたメソッドから生成されたすべてのスレッドの正常終了によって,
AsynchStopped事象が発生する。
7.2.3.4 Destruotion振る舞い MHEG-6交換プログラムオブジェクトのDestruction振る舞いは,Unload
基本操作,又は当該交換プログラムオブジェクトが附属するグループオブジェクトのDestructionの一環と
して引き起こされる。
いずれの場合においても,カプセル化されたすべてのVMクラス及びVMオブジェクトは,別の交換プ
ログラムによって使用されない限り,エンジンから利用不可能な状態とならなければならない。
MHEG-5アプリケーションのDestructionの場合には,すべてのVMオブジェクト及びすべてのVMクラ
ス(すなわち,システムクラス以外のすべて)をエンジンから利用不可能な状態とし,エンジンは,これ
らのVMオブジェクト及びVMクラスを,後に解釈されるMHEG-6アプリケーションのクラスとのあらゆ
る不整合を避けるようにしなければならない。
8. アプレットクラス
記述 表示及び対話能力を供給するJVMコードのカプセル化を定義

――――― [JIS X 4346 pdf 11] ―――――

                                                                                             11
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
基底クラス 交換プログラム,対話及び可視
サブクラス なし
状態 具象クラス
8.ではJIS X 4345の7.で定義された表記法を用いてアプレットクラスを定義する。
他のMHEG-5クラスと異なり,アプレットクラスは,要素クラスの二つのクラスを継承する。菱形の継
承によって起こる不都合が生じたときは常に,最初にリストされたクラスで定義された継承経路によって
特徴を継承しなけれならない。つまり,特に指定のない限り,すべての要素クラスの特徴(属性,振る舞
い,事象及び基本操作の効果)は,可視クラスではなく,交換プログラムクラスから継承しなければなら
ない。
8.1 属性 アプレットに対して,継承属性,交換属性及び内部属性を定める。
8.1.1 継承属性 アプレットクラスは,その基底クラスのすべての属性をもつ。ただし,次の制約をおく。
属性名 基底クラス 制約
InitiallyActiveIngredientJIS X 4345 14.1.1のプログラムクラスの定義に従う。
OriginalContentIngredient7.1.1.2及びJIS X 4345 17.1.1のMHEG-6交換プログラムの定義に従う。
ContentHook Ingredient7.1.1.3及びJIS X 4345 17.1.1のMHEG-6交換プログラムの定義に従う。
Shared Ingredient7.1.1.4のMHEG-6交換プログラムの定義に従う。
Name Program 7.1.1.1のMHEG-6交換プログラムの定義に従う。
Program
InitiallyAvailable 7.2.1のMHEG-6交換プログラムの定義に従う。
Visible
OriginalPaletteRef アプレットクラスの中で直接に用いてはならない。
8.1.2 交換属性 アプレットクラスは,(継承した属性を除いて)それ自身の交換属性をもたない。
8.1.3 内部属性 アプレットクラスは,(継承した属性を除いて)それ自身の内部属性をもたない。
8.2 事象 アプレットクラスは,その基底クラスにあるすべての事象をもつ。これらの事象の意味は,
基底クラスでの意味と同じとする。ただし,事象AsynchStoppedについては,次のとおりとする。
AsynchStopped この事象は,アプレットオブジェクトの基本JVMスレッドが終了した時点に生じ
る。関連データは,もたない。
8.3 内部振る舞い アプレットクラスは,その基底クラスの内部振る舞いのすべてをもつ。ただし,次
の制約をおく。
Preparation 7.2.3.1及びJIS X 4345 8.3で定義したMHEG-6交換プログラムに対するPreparation
振る舞いのとおりとする。ただし,次のとおりに変更を加える。
1. AvailabilityStatusをTrueに設定する直前に,JIS X 4345 31.3で定義した可視ク
ラスに対するPreparation振る舞いの第2ステップを実行する。
Destruction 7.2.3.4及びJIS X 4345 8.3で定義したMHEG-6交換プログラムに対するDestruction
振る舞いのとおりとする。
Activation 次の一連の操作を逐次実行する。
1. JIS X 4345 8.3で定義したルートクラスに対するActivation振る舞いを行う。
2. アプレットオブジェクトに対して基本JVMスレッドを生成する。
3. 対象クラスのコンストラクタを起動し,コンストラクタが生成したVMオブジ
ェクトを,活性化しようとしているMHEGアプレットオブジェクトに結合す
る。ここで,対象クラスとは,アプレットオブジェクトのOriginalContent属性
の中での,そのインデックスがFork基本操作の(Parameters引数の中の)最初
のParameterで指定されたクラスをいう(7.1.2参照)。Fork基本操作に以後の
Parameterがない場合は,引数をもたないコンストラクタを起動する。そうでな
い場合は,2番目以降のParameterの型と一致する引数列をもつコンストラクタ
を起動する。ここでの型一致規則は,7.2.3.2による。
例 [{ : APPlet 200 : name "APP"}]
次の基本操作を考える。
: fork (200 99 : ginteger 1 : goctetstring "go")

――――― [JIS X 4346 pdf 12] ―――――

12
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
型解決の結果,次のコンストラクタを引数 "go" 付きで起動する。
public void App (OctetString)
4. コンストラクタを正当に起動することができない次の場合には,ForkSucceeded
引数をFalseに設定し,直ちにこの振る舞いを終了する。
− Fork基本操作にParameterがない場合
− Fork基本操作の最初のParameterが,Name属性の中の正当なインデックス(1
からその長さまでの整数)を示していない場合
− 指定されたクラスに適切なシグネチャのコンストラクタがない場合
5. 可視オブジェクトを表示する。表示は,オブジェクトがDisplayStackの中でど
こに位置しているかに対応させ,オブジェクトのPosition属性及びBoxSize属
性が示す位置及び境界長方形に対応させて行う(下に示す備考も参考のこ
と。)。
6. ForkSucceeded引数にTrueを設定する。
7. RunningStatus属性にTrueを設定する。
8. IsRunning事象を発生する。
Deactivation 次の一連の操作を逐次実行する。
1. オブジェクトのRunningStatus属性がFalseである場合は,直ちにこの振る舞い
を終了する。
2. オブジェクトのInteractionStatus属性がTrueである場合,そのInteraction振る
舞いを中止し,InteractionStatus属性にFalseを設定する。
3. オブジェクトの表示を停止する。
4. アプレットオブジェクトに対する基本JVMスレッドを終了させ,そのスレッ
ドから派生していたスレッドもすべて終了させる。MHEG-6オブジェクトから
の,このJVMアプレットオブジェクトに対する参照をすべて除去する。この
JVMアプレットオブジェクトは,それへの参照がVMの中に一つもなくなっ
た後,いずれはゴミとして回収されることになる。
5. RunningStatus属性にFalseを設定する。
6. IsStopped事象を発生する。
Interaction この振る舞いは,Interactibleクラスに対する定義どおりとする。
オブジェクトのInteractionStatus属性がTrueである場合,利用者からの入力事象す
べては,エンジンがアプレットにそのまま受け渡す。このとき,入力事象がJVM
のプログラム列にどのようにして渡されるかは,利用者インタフェースAPIによ
る。利用者インタフェースAPIは,応用領域ごとにその仕様を定めてよい。
備考 境界長方形の寸法を0としてアプレットクラスを使うことで,実体化できても可視でないプロ
グラムを実現することができる。この方法は,利用者インタフェースAPIがない状況でも使え
る。
8.4 MHEG-5の基本操作の効果 アプレットクラスは,その基底クラスのMHEG-5基本操作をすべてそ
のままもつ。ただし,次の制約をおく。
SetData プログラムクラスに対してと同様に,アプレットオブジェクトを対象としてこの基
本操作を用いてはならない。
SetPaletteRef アプレットオブジェクトを対象としてこの基本操作を用いてはならない。
Run アプレットオブジェクトを対象としてこの基本操作を用いてはならない。
Call アプレットオブジェクトを対象としてこの基本操作を用いてはならない。
Fork Activation振る舞いを適用する。ただし,次の制約をおく。
− ForkSucceded引数には,BooleanVanableオブジェクトを指定しなければならな
(ForkSucceded,
Parameters) い。
− Parameters引数の最初のParameterは,評価すると正の整数となるものでなけれ
ばならない。
− Parameters引数のそれ以降のParameterには,オブジェクトのstartupクラスの
コンストラクタの引数列に渡す値を並べなければならない。Parametersに並べ

――――― [JIS X 4346 pdf 13] ―――――

                                                                                             13
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
る順序は,コンストラクタの引数の順序に従っていなければならない。すべて
の引数は,値渡しとする。
Stop Deactivation振る舞いを適用する。
アプレットクラスは,次のMHEG-5基本操作を定義する。
Invoke この基本操作は,オブジェクトに結合したアプレットがもつメソッドの実行を行
う。
(InvokeSucceeded, 次の一連の操作を逐次実行する。
Method, 1. アプレットオブジェクトが活性化していない場合は,この基本操作を終了す
Parameters) る。
2. アプレットオブジェクトを活性化したActivation振る舞いが生成したJVMオブ
ジェクトの中の,Method引数が示すメソッドを予約する。Parametersが空であ
る場合,予約するメソッドは,次に示すシグネチャをもったメソッドとする。
public void<methodname>0
ここで,<methodname>はそのメソッドの名前に置き換えて考える。
Parametersが空でない場合,予約するメソッドは,その引数列の型が,Invoke基本
操作のParameters引数の中のParameter列の型に型一致するメソッドとする。この
型一致規則は,7.2.3.2による。
例 [{ : APPlet 200 : name "App"}]
次の基本操作呼出しは,型解決の結果,次のメソッドを1を引数として呼
び出すことを予約する。
3. 何らかの理由から予約ができない場合には,InvokeSucceeded引数にFalseを設
定し,この振る舞いを終了する。例えば,正しいシグネチャをもったメソッド
が存在しない場合が,これに当たる。
4. 予約したメソッドの呼出しを,そのアプレットの待ち行列に入れる。
それまでのInvoke基本操作によって予約されたメソッド呼出しがすべて実行完了
した時点で,この待ち行列に入れたメソッド呼出しを,Activation振る舞いが生成
したJVMスレッドの中で実行する。
備考 Invoke基本操作からは,4.が終わった時点で,呼出し元へ戻る。すなわ
ち,予約するメソッドを見定め,そのメソッド呼出しを待ち行列に入れ
終わると,Invoke基本操作から戻る。
Invoke基本操作には,次の制約をおく。
− InvokeSucceeded引数には,BooleanVariableオブジェクトを指定しなければなら
ない。
− Method引数は,評価するとオクテット列が得られるものでなければならない。
そのオクテット列は,メソッドの名前を表した,UTF-8符号化による文字列で
なければならない。
− Parameters引数には,予約するメソッドの引数列に対応する値を並べなければ
ならない。
Parametersに並べる順序は,メソッドの引数の順序に従っていなければなら
ない。すべての引数は,値渡しとする。

――――― [JIS X 4346 pdf 14] ―――――

14
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
構文記述
Invoke --> Target,
InvokeSucceeded,
Method,
Parameters・
Target --> GenericObjectReference
InvokeSucceeded --> ObjectReference
Method --> GenericOctetString
Parameters --> Parameter+
Parameter --> GenericBoolean | GenericInteger |
GenericOctetString | GenericObjectReference
|
GenericContentReference
8.5 形式記述
Applet Class --> InterchangedProgram class,
Interactible class,
OriginalBoxSize,
OriginalPosition・
OriginalBoxSize --> XLength, Ylength
Xlength --> INTEGER
YLength --> INTEGER
OriginalPosition --> XYPosition
9. 仮想機械 仮想機械は,VMコードを解釈するあらゆる計算実体の抽象的な仕様とする。この仕様は,
MHEG-6プログラムへ意味の定義を与える。
MHEG-6プログラムは, "The JavaTM Virtual machine specification" (2.2参照)の28章に詳しく述べら
れているJVMによって定義された表現及び意味をもたなければならない。
仮想機械コードの構文及び意味の要件を規定するこの参照仕様のこの部分だけが,この規格の基準条項
を構成する。
28章はすべてこれらの要件を含んでいるが,命令集合及びクラスファイル形式を決めている二つの章
は特に重要である。
9.1 VM命令集合 VM命令集合は,VMコードのコード部分を構成する仮想プロセッサの命令集合を定
義する。
すべてのMHEG-6プログラムのメソッドは, "The JavaTM Virtual machine specification" (2.2参照)の6
章 "The Java Virtual Machine Instruction Set" の151338ページに記載されているVM命令集合を使用しな
くてはならない。
9.2 VM交換形式 VM交換形式は,クラスに編成されたVMコードの構文及び符号化を定義する。ク
ラスファイルは,データ(定数,変数,属性及び値)だけでなくクラスの構造,及びクラスを構成する符
号(一連の命令)を定義する。
MHEG-6プログラムのすべてのクラスは, "The JavaTM Virtual machine specification" (2.2参照)の4章
"The class File Format" の83138ページに記されている交換形式を使用しなくてはならない。
備考 符号化表現したMHEG-6プログラムは,12.1に規定するクラスファイルの集合からなる。

――――― [JIS X 4346 pdf 15] ―――――

次のページ PDF 16

JIS X 4346:1999の引用国際規格 ISO 一覧

  • ISO/IEC 13522-6:1998(IDT)

JIS X 4346:1999の国際規格 ICS 分類一覧

JIS X 4346:1999の関連規格と引用規格一覧