タグ

compilerに関するfjwr38のブックマーク (4)

  • Amazon.co.jp: 2週間でできる! スクリプト言語の作り方 (Software Design plus): 千葉滋: 本

    Amazon.co.jp: 2週間でできる! スクリプト言語の作り方 (Software Design plus): 千葉滋: 本
  • node.js C/C++ addons 入門 - unknownplace.org

    node.js のドキュメントを見ていたら C/C++ で簡単に拡張が書けそうだったので試してみた。 addons - Node.js Manual & Documentation ドキュメントに載っている hello.cc をみてみると: #include <v8.h> using namespace v8; extern "C" void init (Handle<Object> target) { HandleScope scope; target->Set(String::New("hello"), String::New("world")); } この extern "C" void init (Handle<Object> target) というやつが、jsで require("hello") したときに呼ばれる感じらしい。この関数だけは必ず実装する必要がある。 この中の Ha

  • Xcode のコンパイラを Apple LLVM に変えてみる

    Xcode3 から Xcode4 に乗り換えていろいろプロジェクト設定を調整していた時に、選択できるコンパイラーがいくつかあるのが気になりました。 "GCC" といえば Linux でお馴染みのコンパイラですけど、それとあわせて Xcode では "LLVM GCC" と "Apple LLVM compiler" というものも選択できるようになっています。 これらについて少し調べてみたところ、なにやら GCC と比べて Apple LLVM compiler の方が、同じコードでもビルドしたバイナリの実行速度が速くなったり、コンパイルの速度が速くなったり、コンパイル時のエラー情報も判りやすく出力してくれるとのことでした。 ちなみに "LLVM GCC" というのは、構文解析を GCC で行うことで、互換性を高めようとしているもののようです。 なかなか良さそうな感じだったので、試しにこれま

    fjwr38
    fjwr38 2012/08/31
    サンプルコードを写経してたらいきなりぶつかった
  • プログラミング言語を作る yaccとlex

    yacc/lexとは Cでプログラミング言語の処理系を実装するのであれば、 多くの場合、yaccとlexというツールを使います。 実のところ、Cとyacc/lexで簡単なプログラミング言語を作る、というのは、 以前、「C言語ヨタ話 」で書いた「 電卓を作ってみよう」 の焼き直しになります。yaccとlexの説明もそちらに簡単に書いたので、 そちらを見てください――と言いたいところですが、 まあここでも軽く説明します。 内容的には重複、というかコピペしている部分もありますが。 プログラミング言語の処理系は、通常、以下のような手順を取ります。 字句解析 ソースプログラムを、「字句(トークン)」の並びに分割する処理です。 構文解析 トークンの並びから、解析木を構築する処理です。 この後、Cなどの機械語を吐くコンパイラや Javaのようなバイトコードを吐くコンパイラなら、 「コード生成」という処理

  • 1