22093


[一般的な「端末(エミュレーター)」の仕様は？](https://ja.stackoverflow.com/q/21995/754)
のコメントで紹介された、[ECMA-48](http://www.ecma-
international.org/publications/standards/Ecma-048.htm)の規約を読んでいました。この規約は、制御コード(Control
Function) について記述されているようですが、その中で規約が想定する device (端末？) として、"Presentation
Component" のみを持つ場合と、 "Data Component" と "Presentation Component" の両方を持つ
bidirectional な場合を想定していると記述がありました。

Presentation Component は、制御コードと印字文字(graphical
character)を受け取って人間が読める形で出力する抽象装置であると理解できたのですが、 Data Component
が何を言わんとしているのかがさっぱり理解できませんでした。

6.1.5 Relationship between active data position and active presentation
position より、

> In a bi-directional device, if it has a presentation component and a  
>  data component, the active presentation position is the character  
>  position in the presentation component that corresponds to the active  
>  data position in the data component. Because of the possible  
>  differences between character progression and character path, as in  
>  some bi-directional environments, the coordinates of the active data  
>  position in the data component and of the active presentation position  
>  in the presentation component may differ.

かろうじて、 Data Component と Presentation Component
の位置がずれている場合があるというのは理解できたのですが、それが具体的にどんな場合なのかが想像できていません。端末において、このずれが発生している状態とは、どのような状態ですか？


CC BY-SA 3.0
2016-02-12T17:51:28.667
22021
2016-02-15T04:07:45.527
2017-04-13T12:52:39.113
-1
754
question
端末
ECMA-48 に記述がある、 data component の概念が何を表しているのかわからない


data component/presentation component は bi-directional text のサポートの為に[ECMA
TR/53](http://www.ecma-
international.org/publications/techreports/E-TR-053.htm)を元に導入された概念です。

data component は入力されたデータがそのまま保存される領域で、  
presentation component は実際に画面に表示される形式になります。

例えば`ABC<SRS 1>def<SRS 0>GHI`という入力があった場合、(`<SRS>`は書字方向の反転の制御シーケンス)  
data component 内のデータは

> ABCdefGHI

となりますが presentation component では

> ABCfedGHI

となります。(デフォルトの書字方向がLeft to Rightの場合)

詳細は [ECMA TR/53](http://www.ecma-
international.org/publications/techreports/E-TR-053.htm) を読んでみて下さい。


CC BY-SA 3.0
2016-02-15T04:07:45.527
22093
2016-02-15T04:07:45.527
12203
22021
answer