タグ

RubyとCに関するisaisstillaliveのブックマーク (5)

  • 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 部「評価」 第

  • 拡張ライブラリチュートリアルをやってみる#2 - なんとなく日記

    拡張ライブラリチュートリアルをやってみる#1 - なんとなく日記 続き. 数値のやりとり 整数の加算をやってみる. 処理実体 add.c int add(a, b) int a, b; { return(a + b); } int を 2 つ受け取って加算した結果を int で返す.コードに問題ないかをちょっとテストのために実行してみる main.c #include <stdio.h> int add(int a, int b); int main() { int a, b; a = 1; b = 2; printf("%d + %d = %d\n", a, b, add(a, b)); } % cc -o add add.c main.c % ./add 1 + 2 = 3まあ普通に実行される. C と Ruby の接続 Ruby では数値ですらオブジェクトなので, C の int 型

    拡張ライブラリチュートリアルをやってみる#2 - なんとなく日記
  • 拡張ライブラリチュートリアルをやってみる#1 - なんとなく日記

    なんかlibyamlを移植することになったらしいので,ちょっとやってみる. 参考:Ruby拡張ライブラリ作成チュートリアル 「Hello, world」を表示するために 処理内容を記述したファイル まずライブラリ体.処理内容を C 言語で記述したファイル. hello.c #include <stdio.h> void hello() { printf("Hello, world!\n"); } C と Ruby を繋ぐファイル 次に,ライブラリを呼出実行できるようにする,Ruby のモジュールを作成するための C 言語で記述したファイル. test1.c #include "ruby.h" void hello(); VALUE wrap_hello(self) VALUE self; { hello(); return Qnil; } void Init_test() { VALUE

    拡張ライブラリチュートリアルをやってみる#1 - なんとなく日記
  • 原始的Ruby入門2回目Fizzbuzzの回 - takkan_mのNo planな日常

    一昨日のつづきね。 こないだのHello Worldが、プログラミング言語を学ぶための儀式であるならば、最近のプログラミング言語の学習でこれでも書いとけ的な問題としてFizzBuzz問題というのがある。 1から100までの数字で、3の倍数のときはアホになるFizzと、5の倍数のときはBuzzと、15の倍数はFizzBuzzと、その他の数字は数字をそのまま表示せよという問題。 まず、RubyというのはCの皮をかぶったLispなので、Lisp脳らしく、1から100までの配列を作る。Rubyでは [1,2,3,....,99,100] のように、配列のオブジェクトを生成する簡単な記法が存在するのだが、いちいち100まで書くのは面倒なので、Rangeオブジェクトというのを使い、そこから配列クラスを生成する。 Rangeオブジェクトというのは、指定した範囲を表すオブジェクトである。Rangeオブジェ

    原始的Ruby入門2回目Fizzbuzzの回 - takkan_mのNo planな日常
    isaisstillalive
    isaisstillalive 2008/12/17
    参考になります
  • 原始的Ruby入門 - takkan_mのNo planな日常

    最近、Rubyを書いていないので再入門しようと思い、Hello World のチュートリアルを書こうと思う。 まず、Rubyを入手する。ここから最新のソースを入手し、コンパイルしておこう。何事も新しいのはいいことだと思う。とりあえず、今回は、安定版の最新ソースを入手。 次に、お好きな vim で新しいファイルを作る。ファイルをつくるのは、先ほど落としたRubyのソースと同じディレクトリがいいだろう。ファイルの先頭には、おきまりのおまじないを書かなくてはいけない。 #include "ruby.h" これは、Rubyを勉強していくうちに理解できると思う。 Rubyは、完全なオブジェクト指向言語なので(信じられるかい?数値や文字列までオブジェクトなんだ。Javaのようにプリミティブな型なんて存在しない。)、まずはオブジェクトを作成しなければならない。作成の方法は、 VALUE my_obj =

    原始的Ruby入門 - takkan_mのNo planな日常
    isaisstillalive
    isaisstillalive 2008/12/16
    あれ、意外とRuby簡単じゃね?
  • 1