在研究自然语言时,人们发现名词、动词、介词以及它们的短语之间存在着自然的递归关系,因此引入了 上下文无关文法(CFG) 来帮助整理和理解这种关系。同时,上下文无关文法在程序设计语言的规范化及编译中有重要应用。设计人员在编写程序设计语言的编译器和解释器时,通常需要先获取该语言的文法,因此在大多数的编译器和解释器中都包含了一个 语法分析器 。与上下文无关文法相关的语言集合称为 上下文无关语言(CFL)。
在 有穷自动机 (或叫状态机) 一文中,简单介绍了自动机的原理,这是人们在面对复杂问题时为了建立数学模型而对问题进行抽象的描述。那么回归到现实问题时,这种抽象的描述又应该怎么落地生根呢?本文借助分析 Openssl 库的握手过程来探讨状态机是如何在程序中发生作用的,因此本文的重点分析状态机的工作过程,对于Openssl库中握手过程的细节不做过多深入。