Ruby2c / Ruby to C が欲しい!!!

http://alohakun.blog7.fc2.com/blog-entry-448.html
http://rucila.s43.xrea.com/memo/?date=20050205#p03
より。
Ruby to C / RubyからC言語にトランスレートするツール。確かに欲しい。
これさえあれば、Rubyで記述ができてC言語になってそれからコンパイラに渡す事が出来る。
高速化できるしRubyの文法による生産性向上につながるわけだ!!!
私も欲しいですよ!!!これさえあればC++に見切りをつけられるかもしれませんよ^^;(言いすぎだが・・・)



で、これからSwigなるツールを思い出した。
http://ruby.gfd-dennou.org/tutorial/swig/swig-cpp.html
そうだなぁ 2年程前から目を付けていたがいじらないうちに忘れていた。
http://web.archive.org/web/20041109215009/http://swig.shibu.jp/doc1319/SWIGPlus.html


追記:見つけました。

後で使ってみたいと思います。


書きかけ・・・

状態遷移を記述する「何か」が必要だ!!!

http://d.hatena.ne.jp/textfile/20060922/patterns
より。
さて、私は前々から感じていた事がある。
移植という作業は億劫である。
よって
各環境に合わせた*1プログラミングをするというのは億劫である。(このおかげで仕事が入るというのは置いておいて・・・)
こういう処理を記述したものをコード上から取り除くと・・・状態遷移記述だけになるのではと感じるのだ。
究極的にはそのようなプリミティブな記述から各言語へのトランスレーターがあればよいと感じているのだ。
もちろん、指定した状態への入り口を作るようなモジュールの分け方が出来るような出力が出来る事が条件だ。
そうすれば各言語のバッドノウハウなどは取るに足らないものになりプログラマーもさようなら!MSの開発環境に依存しなくなり、CEOやマネージャーがプログラマーの生産性やプログラムの状態遷移不完全からくるバグによる納期遅れについて頭を悩ます事もなくなるのだ・・・(だが、各アルゴリズムの状態遷移を理解でき、完全な状態遷移を記述する事の出来るコンピューターサイエンティストが必要になるのですがね・・・いや、これがプログラマーか^^;)
正にGood Bye Codingの理想に近づくわけだが・・・(http://d.hatena.ne.jp/studiokingyo/20060330#p2 より。)
もし、この方法が確立されたらプログラミング言語によるプログラミングというものは文化に過ぎなくなるような気がする。


なんというか、パーサー作りの為にBNFが出来たように状態遷移記述の為に何かが出来ればなと感じているのだ。
もしかしたら関数型言語が担っていたり?(ゴメン、まだ触っていない・・・)
昔、状態遷移図についてイチャモンをつけていた覚えがあるけど、これを元にプログラム言語にトランスレートできればこれ以上に楽な事は無い・・・。もちろん、この状態遷移図が完全である事が条件だが。
ちなみに状態遷移表をプログラム言語にトランスレートするツールは既にある。
http://d.hatena.ne.jp/studiokingyo/20060115#p1


さて、状態遷移を視覚化、概念化するにはどうすればよいのだろうか・・・
例えば、LZWのアルゴリズムでハッシュ法を使う方法とTST法を使う方法があるとするが、その中で使う「法」が大切なのではなくてLZWアルゴリズムの「プリミティブな状態遷移」を視覚化、もしくは記述する方法を確立しなくてはと感じているのだ。C言語で記述する場合、この「法」の部分と「プリミティブな状態遷移」がソースコード内に混じってしまい*2もし修正する場合は注意深く扱わないといけない。
これではソースコードを直すのも一苦労だ。
むしろ完全な状態で作ったはずのソースコードに手を加えるとなるとなおさらだ。なんらかの事でこのような繰り返しが来るとなるといつかミスる事は避けられないのではないかと感じている。


以上のようなアイディアは

に発案した私なりの提案なのだが・・・実現するにはまだ、頭の中に考えがまとまってこない・・・。
むしろ、後で見てみたら自分でも何を言おうとしていたのか分からなくなってくるかもしれない。後日、実現に向けて考えを深めていく必要があると感じた。


やねうらお氏はgoogle:Kascalという独自の言語を作り、各言語に対する差異をなくそうとしていた。
私は各アルゴリズムの状態遷移をプリミティブ化し、各環境に対する差異をなくすライブラリを作りたいと思う。
もう、C/C++で記述するライブラリ製作にはうんざりなのだ!!!正直、飽きたのだ!!!

*1:OSだとかCPUとか言語とかの差異。

*2:そのアルゴリズムに精通しているプログラマーであればソースコードの内容は理解できなくもないのだが

glibc malloc() free()の実装

http://mkosaki.blog46.fc2.com/blog-entry-241.html
より。
glibcmalloc freeの実装の解説ビデオ
http://video.google.com/videoplay?docid=2914803742593360351


via http://d.hatena.ne.jp/hyoshiok/20060926#p2
リンク先にはこのビデオに使われていたPowerPointの資料がDLできる。
こういう珍しいテーマでの勉強会って貴重だと思う。
興味深いネタだ。ライブラリアンなら見るべし!!!


関連:私の巡回するサイトの管理者の方々も注目していました。
http://shinh.skr.jp/m/?date=20060926#p03
http://homepage1.nifty.com/herumi/diary/0609.html#26

ちなみにPower Pointのスライドを見るには・・・

http://www.microsoft.com/downloads/details.aspx?familyid=428D5727-43AB-4F24-90B7-A94784AF71A4&displaylang=ja
をダウンロードしてインストールしてください。そうするとppt形式のファイルが関連付けられます。