実体と表現に関するメモ 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