== スクイークetoysって何 == 誰にでもプログラミングができる教育用ソフトウエアの1つです。 . 元になったのはSmalltalkで50年の歴史があります。 . スクイークはSmalltalkのオープンソース版です。 . etoysはスクイーク上で動作するGUIプログラミング環境です。 ----- === 計算機とパソコンの歴史 === 1942年 . 世界初の電子計算機 ABC 1949年 . 世界初のプログラム内蔵式電子計算機 EDSAC 1971年 . マイクロコンピュータ 4004 CPU 1977年 . パソコン Apple II 1983年 . GUIパソコン リサ . 翌年にはマッキントッシュが発売された。 smalltalkはオブジェクト指向とGUIの点で多くの影響を与えている。 ---- === Smalltalk (オブジェクト指向言語の元祖) === 1960年代初頭 . ゼロックスのパロアルト研究所でAlan KayのプロジェクトでSmalltalk言語が開発された。 . 子供の教育にコンピュータを使うことを目的として考えられた。 1972年 . Smalltalk-72 . 最初にできたSmalltalkシステム。以後2年ごとに新しい版が出る。 1973年 . ワークステーションALTOが作られた。 . 当時としては革新的な特徴 * ビットマップディスプレイ * マウス * イーサネット 1980年 . Smalltalk-80 . Smalltalkの最も有名なバージョン 1981年 . Byte Magazine 8月号でSmalltalkが特集される . オブジェクト指向が流行りはじめる 1983年 . Smalltalk-80システムのOfficial Release 1984年 . Apple Smalltalk . !MacIntosh Plus上で動作するSmalltalk-80 ---- === Squeak (オープンソースのSmalltalk) === 誰にでもプログラミングができる教育用ソフトウエアの要求にこたえるべく、1995年に開発が始まり、最初の版が1996年に公開された。 . 基本的な部分はSmalltalk-80と同じ。 . 画面の例。 . {{attachment:squeak.png}} ---- === Etoys === SqueakにはMorphicと呼ばれるGUIフレームワークがあり、その上でタイルスクリプティングを行うことができました。 これを主たるインターフェースとした環境がEtoysです。 EtoysはSqueak上で動作しています。 以下の説明でシステムイメージが異なるだけ。 ---- === 動作 === ユーザがSqueakで書いたプログラムは、他のOS上のSqueakでも動作します。 . Smalltalkのプログラムはバイトコードにコンパイルされる。 . バイトコードはSmalltalk VM(バーチャルマシン)上で動作する。 . {{attachment:squeak1.png}} バイトコード、システムイメージはOS等に依存せず共通です。 VMはOSに依存。 ---- === Squeakの移植 === Squeakは移植性が高く、多くの種類のコンピュータやOS上で動作する。 . SmalltalkシステムはVMとシステムイメージでできている。 . システムイメージとVMをSmalltalkで記述し作成する。 システムイメージ . システムイメージはSmalltalkのクラスライブラリである。 . クラスライブラリはSmalltalkをコンパイルしてできたバイトコードの集まりである。 . Smalltalkプログラムをバイトコードに変換するコンパイラはSmalltalkで書かれている。 . したがって、バイトコードはSmalltalkで作成できる。 VM(バーチャルマシン) . VMもSmalltalkで記述されている。 . Smalltalkで記述されたVMはCに変換され、コンパイルされて環境ごとの実行ファイルができる。 . SmalltalkからCへの変換もSmalltalkで記述されている。 . したがって、Smalltalkで処理の後CでコンパイルすればVMが作成できる。 青矢印はSmalltalkで処理、白矢印はCでコンパイル。 . {{attachment:squeak2.png}} SqueakはすべてをSmalltalkで記述することで移植性を高めている。