14.モジュール(Modules)

モジュールは広範囲の変数名空間を創り出すのに用いられる。モジュールによりプライベートな 変数を持つプログラムおよびプログラム断片(segments)を作ることができる。モジュールの外から 見えるのはエクスポートした変数だけである。モジュール変数(Module variables)は 他の言語での大域変数に類似している。

言語によっては、変数、関数、型、クラスのエクスポートに対して異なったサポートをする モジュールシステムを持つものもある。Dylanのモジュールは変数に対してしか働かない。 関数やクラスも変数に格納されるので、それらを含む変数のアクセスを制御することで、 それらへのアクセスも制御できる。クラスや関数を含む変数をエクスポートすると、実質的に そのクラスや関数をエクスポートしたことになる。その変数をエクスポートしなければ、 そのクラスや関数はプライベートなままである。 [1]

  1. 概観 (Overview)

  2. プログラム、モジュール宣言、表現 (Programs, module declarations and expressions)

  3. モジュール宣言 (Module declarations)

  4. (Examples)


[1]一般には、自己反映的操作をモジュールのカプセル化を破るのに 用いることができる。例えば、プログラマは インスタンスに対してobject-classを 呼ぶことで、インスタンスからそのクラスまでトレースすることができる。 これはたとえ、そのクラスを含む変数を作成者がエクスポートしていなかったとしても 可能である。この問題はシーリングを適切に用いれば解決できるときもある。 シーリングすると多くの自己反映的操作が使えなくなるからである。
目次 索引ライブラリ(次章)