[解決済み] 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 .
関連
-
C 構造体定義エラー: '['トークンの前に一次式があることが予想される
-
libc++abi.dylib: NSException タイプの捕捉されない例外で終了するエラー
-
[解決済み] PTHREAD_MUTEX_INITIALIZER vs pthread_mutex_init ( &mutex, param )
-
[解決済み] stdinとSTDIN_FILENOの違いは何ですか?
-
[解決済み] ++iとi++の違いは何ですか?
-
[解決済み] .aファイル、.soファイルとは何ですか?
-
[解決済み] なぜC言語では構造体を頻繁にtypedefする必要があるのですか?
-
[解決済み] 2次元配列の反復処理において、ループの順序がパフォーマンスに影響するのはなぜですか?
-
[解決済み】なぜこれらのコンストラクトはプリインクリメントとポストインクリメントを使用して未定義の動作をしているのでしょうか?
-
[解決済み] GCCとg++はどのようにブートストラップされるのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[C] Error [Error] 代入の左オペランドとして lvalue が必要です。
-
[解決済み] 初期化でポインタ対象の型から修飾語を捨てる
-
[解決済み] MIPSのネストされたForループと配列の使用
-
[解決済み] stdinとSTDIN_FILENOの違いは何ですか?
-
[解決済み] なぜmemsetではなくbzeroを使用するのですか?
-
[解決済み] C関数から文字列を返す
-
[解決済み] ++iとi++の違いは何ですか?
-
[解決済み] C言語でオブジェクト指向のコードを書くとしたら、どのようにすればよいのでしょうか?[クローズド]
-
[解決済み】C++は文脈自由か文脈依存か?
-
[解決済み] なぜC++はLR(1)パーサーでパースできないのか?