【发布时间】:2010-10-02 11:17:37
【问题描述】:
通过“理论计算机科学主题”,我指的是诸如常规语言与非常规语言、抽引引理和语法之类的东西。
我熟悉有限自动机和正则表达式在现实世界中的应用,但诸如此类的其他主题给我带来了更多问题,因为我没有看到任何现实世界的应用。
【问题讨论】:
通过“理论计算机科学主题”,我指的是诸如常规语言与非常规语言、抽引引理和语法之类的东西。
我熟悉有限自动机和正则表达式在现实世界中的应用,但诸如此类的其他主题给我带来了更多问题,因为我没有看到任何现实世界的应用。
【问题讨论】:
如果您想知道尝试做某事是否对正则表达式无效,这些东西很有用。例如,如果您想到使用正则表达式解析 XML 的想法,那么知道 XML 是非常规的会很有用。如果您不知道 XML 是非常规的,那么抽水引理会让您轻松证明它。
然后是编译器,如果你不知道这些东西,你就完蛋了。这仅取决于应用程序。
【讨论】:
这里是Steve Yegge's take关于编译器的用处,总结为:
事实上,编译器构建,在我自己的谦虚和可能令人尴尬的错误观点中,是你可以在本科计算机科学课程中学习的第二重要的 CS 课程。
语法对于解析递归结构至关重要,递归结构出现在编程语言、自然语言和复杂数据结构中。我相信有些程序员根本不认识他们,但是编写编译器、IDE、序列化等的人却很多。
【讨论】:
正如 Yuval F 所指出的,语法对于语言解析至关重要。如果您看一下解析器生成器,例如 ANTLR,您会发现语法结构与您在学校学到的惊人地相似。
【讨论】: