「理論的なコンピューター サイエンスのトピック」とは、正規言語と非正規言語、ポンピング レンマ、文法などのことを指しています。
私は有限オートマトンと正規表現の現実世界での応用に精通していますが、現実世界での応用を見たことがないので、これらの他のトピックなどはより多くの問題を引き起こしています。
「理論的なコンピューター サイエンスのトピック」とは、正規言語と非正規言語、ポンピング レンマ、文法などのことを指しています。
私は有限オートマトンと正規表現の現実世界での応用に精通していますが、現実世界での応用を見たことがないので、これらの他のトピックなどはより多くの問題を引き起こしています。
これらのことは、何かをしようとすることが正規表現で無駄かどうかを知りたい場合に役立ちます。たとえば、XML が正規表現ではないことを知っていると、XML を正規表現で解析するというアイデアが頭に浮かんだ場合に役立ちます。また、XML が非正規であることを頭の中でわかっていない場合でも、ポンピング レンマを使用すると、それを自明に証明できます。
そして、コンパイラがあります。このことを知らなければ、あなたは運命づけられています。それは単にアプリケーションに依存します。
以下は、コンパイラの有用性に関するSteve Yegge の見解です。要約すると、次のようになります。
実際、Compiler Construction は、私自身の謙虚で、おそらく恥ずかしいほど間違った意見ですが、学部のコンピューター サイエンス プログラムで受講できる 2 番目に重要な CS クラスです。
文法は、プログラミング言語、自然言語、および複雑なデータ構造に現れる再帰構造を解析するために不可欠です。一部のプログラマーはまったく会わないと思いますが、コンパイラ、IDE、シリアライゼーションなどを書いている人は彼らにたくさん会います。
Yuval F が指摘したように、文法は言語の解析にとって非常に重要です。ANTLR などのパーサー ジェネレーターを見てみると、文法の構造が学校で習ったものと驚くほど似ていることがわかります。