タグ

CPUとcompilerに関するclavierのブックマーク (3)

  • 低レイヤを知りたい人のための Cコンパイラ作成入門

    はじめに このオンラインブックは執筆中です。完成版ではありません。フィードバックフォーム このには一冊のに盛り込むにはやや欲張りな内容を詰め込みました。書では、C言語で書かれたソースコードをアセンブリ言語に変換するプログラム、つまりCコンパイラを作成します。コンパイラそのものもCを使って開発します。当面の目標はセルフホスト、すなわち自作コンパイラでそれ自身のソースコードをコンパイルできるようにすることです。 このでは、コンパイラの説明の難易度が急に上がりすぎないように、様々なトピックを書全体を通じて次第に掘り下げていくという形で説明することにしました。その理由は次のとおりです。 コンパイラは、構文解析、中間パス、コード生成といった複数のステージに概念的に分割することができます。よくある教科書的アプローチでは、それぞれのトピックについて章を立てて解説を行うことになりますが、そのよう

  • コンパイラーを負かす

    roguelazer's website: beating the compiler なかなか面白かったので翻訳して紹介する。 たとえば、97%の場合において、僅かな効率など忘れるべきである。。早すぎる最適化は諸悪の根源である。とはいえ、残りの重要な3%の機会を逃すべからず。 -- Donald Knuth 計測せよ。計測するまで速度の最適化を施してはならぬ。たとえ計測したにせよ、一部のコードが残りを圧倒するまではまだ最適化してはならぬ。 Rob Pike 最新のWebサービスを主体とした技術の業界に長年浸かった我々は、パフォーマンスの問題を忘れがちである。SQLAlchemy ORMの中で行うリクエスト一つが8,9秒かかる中で、関数呼び出しひとつを3ミリ秒最適化したところで何になるというのか。とはいえ、時にはそのような最適化スキルを養っておくのもいいことだ。今回は、ある簡単な課題を最適化

  • libc非依存の言語処理系(もしくは、自作CPUへの移植の苦労話) - wasabizの日記

    2015-02-03 libc非依存の言語処理系(もしくは、自作CPUへの移植の苦労話) 自作CPUへの移植が大変だったのでメモ。 まず、今回ターゲットにする環境の特徴を軽く説明しておくと CPUが自作 ISAも独自 uccという自作Cコンパイラ(開発中で不完全、c89のサブセット)とMLコンパイラがある 浮動小数点数はIEEE single floatのみサポート メモリは4MB IOはRS232Cしかない そこそこ安定したシミュレータがある。 Cコンパイラと入っても不完全なので、cファイルはコンパイルできてもlibcに相当するものはまだない。C89(C90)のサブセットしかサポートしていないので、ビットフィールドが無かったり、charが32bitだったり、構造体渡し・構造体返し・構造体代入がなかったりする。最終的にはこいつでOSをコンパイルする予定なのだけれど、OSもよそから持ってきた

    libc非依存の言語処理系(もしくは、自作CPUへの移植の苦労話) - wasabizの日記
  • 1