2012-06-01から1ヶ月間の記事一覧

NetBeans7.2 Betaでログフォルダを無視されたフォルダに登録する。

なぜか、ブラウザでプログラムを実行すると、NetBeansのナビゲータがパラパラ動いて気になってました。 たぶん、プロジェクト内のファイルが書き変わったら反応するようになっていてログフォルダがプロジェクト内にあるからなんじゃないかと思って調べてみま…

markdownを使う

基礎的な技術の問題はなくなったので、次は実装をしていきます。 でも、今週は体調がよくなかったので寝てました。(汗 仕事を頑張りすぎた。周りに比べたらそれほどでもないような気もしますが、やっぱ、疲れた。 パソコンしようとすると、頭痛がします。む…

リターン

ということで、リターンを考える。 リターンの嫌な所は、関数内の色々な箇所で脱出されること。式が値を持たないのかな? リターンは関数の型になるけど、式の型にはならないと。 scala> def a():Int = { val a = return 1; a+1} :8: error: value + is not …

ブロック の型推論の環境 immutable な変数

とりあえず、再帰で呼び出しまくれば良いんじゃね? グローバルな環境で既に定義がある変数を再定義して使う場合に、定義する前に参照してたら普通どうなるの?って言う話がある。 Cだと、未定義動作になる。Javaだと、参照不可、Scalaだと前方だか後方参照…

とりあえずメモ

今日はコンパイラ実装会があったので、参加してきました。 なかなか一人でやってると苦しいので、みんながいるところで実装出来ると楽しく実装出来てホントに助かります。やる気をもらって頑張れました。本当に感謝です。

letを変える

letは変数に値を束縛し次の式で使えるように出来る素晴らしい式です。 しかし、作ろうとしている言語では、Scalaのvarとvalとblockが必要です。 そこで、構文木の定義にblockとreturn, varを追加します。 blockは式のリストで、型は一番最後の式の型です。た…

型推論

PHP

以下のサイトを参考にhttp://dysphoria.net/2009/06/28/hindley-milner-type-inference-in-scala/hindley-milnerの型推論をPython版をPHPで実装してみました。 Modula2->Perl->Scala->Python->PHP という流れで移植に移植を重ねられています。 洗練されたり…