Cとメモリに関するindicationのブックマーク (2)
-
はじめに このオンラインブックは執筆中です。完成版ではありません。フィードバックフォーム この本には一冊の本に盛り込むにはやや欲張りな内容を詰め込みました。本書では、C言語で書かれたソースコードをアセンブリ言語に変換するプログラム、つまりCコンパイラを作成します。コンパイラそのものもCを使って開発します。当面の目標はセルフホスト、すなわち自作コンパイラでそれ自身のソースコードをコンパイルできるようにすることです。 この本では、コンパイラの説明の難易度が急に上がりすぎないように、様々なトピックを本書全体を通じて次第に掘り下げていくという形で説明することにしました。その理由は次のとおりです。 コンパイラは、構文解析、中間パス、コード生成といった複数のステージに概念的に分割することができます。よくある教科書的アプローチでは、それぞれのトピックについて章を立てて解説を行うことになりますが、そのよう
-
事の始まり 研究でプログラムを書いていたときの話。 ローカル(MacOS)では問題なく動作していたプログラムが、サーバ(Linux)に移した途端なぜか Segmentation Fault でクラッシュするということがあった。 セグフォは許可されていないメモリ領域にアクセスした時に起こるエラーで、経験上 配列へのアクセスでミスをしているパターンが多い。 どうせ今回もそのパターンだろうと思ったけど、何度確認してもおかしいところは見つからない。 特にそのプログラムではきちんとテストを書いていたので、配列へのアクセスミス程度であればすぐに気づくはずだった。 埒が明かなかったので、今度は標準ライブラリの関数の使い方にミスがないかをチェックしていくことにした。 (そのプログラムではmemcpy を多用していたので、もしかするとmemcpy の第1引数と第2引数の順番を間違えたのかも…と思っての
-
1