Clover2開発日誌

Clover2というJavaのように静的な型を持つRubyのようなコンパイラ+仮想マシンの開発日誌です。LLVMでJITもします。https://github.com/ab25cqにて開発しています。

Clover2の開発日記開始

はじめまして。Clover2という、コンピュータ言語を作っている湊(みなと)と申します。この度、はてなブログに開発日記を書こうと思ってます。いつまで続くか、分かりませんが、頑張って書いていこうと思います。

 

Clover2は以下のURLにあります。

github.com

 

僕のUNIXのプログラミング歴ですが、もともとはmfiler2, mfiler3, mfiler4というコンソールで動くファイラを作っていました。fdcloneのようなソフトです。一時期は2chにスレが出来て話題になったりもしました。Rubyを組み込んでいたので、まつもとゆきひろさんのブログで紹介されたりしました。その後はシェル自体に興味を持つようになり、xyzshというRubyっぽい組み込みコマンドを持つ、ちょっと変わったシェルを作ったりしました。その後xyzshを開発していると、これはインタプリタでいいんじゃないかと思い(xyzshで演算子を実装していると)Cloverというインタプリタとして使えるスクリプト言語を作りました。ただ、Cloverにはあまりにも言語仕様を欲張りすぎて遅いという弱点があったので、Clover2を開発している次第です。

 

Clover2はシンプルな言語仕様で、仕組み自体はとても簡単に作っています。速度もそこそこ出てます。ただ、もう少し速いほうがいいので、LLVMJITができるようにしているところです。Clover2はRubyに静的な型を持つようなコンパイラ言語です。僕自身静的な型がないとプログラミングできないので、Rubyに静的な型がほしいなと思って作っています。インタプリタとしても使えて、シェルの代わりに使えるようなものが欲しいと思って作っています。インタプリタは優秀でメソッド名の補完や外部コマンド名の補完、ファイル名の補完などがreadlineによって行えます。もともとはシェルを作っていたのでシェルの代わりになるようなインプリタを作りたいというのが動機なので、そのようになっています。

 

しかし、僕はRubyPythonの代わりになるようなものを作りたいとは思っていません。あくまで遊びとしてやっています。本業は介護福祉士で余暇でストレス発散としてコーディングしていて本職のプログラマーではないので、RubyPythonの代りとなるようなコンピュータ言語が作れるとは思っていません。あくまで個人的な楽しみとして作っています。多くの人に使ってほしいとは思って作ってますが、今日日コンピュータ言語もたくさんありますし、それを差し置いて、僕の言語が広く使われるとは思ってません。あくまで遊びとしてインストールして使っていただけるとうれしいです。

 

もし使われた方は何か感想やフィードバックがあれば大変嬉しいです。githubのメッセージや、このブログのコメントに何か書いていただけると大変うれしいと思います。

 

それではこれからもよろしくお願いします。