タグ

QiitaとC言語に関するrabbit2goのブックマーク (2)

  • セルフホストできるCコンパイラを作ってみた - Qiita

    低レイヤを知りたい人のためのCコンパイラ作成入門 (以下 コンパイラブック) を一通り読んでCコンパイラを作ってみました。 このはまだ完全でなく(2020/09/01現在)、例えば構造体の実装の説明などは文章としては存在せず、このの参照実装である chibicc を写経がてら作っていきました。 (実際には今現在進行中の @rui さんの Cコンパイラ作成のオンラインコースを始めます の参加者のみに現状は公開されているchibiccよりもうちょっと改善されたcコンパイラ実装が参照実装だそうです) もともと構文解析とかはちょっと興味があったりして、qiitaでも [ruby] Parsletで構文解析する[その1] [ruby] Parsletで正規表現をパースしてvm型のエンジンを実装してみる[その1] パース〜ASTまで みたいな記事は書いていたんですが、あんまりややこしいパーサーは書

    セルフホストできるCコンパイラを作ってみた - Qiita
  • 「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita

    はじめに 先日ツイッターで見かけた呟き pic.twitter.com/33Yk02hu1U — TOMO (@tomozh) October 14, 2020 そういうこともあるのか的な反応もあるようなので具体例を挙げてみることにする。 例1 所謂FizzBuzz問題。 #include <stdio.h> void fizzbuzz(int n) { int next; int i = 1; do { printf(i % 15 ? i % 5 ? i % 3 ? "%d\n" : "Fizz\n" : "Buzz\n" : "FizzBuzz\n", i); if (i++ >= n) next = 0; } while (next); } int main(void) { printf((char[]){""}); // この位置にprintfが無いとなぜか動かない fizzbuz

    「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
  • 1