LittleSmalltalk

LittleSmalltalkは最近も開発が進められているようです。

最新版はv5 alphaで以下のサイトからGUI付きのものも公開されています。

https://littlesmalltalk.org/

私はhttps://sumim.hatenablog.com/entries/2006/02/22の記事をもとに、

http://web.engr.oregonstate.edu/~budd/Books/little/info/small.v3.tar

から入手したsmall.v3.tarをベースに開発を始めましたが、このソースは先のサイトのArchiveにあるVersion 3にあたります。

Version 3には、original, with crc’s modifications, patched by crcと3タイプありますが、本質的には同じでstaticがついたりつかなかったりという違いしかないようです。

LittleSmalltalk

あいかわらずLittleSmalltalkを使っています。Cでクロス開発するよりもLSで作ったほうが早いくらいには慣れました。

「Little Smalltalk入門」もamazonで買って読んでみたら、実装に至るまでいろんな解説があって、最近読んだ本の中では面白い方でした。

既存クラスで利用できるものが少ないので、いろいろ試行錯誤しながらクラス体系を作っていくぶん楽しいですね。

LittleSmalltalk

さいきんLittleSmalltalkを使っているのですが、なかなかこれが厄介です。

クラスやメソッドの多くを自分で実装しなければならないのは構わないのですが、細かいところでトラブルにはまっています。

とりわけ、数値の比較でSegmentation Faultを起こすのには閉口します。

16384 > 16000

これだけで落ちます。

gdbで追っているのですが、インタプリタ内のメモリ参照で落ちているらしく面倒です。

あんまり時間がないのに…

なんちゃってVPL Based on Scratch

Scratchは日本語や英語、中国語などさまざまな言語を切り替えて表示することができます。これらの翻訳ファイルはlocaleフォルダにあり、Emacsなど適当なエディタがあれば自由に書き換えたり、増やしたりすることができます。

このファイルを新しく作り、いろんなプログラミング言語でVisual Programmingできるようにしてみました。

例えば、下のようなScratchのプログラムだと、

20091125233748

なんちゃってC/C++バージョンだと以下のようになります。

20091125233750

同様に、なんちゃってLuaバージョン

20091125233749

※該当する機能が見当たらないものは日本語のままです。

なんちゃってScalaバージョン

20091207100800

※ScalaもLuaもよくわかってないので、怪しいところがあります。

※https://abee2.hatenadiary.org/さん経由、ありがたいことにhttps://hha.hatenadiary.org/さんからのご指摘で一部修正いたしました。

もちろんSmalltalk/80バージョンもあります。

20091125233752

オリジナルのScratchのままだと、if then endのようなendがうまく表現できません。また、「a += 10」のようにあらわせない言語も表現できません。

そこで、ScratchSourceに手を加えてこのような問題にも対応できるようにしました。

対応済みのSmalltalk/80バージョン

20091125233753

かなり限定的ですが、同じプログラムが一瞬にして切り替わるのは面白いです。

ソースはhttps://www.itolab.com/archives/248で公開しています。

Snow LeopardでpTeX

いつものように備忘録。

JIS X0212 for pTeXから、「Drag & Drop pTeX」と「ESP Ghostscript 7.07.1」をダウンロード。

http://www2.kumagaku.ac.jp/teacher/herogw/index.html

前者はディスクイメージを開いてpTeXをアプリケーションフォルダにコピーし、後者はESPGhostscript.pkgを起動してインストールする。

/etc/pathsの最後に「/Applications/pTeX.app/teTeX/bin」の行を追加しておしまい。

Violet

紀要のためにUMLを描く必要があり、いろいろソフトを探していたのですが、なかなかいいものを見つけました。

http://www.horstmann.com/violet/

Javaで書かれていてMacで使えるし、PNGファイルも吐き出してくれるので便利です。(EPSだったらもっとよかったのですが)

これでUML書きで憂鬱にならなくてすみそうです。

HttpServerを使う

以下の情報を参考にして、画像とスタイルについてはファイルを直接アクセスできるようにしました。

http://www.smalltalk.jp/pipermail/squeak-ja/2007-September/003596.html

特定のディレクトリ配下について直接アクセスできるように構成した上で、/seaside以下についてだけ別扱いするわけですね。

スタイルについては、以下の情報を参考にしてCSSファイルを読み込ませるようにしました。

http://book.seaside.st/book/in-action/serving-files/css-and-js?_s=mxO8zi4aDKIyxyg8&_k=epes78Um&_n&169