[7] 
[[ISO/IEC 2022]] の[[規定]]する[DFN[[RUBYB[[RUBY[空][くう]][RUBY[集][しゅう]][RUBY[合][ごう]]][empty set]]]]は、
定義された[[文字]]の存在しない[[文字集合]]です。

* 仕様書

[REFS[
-
[8] 
[CITE[ECMA-35_6th_edition_december_1994.pdf]], [TIME[2021-01-16T09:57:02.000Z]], [TIME[2022-04-30T02:06:27.703Z]] 
<https://www.ecma-international.org/wp-content/uploads/ECMA-35_6th_edition_december_1994.pdf>
-- [9] 
<https://www.ecma-international.org/wp-content/uploads/ECMA-35_6th_edition_december_1994.pdf#page=22>
- [37] 
[CITE[[[ISO-IR]]]], [TIME[2021-05-21T12:42:23.000Z]], [TIME[2022-04-29T12:19:20.657Z]] <https://www.itscj-ipsj.jp/custom_contents/cms/linkfile/ISO-IR.pdf#page=23>
]REFS]

* 指示シーケンス

[3] [[ISO/IEC 2022]] の[[エスケープ・シーケンス]]の型のうち
[[1F]], [[2F]], [[4F]], [[8F]], [[9F]], [[10F]], [[11F]],
[[13F]], [[14F]], [[15F]] では[[終端バイト]] [CODE[07/14]]
が[DFN[空集合]] ([DFN[[CODE(charname)@en[EMPTY SET]]]]) に予約されています。
[SRC[[[JIS X 0202]]:1998 13.3.2, 14.1]]

[12] 
[[終端バイト]]を [CODE[07/14]] 
にした場合はその型に合わせた[[空集合]]が[[指示]]されます。

;; [13] ここでいう「[[予約]]」は割り当てられているという意味で、
使っていけないという意味ではなさげです。

[5] 
>>3 の各型の[[エスケープ・シーケンス]]はいずれも[[指示]]に使われるものです。
つまり [[C0]], [[C1]], [[G0]], [[G1]], [[G2]], [[G3]] 
に[[空集合]]を[[指示]]できます。

;;
[18] 
[[12F]] が抜けていますが、 [[12F]] は[[96集合]]を[[G0]]に[[指示]]するものです。
一部で実装されていることもありますが、
[[ISO/IEC 2022]] は認めていません。
[SEE[ [[指示シーケンス]] ]]

-*-*-

[10] 
[[ISO/IEC 2022]]
は、
[VAR[F]] = 07/14 の時[[空集合][空集合 (ISO/IEC 2022)]]が[[指示]]される
[SRC[[[ISO/IEC 2022]] 1994 14, >>9]]
と定めています。
この[[規定]]は[[中間バイト]]に言及しておらず、
不明瞭で解釈の余地があります。

[14] 
素直に解釈すれば[[中間バイト]]に関わらず
[VAR[F]] が [[7/14]] のときは[[空集合]]になるように読めます。

[36] 
ところが
[[ISO-IR]] 
の[[94集合]]の[[中間バイト]] [[2/1]] の表の
[[7/14]]
欄は空欄 (未割当) になっていて
[SRC[>>37]]、
[[空集合]]ではなく、
別の[[符号化図形文字集合]]が登録されることが有り得そうに見えます。


[6] また、 [[DRCS]] の[[中間バイト]] [[2/0]]
があるときは、[[終端バイト]]が [[7/14]] でも[[空集合]]にはならないみたいです。
[SEE[ [[DRCS]] ]]


[1] 
一方で、
[CODE(charname)@en[DOCS]] の
ESC % / ~ は [CODE(charname)@en[EMPTY SET]] では''ない''はずですが、 [[ISO-IR]]
の表では [CODE(charname)@en[EMPTY SET]] であるかのような色が塗られています。
ESC % ~ には塗られてないので、間違いだと思われます。
「[CODE(charname)@en[DOCS]] の[[空集合]]」
は意味を成しません。
[[ISO-IR]] 
の表の塗り方はあまり信用できないといえます。


[15] 
現実的には今後新たな[[終端バイト]]が [[ISO-IR]] に登録される可能性は低い上、
[[空集合]]を[[指示]]する必要性もほぼ無いので、
[[中間バイト]]付き [[7/14]] が[[空集合]]であろうがなかろうが、
困ることはなさそうです。


-*-*-

[19] 
[[複数バイト集合]]の[[指示シーケンス]]でも[[空集合]]が指定できます。
しかしそれが何バイトなのかはよくわかりません。
[[空集合]]の[[ビット組合せ]]は使用しないことになっているので、
仕様書としては規定する必要がないということなのでしょうか。
[[複数バイト集合]]の[[終端バイト]]の割当の規則によれば4バイト以上と解釈されますが。。。
[SEE[ [[指示シーケンス]] ]]

-*-*-

[20] [[IRR]] も参照。

* 文字集合

[4] [[空集合]]は[[文字]]を含まない[[集合]]です
[SRC[[[JIS X 0202]]:1998 14.1]]。

[11] 
[[空集合]]が指定された場合には、
対応する[[ビット組合せ]]を使用してはなりません
(存在しない[[文字]]を[[呼出]]してはなりません)
[SRC[[[JIS X 0202]]:1998 14.1]]。


[2] [[ビット組合せ]]が使われた時どう振る舞うべきかは不明です。
[SEE[ [[ISO/IEC 2022]] のエラー処理の項 ]]

* 文脈

[16] 
この[[空集合]]をいつ何のために使うのかは謎です。

[17] 
何も[[指示]]されていない初期状態を再現したいときに使えるのかもしれませんが、
そうしたい場面があるのかも謎です。

[21] 
[[CNS 5205]]
には
[[C1]] を使用しないため [[C1]] に [N[7/14]] を[[指示]]する、
[[C0]] を使用しない場合には [[C0]] に [N[7/14]] を[[指示]]する、
との[[エスケープシーケンス]]の説明の記述があります。



* メモ
