5年くらい前にプログラミング言語のロゴを日本語化していた。でも日本語の構文解析の部分で挫折してしまった。chasenやMeCabを使えばいいんだろうなということは、あとで分かってきたけれど、なかなか手を出せないまま今に至ってしまった。
それが、最近MeCabをPythonで使ってみて簡単に日本語が解析できてしまったので、これはいけると思ってしまった。それで作ってみることにした。開発言語としては今のところPythonを使ってみる。インタプリタをインタプリタで作るというのは、ちょっと速度的にもったいなさそうだけど、Pythonの気軽なプロトタイピングが今かなり気に入っているので、とりあえずこれで作る。
日本語プログラミング言語というのは古くはMindというものから、現在「なでしこ」「ドリトル」「プロデル」などが出てる。今でも販売されているMindはForthというもともと英単語を後置表記で表記していたプログラミング言語を日本語の単語で使えるようにすることから始まっている。一方の現在主流の日本語プログラミング言語は、ソースを読んで確認したわけではないけれど、どうやらロゴを発展させた形で作られているのではないかと思う。根拠は、以前日本語ロゴを作った経験から。ドリトルの前身はロゴ坊というまさに日本語ロゴだったし、後継ドリトルでも、タートルグラフィックが得意だったりしている。プロデルのプログラムの外見もまさにロゴを日本語語順になおしたものに見える。
さて、すでにこういう先人がいるのだけれど、おそらくそれらを追い越せるだけのものが簡単に作れるとも思わないが、ちょっとアイデアがいろいろ思いつくので、日本語インタプリタを作ってみることにする。それもロゴを手本に作ってみる。MeCabという本格的な日本語解析モジュールを利用するのだから、かなりきっちりとした日本語表記を目指そうと思う。
わざわざダウンロードして試してもらう段階ではないけれど、公開しておきます。
とりあえずできたもの:
■ダウンロード calc.py
稼働条件
・MeCab公式サイトよりMeCabのWindows版をインストールしていること
・Windows版Python2.5をインストールしてあること
・Windows版Python2.5用MeCabモジュールをインストールしてあること
py2exeで実行形式にしたものの圧縮ファイルを置いたつもりが、UPしてませんでした。すみません。
現時点では最低限のことしかできない。
・解釈できるのは一行、それも単文。
・整数の四則演算ができる。
・式の記述は、文章表記。
・現時点利用できる構文は、
「○を□にたす」「○を□にかける」「○から□をひく」「○で□をわる」「○と□をたす」
「○に□をたす」「○に□をかける」「○を□からひく」「○を□でわる」「○と□をかける」
・上記の○、□の場所に数字を入れた文を書いて、エンターを押すと、次の行に答えが出てくる。
・終了と入力すると終了する。
いろいろやることは思いつくけど、まずリスト演算と再帰的な文の呼び出しを実現できるようにしよう。まだ○と□には数値リテラルしか指定できない。これができれば十分複雑なことができるようになる。