JavaScriptで日本語プログラミング言語を作る
オライリーの[asin:4873113296:title]を読んでて気づいたんだけど、JavaScriptってUnicodeで書けば予約語以外は全部日本語にできるんですね!オブジェクトもメソッドもプロパティも全部。UnicodeはECMAScript 3rd Edition以降で対応したらしい。IE6でも動く。これ常識なのかな?あんまりそういう記事を見たことなくて普通に知らなかった。
「それ、○○でもできるよ!」というツッコミが来そうなところだけど、JavaScriptは気軽だからいい。
必要な環境
日本語プログラミングをするために必要な環境は以下のとおり。
- ブラウザがECMAScript 3rd Editionに対応していること
- HTMLをutf-8で保存していること
- JavaScriptをutf-8で保存していること
というわけでこんなのができる
こんなのが動いてちょっと感動した。以下のソースをutf-8で保存して、同じくutf-8で保存したHTML文書に読み込むとちゃんと動くことが確認できる。
// 自分で名前を定義したいオブジェクトやメソッドやプロパティをコピペ。 var 関数定義 = Function; var カッコ内の警報を出す = alert; var HTML文書 = document; var 日時 = Date; // HTML文書内に文章を書き込む関数を定義。 // 要するにdocument.writeのコピペ。 HTML文書.カッコ内の文章を書く = new 関数定義("文章", "return this.write(文章);"); // 時間を得る関数と分を得る関数を定義。 // 要するにDateオブジェクトのgetHoursとgetMinutesのコピペ。 日時.prototype.時間を得る = new 関数定義("return this.getHours();"); 日時.prototype.分を得る = new 関数定義("return this.getMinutes();"); // 後で使う変数を定義 var このHTML文書に = HTML文書; var 現在時刻から = new 日時(); var 甲 = 現在時刻から.時間を得る(); var 乙 = 現在時刻から.分を得る(); // HTML文書に文章を書く準備が整ったので、処理する。 このHTML文書に.カッコ内の文章を書く('嘘・・・みたいだろ・・これ動いてるんだぜ・・・。'); // 現在時刻を出す準備が整ったので、処理する。 カッコ内の警報を出す('現在は' + 甲 + '時' + 乙 + '分です。');
最後の処理の部分に至っては記号以外すべて日本語にできました。柔軟すぎる、JavaScript!JavaScript自体はメタ言語ではないけど、予約語以外はすべて継承(コピペ)してオーバーライドできるので、プログラミング言語作成ごっこができる。
ま、こんなの使わないけど。超わかりづらいしw