我现在正在学习计算理论课程。我能很好地理解这些概念。我能够解决问题。而且,当我向我的导师询问真实世界的应用程序时,他告诉我这些概念在编译器设计中肯定是有用且必不可少的。但是,至少要做一个有意义的研究,我需要一些解释,如何在编码中使用这些概念。
例如如果我想设计自己的grep。我将在C中使用字符串函数。我不知道如何在编码中使用正则表达式。
同样的情况适用于图灵机。
如果我想添加两个数字,为什么我必须遵循这些一元的概念。硬件是否实现了这些概念?
这个article对DFA和NFA进行了实际讨论,因为它们适用于有效的正则表达式匹配。它讨论了哪些真正的库使用高效的Thompson NFA方法。
图灵机主要用作计算机的定义。如果有人告诉我一种新语言,我可以通过尝试在其中构建图灵机来检查它是否与C,Java一样强大(不要与易用性相混淆)。
NFA和DFA:这两个在编译器中用于从源文件中的字符创建标记并将它们返回到语法分析器。您可以从UNIX lex
和yacc
手册中了解更多信息。
图灵机:我不认为这与其原始学术目的有不同的用途。