厳密でパワフルな技法を体感する――近刊『Pythonで学ぶ解析表現文法と構文解析』はじめに一部公開
2022年2月下旬発行予定の新刊書籍、『Pythonで学ぶ解析表現文法と構文解析』のご紹介です。
同書の「はじめに」の一部を、発行に先駆けて公開します。
***
はじめに
構文解析は、プログラミングの経験があれば、一度は書いた人も多い身近なプログラムです。本書は、そのような構文解析技法の一つである解析表現文法をPython3による開発実践とともに解説を試みたものです。
本書のメインテーマである解析表現文法は、2004年にBryan Fordによって提案された形式文法です。文脈自由文法に比べ新しく、実用的なアイディアが詰まっています。しかし、それ以上に面白いのは、解析表現文法は、理論を学ぶことから言語処理系の実装まで、コンピュータ科学の世界への素晴らしい入り口を提供してくれる点にあります。
本書では、読者の次のような疑問に答えるような気持ちで説明しています。
コンピュータ科学においては、理論をしっかり学ぶことも、それに基づいてきっちり開発することも大切です。本書は、両方ともと考えていたら、欲張りな構成となってしまいました。逆に、理論の解説も実装の解説も物足りなく感じる部分があるでしょうが、そのような部分は著者の力量不足をお許し願いたい。
なお、本書は、Python3の文法を習得し、簡単なプログラミング経験があることを前提に書かれています。構文解析で必要となるオブジェクト指向や関数型プログラミングなどの高度な技法は、本書で学びながら読み進められるようになっています。
本書で紹介したソースコードの一部は、以下のGitHubレポジトリから参照することができます。
(以下略)
***
「文法として曖昧さがない」「正規表現や文脈自由文法よりも強力」などの理由で注目を浴びる構文解析技術「解析表現文法(parsing expression grammar, PEG)」の初の入門書。
《本書の特長》
●Pythonで動く著者提供のツール「PegTree」でパーザを生成しながら解説。理論の詳細に惑わされず、実装上のポイントが効率よく学べます。
●構文解析の初歩から解説。オブジェクト指向プログラミングや関数型プログラミングなどの高度な技法も随時解説されているので、Pythonでの簡単なプログラミング経験があれば、だれでも読むことができます。
●後半では、小規模なプログラミング言語、パーザジェネレータ、パーザコンビネータなどの開発を解説。一段深い解析表現文法の使い方を学べます。