1. ホーム
  2. c

[解決済み] GCCやClangのパーサーは本当に手書きなのか?

2023-01-13 03:51:44

質問

GCCやLLVM-Clangは、どうやら 手書きの再帰的降下パーサを使用しているようです。 であり ではなく 機械生成、Bison-Flexベース、ボトムアップ構文解析です。

どなたか、これが事実であることを確認していただけないでしょうか。 もしそうなら、なぜ主流のコンパイラフレームワークは手書きのパーサーを使うのでしょうか?

更新 : このトピックに関する興味深いブログはこちら

どのように解決するのですか?

はい。

  • GCC はかつて yacc (bison) パーサーを使っていましたが、3.x シリーズのある時点で、手書きの再帰的降下パーサーに置き換えられました。 http://gcc.gnu.org/wiki/New_C_Parser を参照してください。

  • Clang はまた、手書きの再帰的降下パーサーを使用しています: の末尾にある "A single unified parser for C, Objective C, C++ and Objective C++" のセクションを参照してください。 http://clang.llvm.org/features.html .