私は長年プログラミングを行ってきましたが、依然として非常に時間がかかるタスクの1つは、パーサーの文法を指定することです。この過度の努力の後でも、私が思いついた文法が良いかどうかはわかりません( 「適切」の合理的な尺度によって)。
文法を指定するプロセスを自動化するアルゴリズムがあるとは思っていませんが、現在のアプローチの当て推量と試行錯誤の多くを排除する問題を構築する方法があることを願っています。
私の最初の考えはパーサーについて読むことであり、私はこれのいくつかを行いましたが、私はこの主題について読んだすべてが文法を与えられたものとして(または検査によってそれを指定できるほど些細な)、そして焦点を当てますこの文法をパーサーに変換する問題。私は直前の問題に興味があります:そもそも文法を指定する方法。
私は主に、具体的な例(ポジティブとネガティブ)のコレクションを正式に表す文法を指定する問題に興味があります。これは、新しい構文を設計する問題とは異なります。この区別を指摘してくれたマクニールに感謝します。
文法と構文の違いを本当に理解したことは一度もありませんでしたが、理解し始めた今、私は主に文法を指定する問題に興味があると言って最初の明確化を明確にすることができました事前に定義された構文:私の場合、この構文の基礎は通常、ポジティブな例とネガティブな例の集まりです。
パーサーの文法はどのように指定されていますか?ベストプラクティス、設計方法論、およびパーサーの文法の指定に関するその他の有用な情報を説明するための事実上の標準である本または参考資料はありますか?パーサーの文法について読むとき、どの点に焦点を合わせるべきですか?