タグ

ブックマーク / shinh.hatenablog.com (3)

  • Unix v6 の C コンパイラが面白かった話 - 兼雑記

    Unix v6 の C コンパイラをいじってみようと見てたのですが、これがなかなかすごい物体でした。 読んでて、「いやいくらなんでもこんな作りなわけが…」と思って説明文を探して、 http://plan9.bell-labs.com/7thEdMan/v7vol2b.pdf の「A Tour through the UNIX C Compiler」に説明あるよと教えてもらって読んでみたら、当にそんな作りだった、みたいな。 コンパイラの1段目はプリプロセスして構文木的なものをファイルに吐いて終わりです。2段目は構文木を読みつつコード生成していく。 構文木のノードの種類に対して switch してやること決める…的なものが、データドリブンな方法で書かれてます。データを保存するフォーマットは、 JSON とかではなく、時代が時代ですのでアセンブリです。こういうやつ https://github

    Unix v6 の C コンパイラが面白かった話 - 兼雑記
  • WebKit について (コード) - 2010-01-02 - 兼雑記

    WebKit のコードについて。 Google 社内のコードを見慣れてると、 WebKit のコードはまず、オープンソース的な感じというか、ありていに言うとコメントが圧倒的に少ないように感じます。特に内部についてわかってない人もわかるようなコメントを書く気は基的に無いらしく、冗長気味なコメントを書くとむしろ削ってちょとレビューされたりします。偉い人死んだらどうするのかなー的な。 あとは関数名とかもイマイチなのが多いように思います。個人的な体験で一番印象的だったのは HTML parser 内にあった parseSpecial という関数でした。この special ってのは textarea, script, style, iframe なんかの中にあるタグが無視されるような種類のものを指していたのですが、 special って命名はアレだなぁ…と。そう思いつつ WebKit の人はみん

    WebKit について (コード) - 2010-01-02 - 兼雑記
  • Ruby Kaigi 2008 - 兼雑記

    なんか Golf コンペとかいう頭の悪いイベントをどうこうしろとのことで行ってきました。呼んで下さった運営の方とかありがとうございます。 思い出す。 0日目。とりあえず着いてネットとかでゴルフ場を微妙に改造とかして、13時ちょい前に問題2つ上げた。ゴルフ場は壊れたりとかしなくて良かったと思う。問題2問は、色々考えて普通な複利計算をする問題と、ちょっとややこしい漢数字のパースの問題にしました。あまり簡単な問題すぎると非ゴルファーな人にはかえって解いてもらいにくいかなーとか夢想したんですが、ややこしい問題はあんまり人気がなかったので失敗みたいでした。すんません。 複利計算は私の解で最適に近いんじゃないか…とか思ってたけど、論外だった。ひどかったです。あと練習問題として hello を出力するだけの問題を出したのですが、これは Ruby だとなかなか奥が深くて、 Ruby をかなり深く理解してお

    Ruby Kaigi 2008 - 兼雑記
  • 1