Smalltalk - oraccha/omicron GitHub Wiki

純粋なクラスベースのオブジェクト指向言語

古い Smalltalk-80 から最近になって派生的に生じた処理系としては,Squeakが存在する. 同じ Smalltalk-80 から時間をかけて段階的に進化した処理系が VisualWorks. この2つが、オリジナル Xerox Smalltalk 処理系からの直系の子孫。

  • [http://www.smalltalk.org/ ここってもしや本家?]

    • ポータルです。いわゆる“本家”というものはありません。--sumim
  • [http://www.smalltalk.org/versions/ いろんな処理系揃い踏み?]

  • [http://www.sra.co.jp/people/nishis/learning/Aug-Oct1999/90days.html InPraiseOfLearing]

  • [http://www.sra.co.jp/people/aoki/SuperAsciiJ/index.html Smalltalkソフトウェア開発] . 青木淳氏による SuperASCII の連載.

  • [http://users.ipa.net/~dwighth/smalltalk/bluebook/bluebook_imp_toc.html Smalltalk-80: The Language and Its Implementation] . BlueBook という有名な本の中の一章らしい.

  • [http://users.ipa.net/~dwighth/smalltalk/byte_aug81/design_principles_behind_smalltalk.html Design Principles Behind Smalltalk] . 20年前のByte誌の記事

    • [http://d.hatena.ne.jp/umeaji/20060721#p1 Design Principles Behind Smalltalk (in Japanese)] (umeajiの日記 2006-07-21)
  • [http://video.google.com/videoplay?docid=-4365247885921962429 Smalltalk 80] (GoogleVideo) . TV 番組らしい.

  • [http://www.sra.co.jp/smalltalk/SML/SML.htm SML] . Smalltalkers' Salon ML のアーカイブ.

  • [http://www.theregister.co.uk/2004/07/27/esmertec_acquires_oovm/ Forgotten language enables nonstop gadgets] (The Resigter 2004-07-27)

Smalltalkのバイトコード


現在入手可能な処理系

  • VisualWorks

    • Win/Mac/Solaris/Linux版あり。
    • ひとつのバイナリイメージが手を加えずにすべてのプラットフォーム(VM)で動く。
    • 非商用版がダウンロード可能
  • DolphinSmalltalk

    • 非商用版がダウンロード可能
  • VisualAageForSmalltalk

    • IBMの製品。姉妹品(笑)に VisualAgeForJava がある。
  • [http://smalltalk.gnu.org/ GNU Smalltalk]

    • [http://journal.mycom.co.jp/news/2008/01/08/035/index.html GNU Smalltalk 3登場、Smalltalk-80実装] (マイコミジャーナル 2008-01-08)
  • モバイル方面

    • 勿論Squeakが移植済みの環境も多い。
      • 「ざうちゅう」
      • MGL2にも
    • [http://member.nifty.ne.jp/abee/poo/ POCKETFUL_OF_OBJECTS]
      • [http://member.nifty.ne.jp/abee/smalltalk/mobilegear.htm Smalltalk on Mobile Gear]
    • [http://www.pocketsmalltalk.com/ PocketSmalltalk] Palmでやれるっすか。ニラニラー(^^; …ん?これってcross開発専用っすか?(t_t) #てゆーかそれならば以前どっかで見た記憶が…
    • [http://www.smalltalk.org/versions/LittleSmalltalk.html LittleSmalltalk] ちょー小さい処理系(Javaに対するWabaみたいな立場か?)。 POCKETFULで紹介されてる頁からはソースがLink切れ。こっちが生きてる。
      • [http://d.hatena.ne.jp/sumim/20060222/p1 Little Smalltalk] (sumim's smalltalking-tos 2006-02-22)
    • [http://web.engr.oregonstate.edu/~budd/SmallWorld/ReadMe.html SmallWorld] . Little Smalltalk の Java porting + GUI
    • [http://www.huv.com/uSeeker/smalltalk/ MicroSeeker] . VTech Helio や PIC!! などでも動作する Smalltalk 処理系.
      • [http://www.huv.com/uSeeker/smalltalk/pic.html PIC/Smalltalk]
  • [http://www.strongtalk.org/ Strongtalk] . 高速なVM.Sunに買収され,HotSpot VMに技術転用されたらしい.


Smalltalkは、オブジェクトメモリのイメージ中に全システムのソースとコンパイル済バイトコードが それぞれ管理されている。

  • 例えばバイトコード中のリテラルを直接書き換えたりすると、ソースと違う挙動になったりする。 (でもIBMのVisualAge for Smalltalkではダメらしい。)

UNIXなどで、ファイルシステム中に全システムのソースとコンパイル済ロードモジュールが それぞれ管理されていることを考えると、SmalltalkはまさにOSだという気持ちになって来る。

  • あうう。 [http://www.sra.co.jp/smalltalk/SML/3001-4000/mails/3001-3100/3030.txt 青木先生の蘊蓄] によればソースはイメージの外ですね。効率を考えれば当然ですが、がっくり。

Smalltalkにおけるプログラムは、ソースコードを変更してacceptするたびにチェンジファイルに書き出され全変更履歴が残る。変更の差分をWikiの差分表示のようにブラウズすることもできる。 → [http://www.sra.co.jp/people/kondo/business/VW/basic7/3-5/index.html#files Smalltalkの管理ファイル]

[http://www.sra.co.jp/people/kondo/business/VW/library7/2-4/index.html Smalltalkでの伝統的なチーム開発]

  • CVSなんかを使った場合との違いは、中央にリポジトリがあって権限があれば自由にコミットできるという体制と、モデレータが新しいコードをひととおりレビューしながらコミットしていく体制の違い。 . 「ライブラリアン」=Linus、「その他開発者」=彼にパッチを送る人、みたいな対比で考えるといいのかな。