2007-01-01から1年間の記事一覧
このモジュールはマルチスレッド(別名 軽量プロセス (light-weight processes)またはタスク(tasks)) に用いられる低レベルプリミティブを提供します -- グローバルデータ空間を共有するマルチスレッドを制御します。同期のための単純なロック(別名 mutexesま…
うーん、例外ってなんだろうなー。
threading.Thread クラスは, start() っていう関数を持ってる.なので,このクラスを継承したクラスは, start っていう名前の値を持ってはいけない. スクリプト言語というかオブジェクト指向に慣れてないので,こういうエラーがでたときに原因を探すのが…
Bisimulation は,お互いがお互いを simulate するものかと思っていたのだけど,そうじゃなかったらしい. つまり, P と Q が bisimilar であることを判定するのに, P が Q を simulate し,かつ Q が P を simulate することを確認すればいい,というわけ…
Mobility Workbench もどきを作っている。もちろん Haskell で。1日とちょいでとりあえずステップ実行まではできるようになった。 あとは structural congruence を使った簡単化とかをやれば(ステップ実行に関してだけは)本家に遜色ない。 > agent P(a,b) = …
Standard ML って Robin Milner が定義した言語だったのか…。じゃあもっと敬意を払わないといかんな。
今日は Opera を 9.5 にしてから動かなくなっていた Userjs を直してやろうということで取り組んでいましたが、失敗しました。うーん、腰痛いわ。 GM_xmlhttpRequest がおかしい気がするんだけど、理由はよくわからない。困ったなー。
またも id:syd_syd さんに教えていただく。 しばらく遊んでいたところ Sigma, Bsigma, Pi の使い方は理解できたが、その意味はわかっていない。やっぱり本を読んで勉強しないといけない。 直感的には、 Sigma は送信データにマッチし、 Bsigma はプロセス内…
インデントを考慮したパースとかはまぁ普通にできそうだとして、オブジェクト指向な言語の VM っていろいろとどうやるんだろーなーとかふと思った。なんだかめんどくさそうだな…。 あとでちゃんと考えてみよ。
Hennessy-Milner logic は、プロセスの性質を表現するための論理式。ちょっと複雑な性質を表現するためには Recursive Hennessy-Milner logic を使うことになる*1。これに関する資料が少ないので一応。 id:syd_syd さんに非常に感謝。 π計算のモデルチェッカ…
卒論で作ったやつにそろそろ名前をつけないといけない。いいのが思いつかない。
これおもしろい。だれか研究会でやってください。 http://madscientist.jp/~ikegami/diary/20061119.html#p09
サンプルプログラムはほぼ完成。 ただ、 windowOnIdle で登録したアクション(消費者)が、なかなか実行されないという問題点が。複数のスレッドで生産者と消費者がひとつのキューを扱うのだけど、 idle イベントが発生した段階でキューにデータがないと、なか…
f a b = a where g = b f a b = a g b = b こういうふうに変形したいわけですな。 今までやってきた方法だとだめな気がしてきた…。ちょっとゆっくり考えてみよう。 f の中で g を呼んだり、その逆をやったりするとややこしくなってくる。
π計算でプログラム書くのは死ぬほどめんどくせぇぇ…。絶対に、なんかのツールによるサポートが必要と思われる。
Opera で fswiki にログインできなくなってしまった。念のためクッキーとかも削除してみたが変化無し。いつからかはわからんけど、たぶんβにしてから。
研究室にお客様(?)がいらっしゃった。その人の研究と自分のはやや近い気がするので、なんか聞けたらなぁと思うのだが、こちらに話すネタがないし、そもそも言語の壁がある。やっぱり英語って難しいね。なんにも話せなかったよ。 "My name is ..." のあと、フ…
前に書いたコードにバグを発見した。で、ソースを読みなおしてたら明らかに無駄なことをやってたので、がっつり書き直すことにした。むむ、前書いたときは頭が寝てたんじゃないだろうか。かなりコードが短くなって、軽量化したはず。でも、他のバグが入って…
うーん、疲れた。眠い。
π計算でキャンセルできるファイルコピーユーティリティを書く、というのをやっている。ちょっとした頭の体操。 Haskell を勉強し始めた頃と近いものを感じるかもしれない。 非同期π計算だと、送信をしたあとには何もできないという制約がつく。チャネル a で…
適当なままずるずると書き続けてコピーをキャンセルできるようにした。wxHaskell をいろいろ試しながらやってるのでどっか変なコードになってるかも。
プログレスバーを出す感じにしてみた。またしても投げやり。けど wxHaskell の資料が少ないので、公開しておけば少しはほかの人の役に立つかもしれない。プログレスバーはダイアログなのでちょっと扱いづらい。
知らなかった…。 ボタンを disable にする関数が見つからないわけだ。windowDisable ってやつを使えばいいのかー。
突然だけど、ちゃんと活動していることを示す(誰に?)ためにコードを貼付けておく。 ディレクトリを指定するとコピーするというだけの投げやりプログラム。ソースもいろいろ投げやり。動けばなんでもいーや的な。1週間以内にはこれが GUI っぽくなる予定です…
getopt が便利。 ていうか python 便利。こう考えるとやはり Haskell は LL ではない。Java + Eclipse は LL 。
Thunderbird を使うことにしたので spotlight を再び切った。(Mail.app は spotlight が動いてないとメールの検索ができない) そしたら、なぜか Opera の CPU 使用率が激減。関係あるのかわからんけど。
使ってみた。けど、検索フォルダ(スマートフォルダみたいなやつ)がおかしい。一度みた新着メールが表示されなくなる(検索するとでてくる)。 わけがわからん。 - 何度も再起動したりアカウントを作りなおしたりしてたら直ったみたい。ますますわけわからん。
消費者生産者。 import threading, Queue, random, sys queue = Queue.Queue() signal = True def consumer(): while signal: x = queue.get() print x def producer(): while signal: queue.put(random.randint(1,100)) def main(): global signal p = thre…
& はビット論理積。普通の論理積は and で。
Eclipse って楽だな。こんなに簡単に GUI のプログラムが書けるとは思わなかった。ただ、自分のノートだと微妙にもっさりするのが残念なところ。Opera と Eclipse でぎりぎり。他になにか起動するとゴリゴリという音とともに残念な結果に。あと画面が小さい…