2008年10月15日

SpiderMonkeyで日本語を使えるようにしてみた。

JavaScriptの奥深さを改めて思い知ったので、Firefoxなどで使われているJavaScriptエンジンSpiderMonkeyで最近いろいろ遊んでいました。SpiderMonkeyを触るのは、四年ぶりぐらい。ちょうど、Firefoxの1.0が出るかでないかの頃、いろいろいじってました。

SpiderMonkeyは、ソースを持ってきてコンパイルすると、スタンドアロンで利用することができます。Windows環境にはJavaScriptによく似てWindowsでのいろんな操作に使えるJScriptというものがあるので、それほど必要なものというのではないんだけれど、やっぱり由緒正しいJavaScriptに触れてみたいという気持ちは抑えがたい。

ただ、この単体のSpiderMonkeyではまだ日本語がうまく使えなかった(Windowsでしか使っていないので他のプラットフォームでの事情はわからないが)。以前使っていたときもそのことが気に入らなくて、日本語が使えるようにちょっと修正したものを作って試していました。今回、Mercurialでダウンロードしたら、プレリリースのSpiderMonkeyバージョン1.8が使えたので、それに以前の修正を適応し、さらに-f、 -eオプションも使えるようにしてみました。

本来、JavaScriptでは変数名に日本語が使えます。JavaScriptを紹介しているサイトには、いまだに識別子の構成文字は半角英数のみと古い仕様のまま紹介してあるものもありますが、JavaScriptの標準仕様であるECMAScript3の仕様において、ちゃんとUnicode文字列が使用できることは明記してあります。簡単な漢字変数のスクリプトを含んだHTMLを書いてFirefoxで開くと、確かに使えるのが分かります。ただ使えることは使えますがあまりおすすめはしません。やたらWebページでの記述には使うべきではないでしょう。しかし、本来できるべきものができないというのがちょっと不満でしたので、できるようにしてみました。

全角文字を使うとき気をつけることは、Unicode文字はそれぞれ用途によって分類がされていることです。例えば全角の数字(1,2,3,4,5)はそれ自体数値として使えませんが分類上は数値を表す文字とされています。JavaScriptではUnicode文字の分類を区別するので、半角数字と同じように全角数字は名前(識別子)の先頭文字として利用できません(二文字目からは使える)。また+×☆※などなどの全角記号は識別子に利用することはできません。漢数字は問題はないみたい。

まだ開発中のベータ版ですので、いろいろ問題があるかもしれません。

■ ダウンロード
自己責任でご利用ください。
smjp001.zip


■ 配布ページ
http://et-dev.main.jp/index.php?SpiderMonkey

メッセージも日本語にしてみましたが、標準的な用語になっているか確認して訳していません。

例文
js>あ行=["あ","い","う","え","お"].reduce(function(a,b)a+b);
あいうえお
js>print(\u3042行); // \u3042:’あ'のユニコードエスケープシーケンス表記
あいうえお
js>print(あ行.length);
5
問題がありましたら、コメントください。
Blogged with the Flock Browser


posted by takayan at 04:02 | Comment(2) | TrackBack(0) | 日本語プログラミング | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
こんにちは。一応smjp001.zipをダウンロードしましたが。javascriptを初めてやるのですから。smjp001.zipをどうやって保存するのでしょうか。その中に何か打ち込んだら何か変わるのですか。教えてください。
Posted by 山中 at 2009年10月16日 01:53
ダウンロードありがとうございます。
ダウンロードが終わったならば、ファイルが保存されている場所を開きます。Lhaplusなどの解凍ソフトはインストール済みでしょうか。解凍ソフトがインストールされていれば、smjp001.zipをダブルクリックして解凍します。解凍ソフトの設定にもよりますが、Lhaplusだと自動的にフォルダが開きます。その解凍されたフォルダの中にある js.exe をダブルクリックすれば、js>と文字が書かれたDOS窓と呼ばれる黒い画面が出てくるはずです。そこにjavascriptの構文を打ち込めば、対話形式でプロクラムを試すことができます。
分からないことがあったら、また書き込んでください。
ちなみにjavascriptはいろいろな使われ方がされているのですが、山中さんは何をされるのでしょうか?
Posted by takayan at 2009年10月16日 19:39
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック