タグ

コンパイラとプログラミングに関するwasaiのブックマーク (2)

  • わずか500行のCソースコードで作られたCコンパイラ「CC500」 | ソフトアンテナ

    Cコンパイラといえばとてつもなく複雑なプログラムというイメージがあります。ところが、このCコンパイラを(サブセットとはいえ)わずか500行ほどのCのソースコードで実現した「CC500」名付けられたプログラムが公開されています。 ソースコードは可読性を維持するためにつけられた空行やコメントを含めると、実際は750行ほどになるそうですが、それでもこれだけコンパクトなソースコードで実行可能なELFバイナリ(Linux用のバイナリ)を生成できるのは興味深いのではないでしょうか。 以下実際にLinuxでコンパイルしてみました。 自己コンパイルできる このコンパイラはC言語のサブセットで、自分自身のソースコードをコンパイルできるところがおもしろいところです。まず「cc500_1」という実行ファイルを生成します。 gcc cc500.c -o cc500_1 生成された実行ファイル「cc500_1」を使

    わずか500行のCソースコードで作られたCコンパイラ「CC500」 | ソフトアンテナ
  • 言語実装パターン

    目次 『言語実装パターン』推薦のことば 謝辞 前書き 第I部 さあ、構文解析に取りかかろう 1章 言語アプリケーションのいろは 1.1 全体のあらまし 1.2 パターンを一巡する 1.2.1 入力文の構文解析をする 1.2.2 木を構築する 1.2.3 木の走査をする 1.2.4 入力が意味する内容を見つけ出す 1.2.5 入力文をインタプリタで実行する 1.2.6 ある言語から別の言語へと変換する 1.3 アプリケーションを解体する 1.3.1 バイトコードインタプリタ 1.3.2 Javaバグ検出器 1.3.3 Javaバグ検出器其の弐 1.3.4 Cコンパイラ 1.3.5 Cコンパイラを活用した C++実装 1.4 パターンを選んでアプリケーションを組み上げる 2章 基的な構文解析パターン 2.1 句の構造を識別する 2.2 再帰的下向き構文解析器を構築する 2.3 文法 DSLを

    言語実装パターン
  • 1