2006-01-01から1年間の記事一覧

Windows環境のmalloc

ってどこにあるんだろうと思っていたら、C Runtimeにあったらしい。 msvcr80.dll内で発見。

OCamlの文法の視覚化

http://blog.so-net.ne.jp/rainyday/2006-11-18 R**yの文法が複雑とかいう話があったが、そんな話も異次元の話に感じる。

Concurrent Clean : 失敗の反対

「::Maybe a = Nothing | Just a」を失敗の伝達に使うのは、失敗したときの付加情報が伝達されないので、「::MayFail a b = Failed a | Succeeded b」みたいにしたいのだが、もっとスマートな単語はないかと検討中。 - Passというのがよいかも。 ::PassFail …

Windows : fork

Windowsにはfork関数が存在しないらしいことに気づいてややショックを受けています。 cygwinのforkの実装のドキュメントとか読んだのですが、これを実装するのは手間だなぁ。 spawnを作ったので、fork/execをする必要はないのですが、forkを使って並行計算を…

Concurrent Clean : SVN登録 : spawn*, exec*

http://cleanoptenv.svn.sourceforge.net/viewvc/cleanoptenv/trunk/OptEnv/

Concurrent Clean : MersenneTwister

MersenneTwisterの実装を見直してみたら、uint2Realという関数で、IntからRealに変換をしているけれど、IntとRealでは精度が違うから、Int2つでReal1つを作らないとダメなんじゃないのかな?

テンポラリファイル生成

Windows環境 : http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpfileio/html/_win32_gettempfilename.asp Unix環境 : http://www.linux.or.jp/JM/html/LDP_man-pages/man3/mkstemp.3.html spawnができたら、テンポラリファイル生成関数…

WindowsのC Runtime

はどこにあるのかなと思って探していた。(microsoft製の開発ツールはなじみがないので) system32の下のdllで、crtdll.dllがあったので、これかと思って、impdef.exeで中を確認したら、あるはずの関数がなかったので、違ったかと思って探していたところ、 h…

Concurrent Clean : 呼び出し規約

[id:lethevert:20061009:p3] に書いたことですが、ローカル関数の場合はもうちょっと複雑みたい。 結局、コンパイル後のABCコードを読んで調整する必要があるのか。

Concurrent Clean : spawn

が動くようになりました。 spawn_nowaitとforkとexecを追加することと、モジュールの分割方法を検討中。 ::Errno = Noerr | Errno !Int strerror :: !Errno -> String spawn_wait :: !String ![String] !*World -> (!Errno, !Int, !*World) /* spawn_wait pa…

CSPRNG

http://www.acsac.org/2003/papers/79.pdfを読んでいます。 フォークしたときに、乱数生成系をreseedしなければいけないというくだりを読んで、なるほどと思いました。 フォークすると、親プロセスと子プロセスが同じseedを持つ乱数生成系をコピーして持つこ…

タグをつけるのを

やめることにした。あまり意味ない。

Concurrent Clean : 不足しているプリミティブ

Cleanを使っていて、いくつかプリミティブが不足していると思う。なくても同じことを行う関数は書けるのだが、効率性を考えるとプリミティブとして欲しいという種類のものだ。 たとえば、配列のコピー。Cleanでは配列は破壊的更新ができるので、効率的にコピ…

乱数生成器

昨日の調査で分かってきたこと。 システムが提供する(可能性のある)乱数生成器には次の4種類がある。 情報理論的な'真'の乱数生成器 各ビットが1ビットのエントロピーを持つ乱数を生成する。OSなどがハードウエアを通して外部のエントロピー源から情報を…

Concurrent Clean : ソート

そういえば、Cleanのソートはリスト用にマージソートが提供されているだけなんだけれど、配列用の破壊的なものもあったほうがよかろうということと、少ない要素の場合で有効な別のアルゴリズムもあったほうがよいのではないかと検討中。 何がいいのかな?

Concurrent Clean : Concurrent Programming

そういえば、Famkeの関連でスレッドの話を書きましたけど、lazyなシステムではeagerなシステムのコルーチンくらいの処理は、特別な機構を使わなくてもあたりまえに書けるんですよね。 それでも、いくつか問題があって、たとえば、ファイル入出力などの処理が…

DLL : DEFファイル

確か、DLLからDEFファイルを自動的に生成するツールがあったなー。 あれの引数を逆にしてひどい目にあったなー。 と思って調べていたら、bccに付属しているimpdef.exeというツールだった模様。

Concurrent Clean : Mersenne Twister

Cleanに付属しているMersenne Twisterのライブラリのコードを見ていたら、古いコードをベースにしたものだということに気づきました。 http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/mt.html から取得できるCの標準コードは、2002年に修正されているので…

Concurrent Clean : 乱数生成器

Cleanに付属している乱数生成器はMersenne Twisterだけなのだけれど、暗号学的に安全な乱数生成器もあるほうがいいのではないかなと思って調査中。 Wikipediaに名前の挙がっている Blum-Blum-Shub法と Fortuna法の2つを調査。 線形合同法のようなより軽い乱…

call/ccと副作用

http://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3acall%2fcc%e3%81%a8%e5%89%af%e4%bd%9c%e7%94%a8 [id:sumii:20061121] 前に紹介したFamkeの論文にも、 We implement threads by using first class continuations in Clean, without the usage of c…

Concurrent Clean : fork, exec*

今、spawn系の関数をCleanから呼び出すライブラリを書いているところですが、よく考えてみると、forkやexec系の関数を呼び出しても、Cleanのシステムに破綻はきたさないということに気づきました。 ついでに実装しておこうかと思います。

正規表現

http://groups.google.co.jp/group/fj.questions.unix/msg/235ce238f717f19c lazy transition evaluation法というのがあるのか。

geocitiesの方を

整理しました。 リンク切れとか起きていると思いますが、おいおい直すかも知れません。

どうでもいい

社会的に排斥行動が増えているということと、全体主義的傾向が強まっていることの間には関係があるよ、という話を聞いたことがあるなぁ。 まあ、どうでもいいことなのだけれど。

geocitiesの方は

古くて信用のできない情報が多いので、一度整理しようかな。

common follow sets automaton

というものについての論文を読んでいるのだけれど、さっぱり理解ができない。 頭悪すぎ・・・ - http://citeseer.ist.psu.edu/hromkovic97translating.html http://citeseer.ist.psu.edu/471736.html の2つをあわせて読んだら、なんか、分かってきた。 相変…

M:N vs. 1:1 スレッドモデル

http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/vm/thread-priorities.html http://wwws.sun.com/software/whitepapers/solaris9/multithread.pdf 興味深い。 Erlangのスレッドはグリーンスレッド(という言い方が正しいのか?)だったと理解しているけれ…

正規表現

正規表現の処理効率は、オートマトンの作り方の部分に依存して、オートマトンのマッチ処理の方はあまりバリエーションはないのかなと思って、ちょっと調べていました。 とりあえず、探索を深さ優先にするか幅優先にするかという選択はあると思うのですが、マ…

Concurrent Clean : Esther

以前より探していたFamkeを使ったシェルですが、下の論文によると、Esther(エステル)という名前が与えられているようです。 http://citeseer.ist.psu.edu/plasmeijer05functional.html そして、Hildeライブラリをもう一度よく見ると、Esther.prjというファ…

(雑談)最適なモデリング言語は

自然言語ではないかと。 図などは確かに理解を促進する面があるのだけれど、それだけで完結させようとすると、いろいろ無理が出てきて、結局分かりやすくならないのではないかと思った。 あと、仕様記述言語は、トップレベルではなく、もう少し下流で利用す…