作者: 機械伯爵
日時: 2009/3/21(10:00)
 機械す。

> >  評価される前は全てシンボルで、クォートされると評価されないからシンボル
> > そのまま、という認識だったんですけど。
> 
> いやまあそうだとしても、クォートついたのがシンボルというのは拡大解釈の
> しすぎじゃないかと。

 ……う〜ん。

『Lisp('abc)やSmalltalk(#abc)やRuby(:abc)のように、シンボルの使える言語が
羨ましい。』

 まぁ、上が私のブログの件の言葉なんですけど、後ろの二つとLispの書き方は
意味が違う、ということでしょうか。

※SmalltalkやRubyはシンボルそのものの書き方、Lispのはシンボルを定義するため
 の書き方?
 
> シンボルとパッケージ
> http://www.fireproject.jp/feature/common-lisp/details/symbol-package.html
> 
> 
> シンボルは以下から構成される.
> 
>     * シンボル名
>     * パッケージ
>     * 変数値
>     * 関数
>     * 属性リスト
> 
> シンボルは簡単に作成できて,見ためも単なる文字列のように見えるが,
> 内部では構造を持っていて,いろいろな情報を持っている.

『前節のとおり,シンボルは単なる名前ではなく実体を伴うオブジェクトである.
人間はシンボル名を通して,シンボルを単なる名前として認識できる.シンボルの
シンボル名はsymbol-nameによって参照できる.』

 引用は同上。

 ちょっとショックでした。

 私がシンボルをクラスインスタンスで実装したのは「方法」であって、
シンボルって『書式/文法』だとばかり思ってたんですよね。
 
 つまり『目に見えている(人間が扱うべきもの)』がシンボルだと。

 シンボル(象徴/印章)がオブジェクト(モノ)って、なんか言葉として破綻
してるような……

 勿論、コードの中で扱うわけですから、どんな形であれメモリ領域を伴った
実体が無ければならないわけですから、シンボルオブジェクト(?)の話が
どのように記録されてるか、って話ならわかるんですけどね。

 シンボルという言葉を意識してからまだ日が浅いので、私自身が多分混乱
してるんだと思いますけど……難しいなぁ。

『またここから派生して、情報工学やソフトウェア工学で、データに含まれる
一塊の記号や、プログラミングで用いられる名前を指して用いられる。例えば
コンパイラはソースコードからオブジェクトコードを生成する際、機能的な
「実体」を構成する一連の機械語命令に加え、それを指す「シンボル」をも生
成する。これらのシンボルを用いて、リンカが複数のモジュールの間の関係を
構成する。』(Wikipedia 日本語版)

 これは参考になるようなならないような……

 /機械伯爵/