Finite automata DFA、NFA、PDA和图灵机的实际使用

Finite automata DFA、NFA、PDA和图灵机的实际使用,finite-automata,computation-theory,turing-machines,Finite Automata,Computation Theory,Turing Machines,我现在修一门计算理论的课程。我能很好地理解这些概念。我能解决这些问题。而且,当我向我的指导老师询问真实世界的应用程序时,他告诉我这些概念在编译器设计中肯定是有用和必要的。但是,至少为了进行有意义的研究,我需要一些关于如何在编码中使用这些概念的解释 e、 如果我想设计自己的grep。我将在C中使用字符串函数。我不知道如何在编码中使用正则表达式 同样的情况也适用于图灵机 如果我想加上两个数字,为什么我必须用这些一元概念。硬件是否实现了这些概念 本文对DFA和NFA进行了实际讨论,因为它们适用于高效的

我现在修一门计算理论的课程。我能很好地理解这些概念。我能解决这些问题。而且,当我向我的指导老师询问真实世界的应用程序时,他告诉我这些概念在编译器设计中肯定是有用和必要的。但是,至少为了进行有意义的研究,我需要一些关于如何在编码中使用这些概念的解释

e、 如果我想设计自己的grep。我将在C中使用字符串函数。我不知道如何在编码中使用正则表达式

同样的情况也适用于图灵机

如果我想加上两个数字,为什么我必须用这些一元概念。硬件是否实现了这些概念

本文对DFA和NFA进行了实际讨论,因为它们适用于高效的正则表达式匹配。它讨论了哪些真正的库使用高效的Thompson NFA方法


图灵机主要是作为计算机的一种定义而实用的。如果有人告诉我一种新语言,我可以通过尝试在其中构造一个图灵机来检查它是否与C或Java一样强大(不要与易用性混淆)。NFA和DFA:这两种语言在编译器中用于从源文件中的字符创建标记,并将它们返回到语法分析器。您可以从UNIX
lex
yacc
手册了解更多信息


图灵机:我认为这与它最初的学术目的没有什么不同。

“试图在其中构建图灵机”。你能解释一下吗。(这是否类似于试图编写一个代码来获取所有素数btw 100000。即通过编写一个示例代码来检查强大性的方法。)因此,仅使用图灵机来实现这一目的?谢谢你的链接。它更有用。获取那些素数只是一个单独的测试。如果我能制造一台图灵机器(维基百科有一个很好的工具),我就能找到那些素数,以及解决任何其他可计算的问题。^假设丘奇图灵论文;D@Patrick87,别担心。如果我们发现一些图灵机器无法计算的东西,我们只会说它不是“.”;)关于“图灵机器”:那为什么使用图灵机器呢?它为什么被发明?或者为什么会出现这些概念?为了能够定义什么是可计算的,艾伦·图灵首先必须创建一台能够计算所有可计算的东西的抽象机器。这就是图灵机器的起源。如果这台抽象机器不能解决这个问题,那么它就是无法解决的。您可以在原始论文“关于可计算数字,以及Entscheidungsproblem的应用程序”中找到更多信息。请注意,这不是沿着这些路线进行的唯一工作。还有阿隆佐·丘奇的作品和他的Lambda演算。这也解决了可计算性问题。补充路易斯的评论:图灵机器被引入系统地研究计算本身的性质,从而定义了可计算性的概念