言語実装を協力して作りたい話

久しくブログを書くことから離れてたのですが、最近は昔と違って言語実装をして遊ぶ人が増えました。 C言語C言語を作ってブートストラップするような高校生が多くいる状況は一昔前ではなかった状況で楽しいです。

ここまで人が増えてくると、かつてはソロで言語を作っていた状況ではなく協力してモノづくりをしていけるといいのになという思いがより強く感じるようになってきました。 自分は人望がないから人を集めて言語を作ろうとしてもうまくいかないと諦めていたりもしたのですが、自分で主体性を持ってやってみたらどうかという話もされたりしたので、オレオレ言語の言語コミニュティーの作り方の手法自体を考えて多くの言語処理系実装者の方々がそれなりにグループを作りやすい環境というか文化を作れたら良いかなと考えております。

グループを作るといってもLisp的な言語を作るのであればLisp的な言語を作る文化圏の人々で協力すると良いでしょうし、Ruby的な言語を作るならRubyの文化圏の人々でグループを作ると良いでしょう。

形式的な手法を使いたい人達はそれなりにまとまるとよいだろうということでグループは作れそうな気がしてます。

でメンバー募集ページのようなもので仲間を集めて協力しようという話になったら、その言語のストリームを作って話し合うといいのかな。 ということでDesk言語を手伝う話を頂いたわけですがどうなるかな?

実装組の共通言語としてProlog使って情報共有したらどうかと考えてたけど今だとRustがいいらしいのでRust実装書くのがいいのかなぁ。 しかし論文読めるようにならないだろう問題があり、一階述語論理を理解するための言語はPrologが最適だよなと思うのでした。 LisperならRacket Redexを使えばいいと思うのですけど。 Rustが使えるならRust実装のPrologを使ってもらえばいいのかな。Cでのブートストラップ組はPrologもブートストラップするとよいだろう。

あと最近の流行りがDesk言語でも採用しているという代数的効果です。これを簡潔な実装から理解したいし、Desk言語の文脈でやっていきたいかな。

言語を作ったら広めたいだろうしオレオレ言語のチュートリアルを作ったらその言語を使うワークショップをやりたい。

あと、メタなレベルだけど言語を協力して作って遊ぶワークショップもやりたい。最初は短く始めて1日で終る分量でやりたい。 そこで協力するイメージを共有できるとよい。 Prologを覚えるワークショップも開催したい。

ワークショップの開き方とかがわからないと困るので言語ワークショップの企画のテンプレートを用意して置いてコピって使えると良さそう。

ってあたりを考えている今日このごろです。