Squeakのソースを表示
←
Squeak
移動先:
案内
、
検索
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
要求した操作を行うことは許可されていません。
このページのソースの閲覧やコピーができます。
[[ファイル:Squeak 3.9 + SmallDEVS.png|thumb|right|Squeak 3.9]] '''Squeak'''('''スクイーク''')は[[Smalltalk]]環境のひとつで、[[ゼロックス]]が[[1980年]]当時の主要[[コンピュータ]]メーカー([[IBM]]、[[ディジタル・イクイップメント・コーポレーション|DEC]]、[[ヒューレット・パッカード]]、[[アップル インコーポレイテッド|アップルコンピュータ]]、[[Tektronix]])にライセンス供与した[[Smalltalk|Smalltalk-80]]の販売直前バージョン (v1) をベースに、アップルが自社の[[Lisa (コンピュータ)|Lisa]]および[[Macintosh]]用に開発したApple Smalltalkから派生したものである。 == 開発の経緯 == [[1970年代]]の[[パロアルト研究所]]での俗に言う“[[ダイナブック]]プロジェクト”において、暫定Dynabook([[Alto]]の同チームにおける呼び名)の[[オペレーティングシステム]] (OS) およびコンピュータ環境にあたる[[Smalltalk]]の開発にたずさわったメンバー、特にアイデアパーソンの[[アラン・ケイ]]、その実装者のダン・インガルスらが中心となり、当初アップルにおいて同プロジェクトは始動した。のちに[[Walt Disney Imagineering]]を経て、アラン・ケイが設立した[[NPO]]である[[Viewpoints Research Institute]]に活動の拠点を移し現在も開発が続けられている。 開発の契機となる[[1995年]]ごろにはまだ[[ライブラリ]]が整っていなかった[[Java]]や、すでにいくつか存在した商業ベース[[統合開発環境|IDE]]として認知、発展を遂げた当時のSmalltalkには求めにくかった、自由で高度な移植性と小さいフットプリント、高機能な[[マルチメディア]]処理用ライブラリを持つことを特徴とし、それを動作させるためのOSや[[プラットフォーム (コンピューティング)|プラットフォーム]]に依存しない、ユーザーサイド[[プログラミング (コンピュータ)|プログラミング]]を強力にサポートするコンピュータ環境を目指してその開発はスタートした。 == 環境と言語 == Squeakも他のSmalltalk環境同様、環境記述およびデータ記述言語、およびユーザースクリプティング言語としてSmalltalkを使用できるようになっている。また、非常に古い実装に基づいてはいるものの、Smalltalk環境が当初から備えていたクラスブラウザ、オブジェクトインスペクタ、[[テキストエディタ]]、[[デバッガ]]などを有機的に連動させる[[オブジェクト指向]]プログラミングのための機構は、ベースとなったApple Smalltalkからそのまま環境内に引き継がれ、利用可能な状態にある。 Squeakの[[仮想機械]](Smalltalk[[バイトコード]][[インタプリタ]])はSmalltalkのサブセットで記述されており、それを[[C言語]]に変換するトランスレータを用いて生成される。この独特の仮想機械開発スタイルはSqueakに高い移植性をもたらしている。実際、Squeakは各種の[[UNIX]]、[[Microsoft Windows|Windows]]をはじめ、[[MS-DOS]]、[[BeOS]]、[[TRONプロジェクト|TRON]]など、[[Palm OS]]以外のメジャーなプラットフォームに移植されており、めずらしいところでは、[[シャープ]]の[[Zaurus]](旧Zaurus、もしくは最近の[[Linux]] Zaurus)で動作するSqueak仮想機械も存在する。移植性を重視した初期の同仮想機械は、他の商用SmalltalkやJavaなどで行なわれる[[ジャストインタイムコンパイル方式|動的コンパイル]](JITコンパイル)を欠いていたが、Eliot Miranda氏が新たに手がけたCogVMと呼ばれる次世代仮想機械では同機構も取り入れられ従来より5~10倍の性能向上を果たしている。 Squeak環境にはSmalltalkとは別に、Squeak [[Etoys|eToys]](あるいはSqueakToysなど)と呼ばれる[[プロトタイプベース]][[オブジェクト指向]]プログラミング言語・環境に近い仕組みを持つ非開発者向けプログラミング環境(タイルスクリプトシステム、あるいは単にスクリプトシステムと呼称)が実装されている。Morph(モーフ)と呼ばれる[[可視化]]に適した機構を組み込んだオブジェクトに対し、その属性(動き、色、形、振る舞いなど)を変化させる手続きを、パネル状のパーツをドラッグ&ドロップで組み合わせで表現できる。 こうした特徴から同スクリプトシステムは、プログラミング未経験者のほかに、[[キーボード (コンピュータ)|キーボード]]の扱いに馴れていない低年齢層ユーザーにも容易に扱うことができる。アラン・ケイの長年の共同研究者であるキム・ローズらは、この機構が低学年向けのコンピュータ・リテラシおよび自然科学教育に活用できることに早くから目を付け、米日独での教育機関との共同プロジェクトを立ち上げてその高い教育効果を示しつつある。 == 多言語化と日本語対応 == 大島が中心となって実装したSqueakの多言語拡張に基づき、阿部、梅澤、林、山宮らによってSqueakおよびSqueak eToysの[[日本語]]化パッケージが作成された。多言語化拡張は正式版Squeakバージョン3.8以降、およびeToys用にカスタマイズされたSqueaklandバージョン2005以降に統合されており、ユーザーは正式版をダウンロードするだけで日本語を使用することができる。 == アプリケーション == Squeak(およびSmalltalk)環境においては、データもアプリケーションも、そして環境自体(つまりシステム)すら、すべてSmalltalk言語で記述されたオブジェクトで構成されているため、通常のコンピュータ環境でいうところのアプリケーションソフトという概念は希薄であるが、それでもそう呼ぶに相応しいオブジェクト群を見ることができる。 *開発者向け ** Browser クラスやメソッド定義を閲覧したり、編集・追加するためのソフト ** Inspector オブジェクトの属性を検査するためのソフト ** Debugger インタプリタの内部状態やその推移を検査するためのソフト ** Change Set クラスやメソッド定義に加えられた変更の履歴を管理するデータベース ** Method Finder 任意の文字列を含むメソッド名やその定義を呼び出すツール ** Processes プロセス閲覧・管理ツール ** Transcript 通常の開発環境における標準出力的役割りを担うソフト *一般向け ** Workspace [[WYSIWYG]]タイプの書き捨ての[[メモ帳]] ** GeeMail 文書と図版の共存が可能なメモ帳 ** PaintBox ペイントツール ** Book カード型データベースおよびアクティブブック作成用のオーサリングツール ** Stack HyperCardライクなオーサリングツール ** File List ディレクトリ閲覧、テキストエディタ、gzip圧縮などの機能を持つファイラ ** Zip Tool zip圧縮およびその展開を行なうためのツール ** Scamper [[ウェブブラウザ]](ただし多言語化時においても日本語使用不可) ** Celeste メーラ(ただし多言語化時においても日本語使用不可) ** ThreadNavigator プレゼンツール ** Clock、Watch 時計 *教育向け ** Squeak eToys タイルスクリプトシステム ** Nebraska ネットを介した複数ユーザーのデスクトップ共有のためのシステム ** Alice 3Dオブジェクトのオーサリングのためのシステム *ゲーム ** Chess [[チェス]]ゲーム ** ChineseChecker ** Cipher 暗号解読ゲーム ** Crostic クロスワードゲーム ** [[フリーセル|FreeCell]] カードゲーム ** Mines マインスイーパー ** Same [[さめがめ]] ** Tetris [[テトリス]] また、アプリケーションのような振る舞いをする大規模な機能性オブジェクト群とそれらを機能させるための最低限のオブジェクトを残して余計な部分を環境からそぎ落としてしまい、Smalltalk環境自体をまるでひとつのアプリケーションソフトであるかのように見せ、配布する形態をとることもある。Squeak公式サイトとは別に用意されたSqueaklandサイトで配布されているウェブブラウザプラグイン版のSqueakは、先のSqueak eToysに特化されたアプリケーションともいえる。 他に、Squeak環境により実現された代表的なアプリケーションと呼べるものとして有名なものに[[Swiki]]がある。SwikiはSqueak版[[ウィキソフトウェア|Wikiクローン]]というべきソフトの一つで、同じくSqueak上にSmalltalkで書かれたHTTPサーバ(Webアプリケーションサーバ)である[[Comanche]]上に構築されている。WikiクローンとしてのSwikiは、ファイルアップロード機能、無限差分の保持、静的[[HyperText Markup Language|HTML]]の生成などの他に、独自のフォーマットルール、キャピタルワードを自動的にリンクにする[[WikiName]]機構を持たないこと、ページ名の変更がページ作成後に可能なこと、ページソース記述にHTML表記の混在を許すことなど他の[[ウィキ|Wiki]]とは一線を画す仕様を有する。 公式サイトである「Swiki Swiki」のダウンロードページより、Squeak eToysにおけるWebプラグイン版Squeakのように、Swikiに特化した仮想イメージと付随ファイルのアーカイブを得ることができる。日本語を扱うためには最低一箇所、修正を加えなければならないが、この仮想イメージを用いることでSmalltalk言語や環境に精通していなくとも、起動後、サーバスタートを意味するボタンを押すだけで手軽に運用を開始できる。 ただいずれも、Squeak環境としては前者はSqueak eToys、後者はSwikiに必要ないものを大幅に削除したサブセットに過ぎないので、Squeak eToysもしくはSwiki専用で、かつ、手を加えずあるがままの状態で使用するのでなければ、公式サイトより完全なSqueak環境を入手し(Swikiの場合、機能を拡張するためのパッケージをインストールした状態で)使用することが望ましい。 == 外部リンク == * [http://squeak.org/ squeak.org] 公式サイト (英語) * [http://squeakland.org/ squeakland.org] Squeak eToysフィールドワークのための公式サイト (英語) * [http://www.squeakland.jp/ squeakland.jp] 上記サイトの日本語版 最新日本語版Squeakイメージが配布されている(日本語) * [http://minnow.cc.gatech.edu/swiki/ Swiki Swiki] Swiki公式サイト (英語) * [http://squeaklet.com:8080/m17n/ m17n Squeak] Squeak 多言語化に関する情報ページ (英語) * [http://utopos.dyndns.info:8080/SqueakLearner/89 Squeak3.6 m17n 用Mac OS X版VM] 多言語化(日本語化)Squeakを[[OS X|Mac OS X]]で使用するための情報ページ (日本語) * [http://swikis.ddo.jp/abee/20 SqueakToys掲示板3] 日本語版Squeakで主に Squeak eToys を使用して制作された作品および情報交換のためのサイト (日本語) {{DEFAULTSORT:Squeak}} [[Category:プログラミング言語]] [[Category:ソフトウェア開発ツール]]
Squeak
に戻る。
案内メニュー
個人用ツール
ログイン
名前空間
ページ
議論
変種
表示
閲覧
ソースを表示
履歴表示
その他
検索
案内
メインページ
コミュニティ・ポータル
最近の出来事
新しいページ
最近の更新
おまかせ表示
sandbox
commonsupload
ヘルプ
ヘルプ
井戸端
notice
bugreportspage
sitesupport
ウィキペディアに関するお問い合わせ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報