.NET

LLパーサのエラー処理に感動

最近VS2005で、関数型言語のおもちゃを作っている。現在、Type Checkerまで実装が完了している。この言語のパーサーはCOCO/RというLL(k)パーサージェネレータで生成している。パーサージェネレータといえばyaccやbisonが有名だが、これらのパーサージェネレ…

Visual Studio 2005を1ヶ月使ってみての使用感

Visual Studio 2005を土日の趣味プログラミングの時間に使い始めて、そろそろ1ヶ月がたとうとしている。これまで使ってみての使用感を5段階で評価するとしたら、4ぐらいだろう。気に入った点を挙げると、 Refactor機能(特に名前の変更) これのおかげで置換…

C#2.0のanonymous methodはclosureか?

少し古くなるのだが、Martin Fowler's BlikiにClosuresという記事があった(日本語版はここ)。この記事では、rubyを例にclosureとC#のdelegate、Javaのanonymous class、Cの関数ポインタとの違いが述べられていた。closureって何ですか?という人もいると思う…

型なしラムダ式の実装(つづき)

id:kkanda:20040905に書いた型なしラムダ式の実装が一通り完了。 現状では、 static void Example6(ParsingInfo info, LambdaContext ctx) { //ex6. λ.(1 0) λ.0: Γ={b,a} VariableTerm v1 = new VariableTerm(info, 1, 3); VariableTerm v2 = new VariableT…

Nullable<>型で遊んでみた

値型のオブジェクトを未定義状態にしておきたい場合がある。いままで、このような場合は既定値を与えることで対処してきた。大抵の場合はこの方法でうまくいくが、この方法だと一度も値が代入されていない状態とそうでない状態を明確に区別することができな…

型なしλ計算の実装

ISBN:0262162091 の 6章「Nameless Representation of Terms」を読んだ。 この章には、λ式の変数を自然数に置き換えても読みづらいけど 意味は変わらないよねということが書いてあった。具体的には、 λx.λy. x (y x) というλ式は、 λ.λ. 1 (0 1) という式に…

Cω再び・・・

なんかいろんな人が気にしてるみたいで、 それを読んでたらまた気になって、再びCωについて調査することに。今回は、論文にだけでなくプレビュー版をちゃんと使ってようと決心。 データベースアクセスがどれくらい自然に行えるのがどうしても気になった。 や…

Visual Studio 2005 beta1のインストール

dotNETマガジンを買ってきて、インストールを試みた。 が、DVDが見つかりませんという謎のエラーでインストーラが止まる。 気合で探してくれorz追記 id:tesuri:20040904にこのエラーの回避方法が! おかげさまで、無事インストールできました。

Code Generationのサーベイ

先日の日記にも書いたCODER TO DEVELOPERを読破。CHAPTER8のGenerating Codeが 気になってなんとなくサーベイ。 Code Generation Network website Code Generationのポータル。情報量はやや少ないけど、 マイナーなコミュニティにしては以外に多いのかも。 C…