<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>スクイークetoysって何</title><revhistory><revision><revnumber>22</revnumber><date>2010-03-17 00:57:55</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>21</revnumber><date>2010-03-09 07:27:02</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>20</revnumber><date>2010-03-09 07:16:48</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>19</revnumber><date>2010-02-16 05:09:08</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>18</revnumber><date>2010-02-11 08:02:57</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>17</revnumber><date>2010-02-09 02:06:39</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>16</revnumber><date>2010-02-09 02:05:51</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>15</revnumber><date>2010-02-09 01:27:58</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>14</revnumber><date>2010-02-09 01:12:53</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>13</revnumber><date>2010-02-09 01:11:27</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>12</revnumber><date>2010-02-09 01:01:02</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>11</revnumber><date>2010-02-09 00:54:11</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>10</revnumber><date>2010-02-05 12:50:18</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>9</revnumber><date>2010-02-03 08:05:03</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>8</revnumber><date>2010-02-03 08:02:51</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>7</revnumber><date>2010-02-03 08:00:44</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>6</revnumber><date>2010-02-03 05:19:24</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>5</revnumber><date>2010-02-03 05:16:39</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>4</revnumber><date>2010-02-03 05:14:20</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>3</revnumber><date>2010-02-03 05:11:32</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>2</revnumber><date>2010-02-03 04:37:42</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>1</revnumber><date>2010-02-03 04:36:48</date><authorinitials>masahiko</authorinitials></revision></revhistory></articleinfo><section><title>スクイークetoysって何</title><para>誰にでもプログラミングができる教育用ソフトウエアの１つです。 </para><itemizedlist><listitem override="none"><para>元になったのはSmalltalkで５０年の歴史があります。 </para></listitem><listitem override="none"><para>スクイークはSmalltalkのオープンソース版です。 </para></listitem><listitem override="none"><para>etoysはスクイーク上で動作するGUIプログラミング環境です。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--><section><title>計算機とパソコンの歴史</title><para>1942年 </para><itemizedlist><listitem override="none"><para>世界初の電子計算機 ABC </para></listitem></itemizedlist><para>1949年 </para><itemizedlist><listitem override="none"><para>世界初のプログラム内蔵式電子計算機 EDSAC </para></listitem></itemizedlist><para>1971年 </para><itemizedlist><listitem override="none"><para>マイクロコンピュータ 4004 CPU </para></listitem></itemizedlist><para>1977年 </para><itemizedlist><listitem override="none"><para>パソコン Apple II </para></listitem></itemizedlist><para>1983年 </para><itemizedlist><listitem override="none"><para>GUIパソコン リサ </para></listitem><listitem override="none"><para>翌年にはマッキントッシュが発売された。 </para></listitem></itemizedlist><para>smalltalkはオブジェクト指向とGUIの点で多くの影響を与えている。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>Smalltalk (オブジェクト指向言語の元祖)</title><para>1960年代初頭 </para><itemizedlist><listitem override="none"><para>ゼロックスのパロアルト研究所でAlan KayのプロジェクトでSmalltalk言語が開発された。 </para></listitem><listitem override="none"><para>子供の教育にコンピュータを使うことを目的として考えられた。 </para></listitem></itemizedlist><para>1972年 </para><itemizedlist><listitem override="none"><para>Smalltalk-72 </para></listitem><listitem override="none"><para>最初にできたSmalltalkシステム。以後２年ごとに新しい版が出る。 </para></listitem></itemizedlist><para>1973年 </para><itemizedlist><listitem override="none"><para>ワークステーションALTOが作られた。 </para></listitem><listitem override="none"><para>当時としては革新的な特徴 </para><itemizedlist><listitem><para>ビットマップディスプレイ </para></listitem><listitem><para>マウス </para></listitem><listitem><para>イーサネット </para></listitem></itemizedlist></listitem></itemizedlist><para>1980年 </para><itemizedlist><listitem override="none"><para>Smalltalk-80 </para></listitem><listitem override="none"><para>Smalltalkの最も有名なバージョン </para></listitem></itemizedlist><para>1981年 </para><itemizedlist><listitem override="none"><para>Byte Magazine ８月号でSmalltalkが特集される </para></listitem><listitem override="none"><para>オブジェクト指向が流行りはじめる </para></listitem></itemizedlist><para>1983年 </para><itemizedlist><listitem override="none"><para>Smalltalk-80システムのOfficial Release </para></listitem></itemizedlist><para>1984年 </para><itemizedlist><listitem override="none"><para>Apple Smalltalk </para></listitem><listitem override="none"><para>MacIntosh Plus上で動作するSmalltalk-80 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>Squeak (オープンソースのSmalltalk)</title><para>誰にでもプログラミングができる教育用ソフトウエアの要求にこたえるべく、1995年に開発が始まり、最初の版が1996年に公開された。 </para><itemizedlist><listitem override="none"><para>基本的な部分はSmalltalk-80と同じ。 </para></listitem><listitem override="none"><para>画面の例。 </para></listitem><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%82%B9%E3%82%AF%E3%82%A4%E3%83%BC%E3%82%AFetoys%E3%81%A3%E3%81%A6%E4%BD%95?action=AttachFile&amp;do=get&amp;target=squeak.png"/></imageobject><textobject><phrase>squeak.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>Etoys</title><para>SqueakにはMorphicと呼ばれるGUIフレームワークがあり、その上でタイルスクリプティングを行うことができました。 </para><para>これを主たるインターフェースとした環境がEtoysです。 </para><para>EtoysはSqueak上で動作しています。 以下の説明でシステムイメージが異なるだけ。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>動作</title><para>ユーザがSqueakで書いたプログラムは、他のOS上のSqueakでも動作します。 </para><itemizedlist><listitem override="none"><para>Smalltalkのプログラムはバイトコードにコンパイルされる。 </para></listitem><listitem override="none"><para>バイトコードはSmalltalk VM(バーチャルマシン)上で動作する。 </para></listitem><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%82%B9%E3%82%AF%E3%82%A4%E3%83%BC%E3%82%AFetoys%E3%81%A3%E3%81%A6%E4%BD%95?action=AttachFile&amp;do=get&amp;target=squeak1.png"/></imageobject><textobject><phrase>squeak1.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>バイトコード、システムイメージはOS等に依存せず共通です。 </para><para>VMはOSに依存。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>Squeakの移植</title><para>Squeakは移植性が高く、多くの種類のコンピュータやOS上で動作する。 </para><itemizedlist><listitem override="none"><para>SmalltalkシステムはVMとシステムイメージでできている。 </para></listitem><listitem override="none"><para>システムイメージとVMをSmalltalkで記述し作成する。 </para></listitem></itemizedlist><para>システムイメージ </para><itemizedlist><listitem override="none"><para>システムイメージはSmalltalkのクラスライブラリである。 </para></listitem><listitem override="none"><para>クラスライブラリはSmalltalkをコンパイルしてできたバイトコードの集まりである。 </para></listitem><listitem override="none"><para>Smalltalkプログラムをバイトコードに変換するコンパイラはSmalltalkで書かれている。 </para></listitem><listitem override="none"><para>したがって、バイトコードはSmalltalkで作成できる。 </para></listitem></itemizedlist><para>VM(バーチャルマシン) </para><itemizedlist><listitem override="none"><para>VMもSmalltalkで記述されている。 </para></listitem><listitem override="none"><para>Smalltalkで記述されたVMはCに変換され、コンパイルされて環境ごとの実行ファイルができる。 </para></listitem><listitem override="none"><para>SmalltalkからCへの変換もSmalltalkで記述されている。 </para></listitem><listitem override="none"><para>したがって、Smalltalkで処理の後CでコンパイルすればVMが作成できる。 </para></listitem></itemizedlist><para>青矢印はSmalltalkで処理、白矢印はCでコンパイル。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%82%B9%E3%82%AF%E3%82%A4%E3%83%BC%E3%82%AFetoys%E3%81%A3%E3%81%A6%E4%BD%95?action=AttachFile&amp;do=get&amp;target=squeak2.png"/></imageobject><textobject><phrase>squeak2.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>SqueakはすべてをSmalltalkで記述することで移植性を高めている。 </para></section></section></article>