SELF
Self とも。プロトタイプベース・オブジェクト指向言語のひとつ。通常、オブジェクト(クラスのインスタンス)は、クラスで決められた数のデータ(状態)だけを保持し、処理はクラスに委譲するというように、「処理を含んだデータ」というその一般的な認識(モデル)とは実装が異なるため、とくに非開発者などにはその扱いを学ぶことがある種の心理的ハードルになってしまっている。これに対するアンチテーゼとして登場したのがプロトタイプベースで、オブジェクト(フレーム)はシンプルに独自のデータと同時に、クラスに頼らずに自分の処理を持つべし、とし、非開発者がいだくオブジェクトに対する印象をほぼそのまま実現している。
XEROX の PARC での研究をスタンフォードでまとめたもの。その後、Sun Microsystems で開発が続けられた。本家のそれは Solaris 用と、なぜか Mac 用のバイナリしか用意されていないため、かつての Smalltalk のように、名前は知られているが実際に触れたことのある人は少ない…状態。
そのシンプルなオブジェクトモデルとは裏腹に、実装面においては、すべての変数(値スロット)へのアクセスが、メッセージ送信で行なわれる(直接参照しているような記述はシンタックスシュガーに過ぎない)など多くのオーバーヘッドを抱え込んでいた。そのため、VM の高速化技術に関する研究も進んでいてその方面での注目も高い。
技術資料
関連
レポート
--sumim
生物に例えると、クラスベースが真核生物でプロトタイプベースがバクテリアだなってっても興味ない人には意味不明だろうなぁ…(^_^;)。--sumim
おおしまさんの見なしによると、アラン・ケイは、プロトタイプベースが嫌いならしい。Squeak eToys が完全なプロトタイプベースに仕立て上げられなかったのはここに理由があったのでは…っちゅうのは私の穿ちすぎる考えというもの? いずれにせよ、これはちょっと意外でした。アラン・ケイは、その昔、Scheme でプログラムなんか組んだりしていたけど、基本はアイデア・パーソンで、そのアイデアを具現化することさえできさえすれば、オブジェクト指向か否か程度の興味はあっても、それがクラスベースかプロトタイプベースかなんて話は興味がないとばかり思っていたのですが…。SELF に何か良くない思い出でもあるのでしょうか…。たしかに SELF のオリジナルペーパーは Smalltalk に批判的だけどね(^_^;)。--sumim
最近は OS X 版も出てちょっと VM の性能も上がっているいるみたいですね。ちなみに Linux/Cygwin 用の x86 版は こちら 。前に遊んだときよりちょっと分かったような気がすると同時に謎も深まった感じで難儀しています。--sumim
このページを編集 (4389 bytes)
|
以下の 20 ページから参照されています。 |
- Squeak 最終更新: 2004-03-22, 00:54:22 <192>
- Notes 最終更新: 2002-05-28, 11:16:15 <tibook>
- SqueakToys 最終更新: 2006-04-25, 12:53:33 <pharm88>
- Sun 最終更新: 2004-01-29, 13:45:31 <p3193-i>
- クラスベース・オブジェクト指向 最終更新: 2003-02-21, 13:37:57 <tibook>
- プロトタイプベース・オブジェクト指向 最終更新: 2006-04-26, 10:32:39 <khp0591>
- Object感覚の学びにくさの原因 最終更新: 2004-08-31, 14:04:48 <apollon>
- NewtonScript 最終更新: 2004-09-28, 01:34:05 <192>
- クラス指向 最終更新: 2013-11-26, 21:26:01 <fl1-125>
- HyperTalkとプロトタイプベース 最終更新: 2004-12-04, 16:46:06 <adsl-22>
- ミックスイン 最終更新: 2013-03-29, 14:17:03 <phara2>
- CLOS 最終更新: 2003-12-22, 13:10:34 <tibook>
- ある OOPL な会話 最終更新: 2006-05-04, 13:36:56 <192>
- Io 最終更新: 2016-03-18, 11:34:49 <phara2>
- Squeak の workspace で BankAccount 最終更新: 2003-12-21, 17:42:08 <192>
- Traits 最終更新: 2015-11-05, 09:24:48 <phara2>
- 特異メソッド 最終更新: 2006-04-29, 10:32:23 <p4234-i>
- BankAccount 最終更新: 2006-04-26, 10:55:55 <pharm88>
- Strongtalk 最終更新: 2004-10-10, 19:26:42 <p1134-f>
- Slate 最終更新: 2006-04-26, 10:34:16 <khp0591>
This page has been visited 10739 times.