Hatena::ブログ(Diary)

Smalltalkのtは小文字です

id:sumim:about

Smalltalk を本格的に勉強する気はないけれど、うんちく程度に知っておきたいなら→Smalltalkをちょっとかじってみたい人のための、チュートリアルまとめ - Qiita

オブジェクト指向の“モヤッと”の正体を知りたくなったらこちらの記事が役に立つかも→id:sumim:20080415:p1 とか id:sumim:20040525:p1


 | 

2006-06-22

[] 100までの整数から素数を列挙せよ…を Squeak の eToys で


eToys でも id:squeaker さんの Kedama(毛玉)を使って書いてみました。Kedama は、端的には、複数のタートルを同時に使って描くタートルグラフィックス・システムです。


本家 StarLogo の Smalltalk 版である StarSqueak を受けて作られたものですが、タートルの挙動の記述に、ドラッグ&ドロップで誰でも(大嘘)簡単に(大嘘。うわなにをするあwせdrftygふいjこpl;「)プログラミングができる eToys が使えるところが大きな特徴です。


eToys、それ自体に輪をかけて、見た目からして、かなりとっつきにくいシステムなので(失敬!)、正直、私も、用意されているごく基本の機能しか必要でないにもかかわらず、初っ端でくじけそうになったりしましたが、Yamamoto さんのチュートリアルがとてもわかりやすくて救われました。操作だけでなく、プログラム面でも、タートル複製時に生じる障害を回避する手段などについて、おおいに参考にさせていただきました。ありがとうございます。


あと今回は、すぐ Smalltalk 使いたくなるのを、そうとう我慢して“ピュア eToys”しばりにもチャレンジしてみました(^_^;)。ので、結果の抽出がどんくさいですが、どうかお許しあれ、かし。


念のため「eToys」とは、Squeak システムに組み込まれた Smalltalk とは別の処理系で、もちろん Smalltalk で記述されていて、その特性(たとえば徹底した動的性)を大いに活用した特徴(コードを走らせながらソースを変更でき、編集の結果は直ちに動作に反映される、とか)を有してはいますが、文法や言語仕様は Smalltalk とは大きく異なっています(目立つところでは、変数が強い型付きである、とか)。


eToys がそのものズバリ…だったいうわけではありませんが(個人的にはむしろ、いくつかの選択肢の中のひとつに過ぎない eToys で、なし崩し的にプロジェクトが進んでしまっている、といった印象を強く受けていますが、まあ、それはいいとして)、このような非プログラマで向けのの言語処理系を構築するのが、Squeak システムのもともとの目的だったりもします。先だっての まつもとさんとの会食での“死んだ言語”同様、おもしろおかしく語られがちな、アラン・ケイの「Squeak(や Smalltalk)は道具に過ぎない」といったたぐいの発言はこうした文脈も含んでいるはずです。



閑話休題。


実行結果(タートルが描きあげた篩)とコード(メインのループ)はこんな感じです。

http://squab.no-ip.com:8080/collab/uploads/61/kedamasieve.png


プロジェクトファイル(eToys プログラム本体)はこちらに置かせていただいております。

Squeak ブラウザプラグイン版(http://squeakland.jp/)がインストール済みなら、たいていの場合、リンクのクリックで起動し WWW ブラウザ内で動かすことができるはずです。ダメでしたら、アプリケーションで開く...か、最悪、Squeak を起動してデスクトップへドロップインで起動できます。お試しください。


Squeak なんかインストールして、環境を汚したくない!(^_^;)…人むけに、念のため、QuickTime ムービーも用意しておきました。


なにせ、Kedama に触れるのは初めてなので、もうちょっと賢い方法があるかもしれません。どうぞ、あしからず。たとえば、毛玉ワールドにはタートルを敷き詰めることもできるので、動かして描かせるのではなく、個々のタートルをビット代わりに、一気に判断させて一発で…ということも、もしかしたら可能かもしれません。


関連:

ZOOZOO 2006/06/22 21:56 ご紹介、ありがとうございますた。Kedamaはあのころさわっただけですが、もう使い方忘れちゃってます。<おいおい。なので自分の書いたものをみなくちゃさっぱり・・・。<こらこら。Squeakもですが「分かりやすくて簡単」といえば、そうなのですが、「分かりにくくて難しい」といえばそうでもあり・・・・。<びみょ〜。ってことで慣れるのが一番・・・ということでしょうか。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト

コメントを書くには、なぞなぞ認証に回答する必要があります。

トラックバック - http://d.hatena.ne.jp/sumim/20060622/p2
 | 
2004 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 08 | 10 | 12 |
2013 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 11 | 12 |
2014 | 01 | 02 | 05 | 07 | 08 | 09 | 10 | 11 |
2015 | 04 | 07 | 08 | 11 | 12 |
2016 | 02 | 03 | 06 | 07 | 08 |
2017 | 04 | 05 | 06 |

最近のコメント

1. 06/28 sumim
2. 06/28 squeaker
3. 06/28 sumim
4. 06/28 squeaker
5. 06/25 sumim

最近のトラックバック

1. 05/25 プラグインレスでSVGを表示する「SIE」開発ブログ - メッセージをや...
2. 01/30 no_orz_no_life - Erlangとジャンケン
3. 12/31 檜山正幸のキマイラ飼育記 - J言語、だってぇー?
4. 09/04 Twitter / @atsushifx
5. 07/06 みねこあ - オブジェクト指向 と FizzBuzz

この日記のはてなブックマーク数
1683666