Anzeige
Anzeige

Más contenido relacionado

Similar a Smalltalk ~ ユーザーイリュージョンの黎明(20)

Último(20)

Anzeige

Smalltalk ~ ユーザーイリュージョンの黎明

  1. Smalltalk ユーザーイリュージョンの黎明 @sumim slideshare.com/sumim 2019/5/25 オブジェクト指向のハードコア(リモート参加)
  2. Smalltalkとは • 1970年代にXEROXパロアルト研究所で開発された オブジェクト指向プログラミング言語とそのGUI環境 • アラン・ケイの「ダイナブック」の暫定実装 (今のGUIベースOSに近い) • ただし、現在主流のUnixライクOSとは異なり、 ファイルベースではなく “オブジェクト”ベース • プラットフォームはAltoやその後継のDマシン マイクロコードでバイトコードを直接実行可能 →仮想マシンでバイトコードを実行する方式に…
  3. Smalltalkの系譜 • Smalltalk-72 … タートル描画が使えるスクリプト言語 • Smalltalk-74 … -74+高速描画ルーチン→GUI • Smalltalk-76 … -72とは別物。省コスト版メッセージング • Smalltalk-78 … 8086でも動かせるコンパクト版-76 • Smalltalk-80 … 実験色を排除し商用言語処理系(IDE)へ Smalltalk-72 Smalltalk-74 Smalltalk-76 Smalltalk-80 Reenskaug, Jobs, .. Beck, Cunningham, ....
  4. Smalltalk-72 ウインドウ枠を含めタートルグラフィクスで描画 (図はエミュレータから。赤枠内がAltoでの表示範囲) ポップアップメニューはまだ無かった ※このエミュレーターではマウスでウインドウを移動できないが、機能としてはウインドウのサイズ変更、移動などの機能はあっ たらしい。
  5. ・クラスはJavaScriptのような関数(if式のネスト)で継承機構は無い 条件 ⇒(非false時の処理) false時の処理,条件分岐式 ∢(アイボール),パターンマッチ ☺(スマイリー),タートル(クラス turtle のインスタンス) ☞(指さし)+文字列,シンボルリテラル表現(主に変数) :(コロン),解釈中メッセージ内の次のオブジェクトの読み込み ・メッセージはメソッド呼び出しではなくトークン列 (ただし非同期ではない) Smalltalk-72
  6. BitBLT(Bit BLock Transfer)の発明 ビットマップ上の矩形領域の転送等を計算するルーチン ポップアップメニューの実用速度での描画が可能に! いつものカット・アンド・ペースト編集 をやったとき、彼は「おい!」という叫 び声を聞いた。インガルズは中断した。 ピーター・ドイッチュが立ち上がってス クリーンを指さしていた。 今やったのは、 やったんじゃないかと 俺が思ってることか? 「未来をつくった人々」 http://www.amazon.co.jp/dp/4839902259 より
  7. ユーザーイリュージョン!
  8. Smalltalk-76 • SIMULAスタイル(つまり現在主流のと同じ)クラス機構を採用 継承機能のサポート メソッドもパターンマッチからメンバー関数に メッセージはメソッドの動的呼び出しに → 省コスト版メッセージング メソッドが存在しないときだけメッセージをハンドリング可能に • ウィジェットとUIパターンが充実(次ステップのイリュージョンへ) • スクロールバー(左にポップアップ。フォーカス明示を兼ねる) • カラムインターフェース(システムブラウザー) • 仮想デスクトップ(サブビュー) • ラジオボタン、ペイントツール、ドット拡大編集
Anzeige