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

erlangのアセンブリを読んでみる.

Erlangが末尾再帰最適化をしてるか調べようとした - みずぴー日記に興味が湧いたので,erlangのアセンブリコードを見てみた.beamのバイトコードにほぼ一対一対応していると考えていいと思う. まず単純な定義の場合 fact(0) -> 1; fact(N) -> N * fact(N-1)…

[C/C++][コンパイラ] オペランド評価の実際

こことか http://code.nanigac.com/forum/view/342 こことか http://www.st.rim.or.jp/~phinloda/cqa/cqa7.html で話されているオペランドの評価に関してだけれども, もちろん処理系依存なので一般的な議論はできないが,実際のところコンパイラの実装がどう…

形骸化している代入演算子の優先順位

true ? 1 : x = 2のようなソースがパースエラーにならないかどうか。ちょっと調べた限りでは、 書ける: Ruby C# 書けない: C Java のように分かれております。Javaと文法が似てると思ってたC#ですが、こんなところに違いがあったんですねぇ。 http://mono.…

[コンパイラ][Haskell][OCaml] Haskellのinfixの仕組み

OCamlでは < や | で始まる中置演算子は左結合になるため、|> はO.K.ですが、演算子をつなげたときにカッコが必要になってしまいます。 http://d.hatena.ne.jp/mzp/20090105#c1231290114 なんだそれと思ったが,ほんとだった。 | ['=' '<' '>' '|' '&' '$'] …

[日記] あけましておめでとうございます

しばらく卒論関係のコーディングに追われているので, 2008-12-11 - mad日記の続きがなかなかできないでいます。そのうち時間を見つけて何とか。ところで,2008年もいろいろあったのにブログを読み返したらなんかコンパイラの話ばかりで悲しかったので,もうち…