2009年5月17日日曜日

Smalltalk System

SmalltalkはXeroxパロアルト研究所におけるDynaBook(→Dynabook)構想に基づいてアラン・ケイが開発したAlto用のOSである。現時点ではSmalltalkの言語的側面のみが一人歩きしているが、squeakはSmalltalk Systemを守り通している。


  • only message passing between two objects

  • 「3+4」は式ではない。つまりoperator(+)とoperand(3,4)という関係にはあらず。
    「3」という名のオブジェクトに対して「+4」というメッセージを送信することを意味した記述である。「+4」というメッセージを受け取った「3」オブジェクトに対して、Smalltalk Systemから"do it"というメッセージを送信すると「3」オブジェクトはその内部において「自信+4」を評価する。"print it"というメッセージを送信すると評価&出力をおこなう。

  • Smalltalk Systemから、その内部に居るオブジェクトらへのメッセージとしては"do it"、"print it"、"browse it"などがある。

  • Smalltalkを言語的側面で見ると、すべてがobject message passingの記述である。

  • この記述を別の側面で見ると、オブジェクト間でのメッセージのやりとりの記述であることから「仕様」そのものを表していることになる。

  • 言うまでもなく「仕様」が先にありけり。この仕様に基づいてオブジェクトを抽出し、それらの間でのmessage passingを記述してゆけば、それは既にSmalltalk System上で実行可能なプログラムなのである。

  • つまり、Smalltalkによって記述されたプログラムはドキュメントである。

  • 実際のSmalltalk System(squeakなど)で、いかなる場所にこの記述を置いても、いつでも評価可能なのである。例えそれがWorkSpace WindowのTitle Barであるにせよ。

  • Smalltalk Systemは極めて柔軟性に富んでいる。

  • いわゆる動的性能(dynamic)

  • Smalltalk System自体もSmalltalkで記述されており、その記述に変更を加えることでSystemの挙動を変えることもできる。

  • そんなことしたら後が大変じゃん、と思うでしょうがご心配なく。このような記述は単にインスタンスに対して行われるだけなので、別のインスタンスには何の影響も及ぼしません。

  • このような特性を総称してこその「Smalltalk」なのである。

0 件のコメント: