将来のためにメモ。
⇒ Rubyの浮動小数点数リテラルの扱いは正しいのか(hnwの日記)
将来のためにメモ。
⇒ Rubyの浮動小数点数リテラルの扱いは正しいのか(hnwの日記)
Ruby が Symbian OS で動くようになったそうです。S60用のバイナリが配布されています。
うーん、どうやって移植したんだろ。以前 Symbian OS のプログラミングを調べたときかなり独自のメモリ管理(*1)をやっていて普通に UNIX/POSIX で組んであるプログラムを移植するのは大変そうだったのだけど。Matzにっき「RubyConf3日目」 の「Google Summer of Code Student Talks」で「SymbianがPOSIX互換層を用意してくれたからできた…」とあるのでこの POSIX互換層を使うといいのか。
*1) 調べたのがかなり昔なので今はどうなっているのかわからないけど、昔は C++ の new ですらメモリ枯渇でクリティカルな問題が発生するので使っちゃいけないということになっていた。で、独自な方法でメモリを確保して Class を作成し、独自な方法でメモリを解放しなければいけない
⇒ Ruby for Symbian OS(Symbian Developer Network)
Ruby の構文図を ANTLRWorks と GraphViz を使って描いた人がいるそうです。なるほどなかなかグラフが込み入ってます。Java 1.5 や JavaScript(ECMAScript) の構文図もありますが Java 1.5 もなかなか複雑、JavaScript は奇麗ですね。
個人的には Ruby がそれほど複雑な構文だとは思わないのだけど確かに yacc とかの BNF を使う構文解析ジェネレータとは相性が悪そう。
構文的(BNF的)に奇麗なプログラミング言語としては Pascal が有名だけど、Pascal に影響を受けている後発の C言語が必ずしも Pascal 型の構文を踏襲せず比較的使いやすい構文を築きあげたことを考えると BNF的に奇麗であることがすべてではないということだろう(*1)
いい加減 BNF(EBNF) もここ数十年全然進歩していないし、ここは Ruby のための新しいBNF記法と構文解析ジェネレータを発明したほうがいいのかもしれない。
追記 11/20:どうも Ruby が実装レベルの parse.y を使っているのに対して Java 1.5 と JavaScript はおもちゃのような ANTLR のサンプルコードを使っているのでこれで比べるのは意味がありませんね。
*1) C言語は Pascal よりも構文的には汚い(曖昧性がある)と言われるが、全体的に見ると奇麗な構文の部類に入る
⇒ Visualization of Ruby’s Grammar(Nick Sieger)
⇒ Visualization of Ruby’s Grammar(Matzにっき)
「日本Rubyカンファレンス2006」の音声ファイル、ようやく聞き終えました。まぁ、ボリュームが多いのでながらとはいえ全部聞くのってかなり大変でした。
率直な感想としてなかなか面白かったです。○○カンファレンスとかの内容がこういうふうに配信されるのっていいですよね。これからもこういう音声配信は是非続けて欲しいものです。
今回の音声ファイルでちょっと残念だったのが全体的に録音レベルが小さくて、MacBook または iPod nano + mm50 でボリュームを最大にしても聞き取りづらかったことです(*1)。私も Newton Einstein Night のビデオを編集したときにも録音レベルの低さに苦労したけど何かいい方法(ツール)がないものでしょうか。
あと贅沢な注文をするとすれば、(編集するほうは大変なのだけど)エンハンスドポッドキャスティング形式でスライド画像も入っているともっといいのだけど。
*1) 最初は MacBook で聞いていたけどさすがにがまんできなくなって iPod nano + mm50 にしました。それでもそれほど最大音量が大きくならなかったんですけどね