実体と表現に関するメモ

1 ... 
     実体                  : 個物に対する普遍的存在
     表現(representation)  : 実体に対する具体的なデータ構造
     Serialize/Unserialize : 実体に対するバイト列表現化

実体から実体への表現を用いた変換を Translation とする。
同一の実体は異なる表現を持つ事が出来、その表現形式を指定する事が出来る。

実体は型(type)によって区別される。

表現には現状で2つの分類がある。

1 ... Emacs Lisp representation.
2 ... CCL representation.

1つの実体は、1つのEmacs Lisp Representation,
1つのCCL Representationを持つ事が出来る。
全種類の表現を持たなくては、その実体が
使用できない局面が存在する。

1つの実体が(un)serialize方法を複数持つ事が出来る。

Sample encode
emacs-mule(unserialize) -> char(CCL-char:CCL)
                        -> UCS(CCL-UCS:CCL) -> UTF8(Serialize)

Sample decode
UTF8(unserialize) -> UCS(CCL-UCS:CCL)
                  -> char(CCL-char:CCL) -> emacs-mule(serialize)

;-----------------------------------------------------------------------------

表現の定義

厳密な意味で、表現の定義は存在しない。表現は表現同士の相互変換を記述する事によって
間接的に定義される。

(1) Emacs Lispによって記述される。 
    elisp <-> CCL

(2) CCLによって記述される。
    CCL <-> octet-stream
