finite automata有什么用?以及我们在计算理论中研究的所有概念。我还没见过他们的用途。
答案 0 :(得分:25)
它们是计算机科学和编程中广泛使用的概念的理论基础,理解它们有助于您更好地理解如何使用它们(以及它们的极限)。你应该遇到的三个基本问题是:按照权力的增加顺序:
了解这些不同计算机制的理论和局限性,使您能够更好地理解问题和程序,并更深入地思考编程。
大约一年前,在一个自由编码交换网站上发布了一份工作请求,主要是要求一个解决停机问题的程序。有几个人回应了提议,称他们“理解要求”并且可以“立即开始”。编写满足要求的程序是不可能的。理解计算理论使您不会成为那个在公开场合表明他真的不懂计算的投标人(并且在宣布理解和提出要约之前没有彻底调查问题)。
答案 1 :(得分:4)
有限自动机对于通信协议和匹配正则表达式的字符串非常有用。
答案 2 :(得分:2)
自动机用于硬件和软件应用程序。请阅读此处http://en.wikipedia.org/wiki/Finite-state_machine#Implementation
的实施部分还有一种基于Automata的编程概念。请查看此http://en.wikipedia.org/wiki/Automata-based_programming
欢呼声
答案 3 :(得分:2)
有限自动机是例如用于解析正式语言。这意味着有限自动机在编译和解释器技术的创建中非常有用。
Historicaly,有限状态机显示很多问题都可以通过一个非常简单的自动化来解决。
答案 4 :(得分:1)
尝试参加编译器课程。您很可能使用有限状态自动机生成编译器或解释器来实现递归下降解析器。
答案 5 :(得分:1)
每个GUI,每个工作流程都可以视为有限自动机。将每个页面视为状态,并由于某些事件而发生转换。在满足一系列条件之前,您可能无法进入某个页面或工作流程的下一个阶段。
答案 6 :(得分:1)
例如,管理具有已定义生命周期的某些对象的状态。 例如:书店的订单。 订单可以具有以下状态: -ordered -payed -运输 完成度的数
有限自动机的程序知道一个状态如何被其他状态改变。
答案 7 :(得分:1)
有限自动机是一种状态机(SM)。通常,SM用于解析formal languages。
您可以使用许多实体作为正式语言,而不仅仅是字符。
常规语言是一种形式语言。 有一些理论表明,什么类型的SM更好地解析常规语言: http://en.wikipedia.org/wiki/Regular_language