タグ

ブックマーク / i.loveruby.net (7)

  • 第5章 ガ-ベージコレクション

    プログラムの実行時イメージ 突然だが、章を始めるに先立ち、プログラム実行時のメモリ空間の状態につ いて予習をしておこうと思う。この章ではコンピュータの低レベルな部分にか なり踏み込んでいくことになるので、あらかじめある程度の知識を仕入れてお かないと太刀打ちできないのだ。それにこの後の章になればいずれ必要になっ てくる。ここで一回やってしまえば後が楽だ。 セグメント 一般的なCプログラムではメモリ空間の中に以下の部分を持つ。 テキスト領域 スタティック変数やグローバル変数の置場 マシンスタック ヒープ テキスト領域はコードが置いてあるところ。二番目は見ての通り。マシンスタッ クには関数の引数やローカル変数が積まれる。ヒープはmalloc()で割り当てて もらうところだ。 三つめのマシンスタックについてもう少し話そう。マシン「スタック」と言う くらいだから当然スタック構造をしている。つまり

  • Development Environment Conference - 青木日記/T(2006-09-09)

    Wacky
    Wacky 2006/09/13
    開発環境カンファレンスで発表してきました。聞いてくださったみなさん、ありがとうございました。
  • HaskellFaq

    いままでずっと手続き型のプログラミング言語 (C とか Java とか Ruby とか) で生活してきた人間が突然 Haskell を使うとどう思うのか、 という観点を第一に書いています。 「Haskell」ってどう読むの 「はすける」みたいです。 ちなみに論理学者の Haskell B. Curry に由来するそうです。 「カリー化」の Curry もこの人の名前から来てます。 Haskell は関数型言語なの? そうです。 関数型言語って何さ。 関数がプログラミングの中心にあるような言語のことです。 定義は人によってズレがありますが、 少なくとも C や Java は関数型ではなく、Haskell は確実に関数型であり、 ML も関数型であるということに異を唱える人はほとんどいません。 Lisp を関数型に入れるかどうかは人によって違うようです。 Haskell

    Wacky
    Wacky 2006/02/12
    いままでずっと手続き型のプログラミング言語 (C とか Java とか Ruby とか) で生活してきた人間が突然 Haskell を使うとどう思うのか、という観点を第一に書いています。
  • Rubyソースコード完全解説

    $Id: index.html,v 1.6 2004/07/20 23:08:12 aamine Exp $ この文書は書籍『Rubyソースコード完全解説』のHTML版です。 ただし初校段階の原稿をベースにしているため、 書籍では修正されている間違いが残っている場合があります。 予め御了承ください。 2004-02-16 に全章を公開しました。 目次 まえがき 序章 第 1 部「オブジェクト」 第 1 章「Ruby言語ミニマム」 第 2 章「オブジェクト」 第 3 章「名前と名前表」 第 4 章「クラス」 第 5 章「ガーベージコレクション」 第 6 章「変数と定数」 第 7 章「セキュリティ」 第 2 部「構文解析」 第 8 章「Ruby言語の詳細」 第 9 章「速習yacc」 第 10 章「パーサ」 第 11 章「状態付きスキャナ」 第 12 章「構文木の構築」 第 3 部「評価」 第

    Wacky
    Wacky 2005/11/25
  • LoveRubyNet Wiki: RubyExtensionProgrammingGuide

    2008-01-09 15:51:08 +0900 (275d); rev 19 これは草稿です。 いずれ正式なところに移す予定。 対象とする読者 稿は以下のような読者を対象にしています。 Ruby の拡張ライブラリを書いたことがない C プログラミングがそれなりにできる Ruby プログラミングがそれなりにできる 2 に関して。 「ポインタって何?」レベルの人は不可です。 構造体とポインタをちゃんと使ってプログラミングのできる人を対象とします。 3 に関して。 以下のプログラムの結果がどうなるか、 考えるだけでわかるようにしておいてください。 class C p self # 何が表示される? def C.m puts '1' p self end def m puts '2' p self end end C.m # 何が表示される? C.new.m # 何が表示される? このマニュ

    Wacky
    Wacky 2005/10/16
    Rubyエクステンションを作る方法
  • Y Combinator - LoveRubyNet

    $Id: ycombinator.html,v 1.6 2002/06/27 23:37:39 aamine Exp $ [ruby-list:35058] に刺激を受けて Y combinator を解読してみた。 こんなもん読むくらいなら以下の参考ページを読んだほうがいい。 参考にした (というかほとんどそのままな) ページ (英語) http://www.ececs.uc.edu/~franco/C511/html/Scheme/ycomb.html 動機 再帰関数は再帰するときに自分自身を名前で呼ぶのが普通である。 これをなんとかして名前を使わず、関数そのものを呼ぶように させたい。 求めかた まず単純な fact (階乗) を以下に示す。言語は Scheme である。 (define fact (lambda (n) (if (zero? n) 1 (* n (fact (- n

    Wacky
    Wacky 2005/10/02
  • 第1章 Ruby言語ミニマム

    Ruby言語について、当面第一部を理解するのに必要な知識だけ簡単に解説して おく。プログラミング上のテクニックであるとか注意すべきところなんてもの は全く指摘しないので、この章を読んだからと言ってRubyプログラムが書ける ようになるわけではない。既にRuby言語の経験がある読者はこの章は飛ばし て問題ないだろう。 また文法については第二部で嫌というほど話すから、この章ではできるだけ文 法の詳細には関らないようにする。ハッシュリテラルなどバリエーションがあ る表記は最も多用されるもののみ示す。省略可能なものは原則的に省略せずに 示す。そのほうが構文規則がシンプルになるからだ。いちいち「省略できる」 とも言わない。 オブジェクト 文字列 Rubyプログラムが操作できるものは全てオブジェクトである。Javaのintや longのような「基型(primitive)」はない。例えば以下のように書

    Wacky
    Wacky 2005/09/23
  • 1