19

通过“理论计算机科学主题”,我指的是诸如常规语言与非常规语言、抽引引理和语法之类的东西。

我熟悉有限自动机和正则表达式在现实世界中的应用,但是诸如此类的其他主题给我带来了更多问题,因为我没有看到任何现实世界的应用。

4

3 回答 3

18

如果您想知道尝试做某事是否对正则表达式无效,这些东西很有用。例如,如果您想到使用正则表达式解析 XML 的想法,那么知道 XML 是非常规的会很有用。而且,如果您不知道 XML 是非常规的,那么抽水引理会让您简单地证明它。

然后是编译器,如果你不知道这些东西,你就完蛋了。这仅取决于应用程序。

于 2009-01-20T14:36:03.250 回答
9

以下是Steve Yegge对编译器有用性的看法,总结如下:

事实上,编译器构建,在我自己的谦虚和可能令人尴尬的错误观点中,是你可以在本科计算机科学课程中学习的第二重要的 CS 课程。

语法对于解析递归结构是必不可少的,递归结构出现在编程语言、自然语言和复杂的数据结构中。我相信有些程序员根本不认识他们,但是编写编译器、IDE、序列化等的人却经常认识他们。

于 2009-01-20T14:46:29.890 回答
6

正如 Yuval F 所指出的,语法对于语言解析至关重要。如果您看一下解析器生成器,例如 ANTLR,您会发现语法结构与您在学校学到的惊人地相似。

于 2009-01-22T04:26:41.093 回答