我喜欢我在Automata Theory和Formal Languages学习的课程,所以很自然地,我开始环顾互联网,了解自从课程所依据的书籍编写以来所发生的事情。
我发现我不熟悉的东西清单似乎很短。例如,从维基百科条目中的自动机列表中,该课程涵盖了一半,而另一半主要与课程未涵盖的一种语言相关。
此外,在研究理论的应用时,我得到了大致相同的结果:编程语言语法,编译器,文本搜索,以及......就此而言。
那真的死了吗?还是继续发展?这个理论有新的应用吗?
答案 0 :(得分:20)
自动机非常有用。近20年前,我完成了软件工程和计算机科学的学位。最早的课程之一是机器模型,涵盖了FSA,并冒险转向机器,可计算性,停止问题等。
每个人都认为这门课程既无聊,无关紧要,太困难或无意义。圆圈和圆弧对任何人来说都没什么意义,磁带上只有一个是什么意思?硬盘出了什么问题?在课程结束时,讲师给出了一份调查问卷 - 您认为这门课程在一个月,一年,十年内有多大用处。然后,我回答说对所有人都没用。现在它会随着时间的推移而增加有用性,以“非常有用”
结束我在日常工作中使用过自动机批次,它们是某些类别问题的正确工具,除此之外几乎无法与之竞争。我用它们来压缩数百万个单词列表+类别数据(好的,非常平庸),还实现了一个扩展,其中符号是复杂的对象,状态转换是谓词。这允许将一组复杂的规则编译为确定性FST,并且所有规则在没有冗余计算的情况下同时且确定地进行评估。
我的投票仍然相关!
答案 1 :(得分:5)
自动机和正式语言是正则表达式,解析器,编译器,虚拟机等的基础,可以定期改进。
定理证明器域中还需要用于程序检查,其目的是证明程序或协议实现了它假装要做的事情。这个领域至关重要(投票机软件,银行交易,车辆安全系统等),并且仍处于开发阶段。
所以不,自动机理论和形式语言都没有死!
答案 2 :(得分:3)
它并没有死,更多的是“坚持不懈” - 这是一种简单的形式主义,它更多地被用作其他人的基础,而不是一个特别活跃的研究课题。
Henry Thompson关于XML模式的工作使用并扩展了自动机理论。
许多嵌入式软件项目大量使用与自动机相关的有限状态机,并且使用它们的一些技术可以利用或扩展自动机理论。
Pi-calculus利用互模拟的概念扩展了自动机理论,并增加了分析并发过程的能力。这是我最近在大学学到的自动机理论研究中最接近的一点。
答案 3 :(得分:1)
我认为随着计算的新领域,例如量子计算和hypercomputation的开放,将会有来自自动机理论和进化自动机之类的新的应用程序要求,要求和理论难题和计算,细胞自动机等等。
我认为它暂时没有死,just a bit cold。
答案 4 :(得分:1)
我认为自动机理论涉及很多领域而没有人意识到。例如,我可以看到它在密码学和密码分析中的应用。
答案 5 :(得分:0)
很多过程控制的东西都是基于理论的。特别是在证明控制系统的稳健性方面。
答案 6 :(得分:0)
看看工作流程,看看如何将自动机理论用于形式化所描述的概念和模式:Workflow Patterns
答案 7 :(得分:0)
几年前我遇到的一种新技术叫做Parsing Expression Grammars,又名PEGs又名Packrat Parsing。布莱恩福特已经完成了一些工作,可以在http://pdos.csail.mit.edu/~baford/packrat/查看。
这基本上是一个自上而下的递归下降解析器,其优点之一是词法分析和语义分析可以一步完成。
PEG与CFG比较,因为PEG更适合解析无上下文的语言,而CFG更适合生成无上下文的语言。答案 8 :(得分:0)
而不是将理论看作是死的,而是认为它已经变得如此实用,我们已经超越了理论。一本很好的书,考虑理论和应用之间的桥梁是Miro Samek的“Practical Statecharts in C/C++”。现在有第二版,我没看过。但我发现第一版没有任何缺陷;直到今天,我发现它是我读过的最有价值的文本之一。