タグ

ブックマーク / www.aoky.net (6)

  • ((Pythonで) 書く (Lisp) インタプリタ)

    Peter Norvig / 青木靖 訳 このページには2つの目的がある。コンピュータ言語の実装について一般的な記述をすることと、Lispの方言であるSchemeのサブセットをPythonで実装する具体的な方法を示すことである。私はこのインタプリタをLispy (lis.py)と呼ぶ。何年か前に私はJavaとCommon LispでSchemeインタプリタを書く方法を示した。今回の目標は、アラン・ケイが「ソフトウェアのマクスウェル方程式」と呼んだところの簡潔さと取っつきやすさを可能な限り実現するということだ。 SchemeのサブセットLispy の構文と意味論 コンピュータ言語の多くは様々な構文的な決まり(キーワード、中置演算子、カッコ、演算子優先順、ドット記法、セミコロンなど)を持っているが、Lisp族言語の1つとして、Schemeの構文はすべてカッコ付きの前置記法であるリストを基とし

    kdaiba
    kdaiba 2010/12/27
    言語を作ってみるというのは面白いな
  • 理解することが書き直すことを意味するとき

    Jeff Atwood / 青木靖 訳 2006年9月18日 開発者に時間をどう使っているか聞いたなら、彼らはほとんどの時間コードを書いていると答えるだろう。 しかし、ソフトウェア開発者が時間を実際どう使っているか観察したなら、ほとんどの時間をコードの理解に使っていることがわかる。 ピーター・ハラムがこのことについて説明している。 どうしてコードを新規に書くより5倍もの時間をコードの修正に使っているのか? それは新規のコードはほとんどすぐに古くなるからだ。何か新しくコードを書く。コーヒーを飲んで一服する。すると突如として、コードは古いコードになっている。できたてのコードはせいぜい初期のデザインしか反映していないが、デザインの多くの部分は前もって現われるものではない。開発プロジェクトの多く が反復的開発手法を使っている。デザイン、コーディング、テスト、繰り返し。たくさんの繰り返し。すべてが新

    kdaiba
    kdaiba 2007/08/01
    再発明の意義
  • Rhino on Rails

    Steve Yegge / 青木靖 訳 2007年6月26日 なんて日だろう。John Lamに取り上げられると、Slashdotに取り上げられるよりひどいことになるらしい。私のチームのみんなは一日中私のことを笑っていた。どうしてこんなことになったのか見当も付かない。 雪崩のようなメールにいちいち返答するより、一括アップデートしてしまう方が良さそうだ。 しかしその前にだ、いったい今の私くらい当惑している人間が他にいるだろうか? Foo Campで行われた数々の目を見張るような議論の中で、私が即興でしたちょっとした講演——それにはどういうわけか20分前にテントからはい出 してきたばかりみたいな私の写真が添えられていて、二日酔いで道に迷い、どうして自分がセバストポルの真ん中の原っぱにいるのかも分らない様子で写っており、分ったのは どうも前の夜に朝10時の講演を引き受けたらしいということだけとい

    kdaiba
    kdaiba 2007/07/04
    制約条件があるから燃えるのかな
  • Steve Yegge、RailsをJavaScriptに移植する

    John Lam / 青木靖 訳 2007年6月24日 Foo Campで私が最初に行ったのは、「GoogleRailsクローン」と題するSteve Yeggeの講演だった。このタイトルを見てどうして聞かずにいられようか? Googleはプログラミング言語として、C++JavaPythonJavaScriptの4つを使っている。WebのフロントエンドJavaで書きたがる人がそういるとは思えないが、それはWebフロントエンド用のJavaコードをたくさん持っているGoogleにしても 同じだ。 Googleにおける開発者の生産性を引き上げるため、Steveは会社にRails(したがってRuby)を言語として採用するように訴えたが、それが叶わないとなると(Googleはインフラでサポートしなければならない言語の数を増やすのをとても嫌っている)、 彼は欲求不満のプログラマがみんなするだろ

    kdaiba
    kdaiba 2007/06/27
    ayaya(だっけ?)抜かれた
  • スペル修正プログラムはどう書くか

    Peter Norvig / 青木靖 訳 先週、2人の友人(ディーンとビル)がそれぞれ別個にGoogleが極めて早く正確にスペル修正できるのには驚くばかりだと私に言った。たとえば speling のような語でGoogleを検索すると、0.1秒くらいで答えが返ってきて、もしかして: spelling じゃないかと言ってくる(YahooMicrosoftのものにも同様の機能がある)。ディーンとビルが高い実績を持ったエンジニアであり数学者であることを思えば、スペル修正のような統計的言語処理についてもっと知っていて良さそうなものなのにと私は驚いた。しかし彼らは知らなかった。よく考えてみれば、 別に彼らが知っているべき理由はないのだった。 間違っていたのは彼らの知識ではなく、私の仮定の方だ。 このことについてちゃんとした説明を書いておけば、彼らばかりでなく多くの人に有益かもしれない。Google

    kdaiba
    kdaiba 2007/04/27
    日本語ではどうなんだろう
  • あなたの知っていることはすべて5年以内に陳腐化する

    Jeff Atwood / 青木靖 訳 2006年3月20日 ソフトウェア開発で奇妙なことが何かというと、知識が陳腐化するのがいかに早いかということだ。ダニエル・アップルマンはこれをルイス・キャロルの「鏡の国のアリス」の一場面に喩えたが、この状況がすごくよく表されている。 「さあさあ」女王が叫んだ。「もっと速く、もっと速く!」 2人はあまりに速く走ったので、そのうち空中をかすめ飛んで足がほとんど地面に触れないくらいになった。アリスは不意にすっかり疲れ切って立ち止まると、息切れとめまいを起こして地面に座り込んでしまった。 女王はアリスを木にもたせかけて立たせると、優しく言った。「少し休むといい」 アリスは周りを見回して驚いた。「あら、ずっとこの木の下にいたみたい! みんな元のままだわ!」 「もちろん元のままだとも」と女王が言った。「どうなると思ったの?」 「だって、私たちの国では」アリスはま

    kdaiba
    kdaiba 2007/03/24
    赤く塗れば3倍早くなりますよ
  • 1