Hatena::ブログ(Diary)

はてなかよっ!

2010-04-07

enumのネストの需要ってどんな感じなんだろう?

enumってネスト出来たらグルーピングが出来て便利だと思うんだけど

enum Spec
{
    enum A { a, b, c }
    enum B { a, b, c }
}

みたいな感じで.まぁ今でも現状

class Spec
{
    enum A { a, b, c }
    enum B { a, b, c }
}

でそれっぽいこと出来るけどclassが微妙だ…

2010-03-04

GC本の詳細ががが

http://d.hatena.ne.jp/authorNari/20100303/1267609871

Amazonはまだのようだけど,情報公開のOKが出たということで記事が上がりました.表紙は知らなかったんだけど,何かかなり格好よく仕上がっていて驚き(nariさんの自作絵になるんじゃないかとずっと思ってましたww).

日本では初めて?のGC本なので,興味ある人はぜひ読みましょう.

2010-01-15

データフロー変数とSTM

Ozなどのデータフロー変数が「ある非バインド状態の変数がスレッド内で見つかった時,その変数を他のスレッドがバインドするまで処理を遅らせる」というのは分かるのだけど,この変数への変更処理はやっぱりアトミックな領域にしてやらないと行けない気がしているのだけどどうなんだろうか?それとも,データフロー変数自体がそういうものなのか,Oz自体がそうなのか.データフロー変数が並行処理で有用なのは何となく分かるけど,これを他のOOPとかに移植する場合どうすればいいのか気になった(これ見てもその辺が分からない).

「STMとどっちが有用なの?」と聞かれたから浮かんだ疑問なのだけど,どうにも領域が違う気がしている(STMの方がもっと大きい感じ).STMはこんな感じだと思っているのだけど,詳しい所分からないので誰か教えて下さい.

2010-01-11

STM

並行処理するための技術の一つだけど,何か面白そう.今のところ使われてるのはHaskellとClojureくらいしか知らないのだけど,いろいろやりようがあるっぽい.D言語はメッセージパッシングの方でConcurrency APIは進んでるけど,これならライブラリレベルでも何とかなるので,簡単なのは作ってみたい(dmd-concurrencyでも話には上がってるけど,実装などまともに出来る人がいないので,議論が出来ない状態).

まぁでも論文は英語ばかりで時間がかかりそうなので,修論が終わってからの課題にしておく.どんどんタスクが溜まっている気がするけど気にしない.

追記

こんな本があるらしい.読んでみたい…

2009-11-11

Go!

http://golang.org/

Googleと言えばNoopというのを公開したけども,またさらに公開したようだ.NoopはJavaVM向けだったけど,これはPythonとC++を足したような感じでバイナリまで落ちるっぽい?concurrentの実現やGCがどんなのかはちょっと気になるので後でソース読もう.出来ることと位置的にD言語に近い気がするのががが

追記

GCのソース読んでみたけどM&Sでした.まぁコメントに「プロダクションレベルでは使えない」と書いてあってstep0ということなので,今後改良されるのかな(それにしてもファイル名が酷い).

Concurrentにはアクターモデル?書きやすさがどうか分からないけど,言語自体はあまり面白くは無いかもしれない.

  • ライブラリ

ただこれは充実していて,expにあるevalをはじめ,テンプレートエンジン,正規表現,XML/JSON/RPC/HTTP,リフレクション,単体テスト,デバッグ,数値関係とまぁ今時な言語のライブラリで必要そうなのは大抵入ってる感じ.

後は誰か興味のある人が翻訳したり,よさそうな機能があれば紹介してくれることを祈って,Goについてはこれで終わり.

更に追記

http://www.atmarkit.co.jp/news/200911/11/go.html

なんか日本語の記事が出たのでもういっちょ.GCは今後IBMの並列GCになるようだ(あのJVMで使われてるやつかな).この記事で例に上げられている言語と比べるとそれなりに見えるけど,D言語と比べると言うほど目新しくはない(著者が知らないだけ?).Goのインターフェイスはこの説明だと凄いように書かれてるけど,Java系のinterfaceと何が違うのか分からない(templateのダックタイピングでも出来そう)継承関係に拘らずダックタイピングをする仕組みのようで,templateでほぼ代用できるけど後々その要素を追加できるのが特徴らしい(嬉しさはよく分からない).結局は並列処理をCっぽいのに組み込んだ,以外に特徴はなくて比較対象はErlangなんじゃないの?とさえ思える.

まぁでも開発陣はなかなかに豪華なので,Googleという名前もあるし今後成長するかもしれない.Twitter見る限り注目されてはいるし,勝手に情報集まりそう.

ネタがあったので追記

I have already used the name for *MY* programming language

なんか10年前からある言語と名前が被っているようだ.名前変わるのかな?