「実際のコンパイラライター」は、パーサージェネレーターを使用するのではなく、独自の手作りパーサーを作成すると聞いています。また、パーサジェネレータは実際の言語には対応していないと聞きました。おそらく、パーサジェネレータを使用して実装するのが難しい多くの特殊なケースがあります。私はこれについて疑問を持っています:
- 理論的には、GLRパーサージェネレーターはほとんどのプログラミング言語の設計を処理できるはずです(おそらくC ++を除く...)
- パーサジェネレータを使用するプロダクション言語を少なくとも1つ知っています:Ruby[1]。
- 学校でコンパイラーのクラスを受講したとき、パーサージェネレーターを使用しました。
だから私の質問:パーサジェネレータを使用して本番コンパイラを作成することは合理的ですか、それともパーサジェネレータを使用することはコンパイラコミュニティによって不十分な設計決定と見なされていますか?