読者です 読者をやめる 読者になる 読者になる

Matthewの備忘録

忘れたときはここを見ろ。何か書いてある。

関数型言語Sapphire

 RubyVMを利用した関数型言語Sapphireを開発する。

 そもそもは、どのプログラミング言語もそうであろうが、ある側面において、半世紀前に誕生したLispに近づく。そしてここ最近のトレンドは関数型言語、またはそれと同じことができること。だったら最初から、関数型言語でもよいだろう。F#やScalaなんて、Java VMや.NETを基礎とする関数型言語が出てきたんだから。

 Rubyの場合、他のVMRuby処理系が開発されることが「流行」したが、純粋にRubyVMで他の言語が動くようにはされてこなかった。私が気づいてないだけであるのかもしれないが。Ruby VM / YARV の取り込みが最近になってから、Ruby VM / YARV が単独で存在していない(?)というのもあろう。様々な理由はあるのだろうが、速度とか最新の機能はさておき、Ruby VM / YARV 上で動く他の言語があってもよいではないか?

 プログラミング言語Rubyの名前の由来であるrubyという宝石について調べてみると、sapphireとは微量に含まれる鉱物の種類が異なるだけで、主要構成物質は同一であり、どちらもコランダムという鉱物としては同一視されるものであることがわかる。rubyにはクロムが含まれ、sapphireには鉄やチタンが含まれる。そうであるなら、Rubyにはない特徴を持った、主要構成要素が同じSapphireというプログラミング言語があってもよいではないか。非実在話としては一興あるだろう(笑)。もっとも、多くのgem、なかでもRailsをそのまま利用できる高度なものがあって欲しいが。

 9月の誕生石はサファイアである。このSapphireを与太話にしておくのは勿体ない。この時期を逃してはならぬと、思い、歩みは鈍いが、開発していく。

 実は、Ruby VM / YARVの開発がクローズアップされるようになった5年ぐらい前から、Ruby VM / YARVの内部構造の説明、Ruby VM / YARVの使い方や、Schemeの基礎的なプログラミングが可能なRuby VM / YARV用のコードを出力するコンパイラ作成、などのアウトプットが散見されていた。それにも増して、関数型言語が持つ機能や特徴をRubyで実現することを表した情報の多いこと・・・。その二つは交差するのではないか?交差するとしたら、何が求められるのか?

 とにかく、非実在言語で終わらないようにはしたいが、この名前と企画をどうしてもやりたいという若者がいたら譲ります。私は、傍らにいて見守るだけでよい。実行能力とリソースが足りないことが容易に想像できるからね。

 名前の由来をもう一つこじつけて、我が故郷北海道とその都である札幌が聖地となるように、
"SAPPoro Hokkaido Intellectual Research Environment"
のアクロニウムであることにしておこう(笑)。英語のニュアンスあってるかな?開発するものと乖離した名前だが、可能なら、知的な研究環境となるように、この言語の最適なエディタには、よくできた研究室秘書や、執事、SFに出てくるパートナーロボットのように優秀な補助機能をつけて、半自動プログラミングを達成してほしい(夢見すぎ)。