摘要:
TKinter教程 窗口 TKinter是一个编写图形用户界面程序的标准包,因此相比Pygame我们不需要安装它。它的功能就是添加一些按钮、复选框等组件。 window = TK() window.title("刘峰的TK教程") window.mainloop() mainloop函数 会让我们创 阅读全文
摘要:
2型文法的处理装置——下推自动机(PDA) 正则文法处理不了括号对,但是上下文无关文法可以表示出来。上下文无关文法是强于正则文法的。下推自动机的能力是强于有限自动机的 下推自动机相对于有限自动机 它就是多了一个 栈 。其他都一样(输入串,状态) 状态机(PDA)在对输入串做读入操作的同时,栈顶能够同 阅读全文
摘要:
左递归消除算法 阅读全文
摘要:
上下文无关文法(context free grammar) 语法分析的数学基础。 正则语言不能描述所有的语言,因此引入上下文无关文法(注意它也不能描述所有的语言,只是相对正则语言,描述范围增大) 它的功能比RE和DFA要强许多,可以描述句子的结构!!! 对于嵌套结构,比如程序中的括号非常有用,上下文 阅读全文
摘要:
词法分析 3型文法与我们前面讲的正则表达式、自动机家族(DFA、NFA、e-NFA)都是等价的。是描述正则语言的不同角度 3型文法(正规文法)从格式上有其特点: \(A->\alpha B\) 或者 \(A -> \alpha\) 其中$\alpha$是终结符构成的字符串。 2型文法(上下文无关文法 阅读全文
摘要:
DFA的最小化 前面我们讲过NFA通过确定化能够得到DFA,现在我们看能不能让已经得到的DFA的状态数能不能再继续变小(minimise).其实也就是对优化再优化。 我们从NFA得到DFA的过程中有使用子集构造法。但是子集构造法的的状态数还是过多,达$2^n$ 个。现在我们的目的就是进一步减少状态数 阅读全文
摘要:
非正则语言 NFA、\(\varepsilon-NFA\) 面向人构造系统 DFA面向机器构造系统 自动机理论非常完美!! 自动机的表述有纯数学形式的五元组形式(用来科学定义以及证明)、状态转移图(用来直观理解,也是一种数学工具)、状态转移表(编程用,用来定义数据结构比较好,面向计算机存储) 乔姆斯 阅读全文
摘要:
正则表达式和正则语言 DFA、NFA、\(\varepsilon\)-NFA隐含的处理的语言就是,正则语言。 有的人知道自动机,有的人不知道自动机。这些不知道自动机的科学家从算术运算或者数学的角度定义了语言。用的是表达式法。 还有一些人定义语言用的是文法 不同的流派 就是说定义语言有许多流派,有自动 阅读全文
摘要:
DFA 、NFA、 \(\varepsilon-NFA\) 的等价性 这三种自动机定义的语言是同一种语言,都是正规语言 DFA定义的语言可以被NFA接受;NFA定义的语言可以被DFA接受 每一个NFA都能转化为等价的DFA 每个DFA都是NFA的特例 如何将一个NFA转化为DFA 观察:NFA中每一 阅读全文
摘要:
正则语言 如果某个语言能被DFA识别,那么它就是正则的 例题1: 构造一个字母表为{0,1}的DFA,使其接受所有最多含有三个1的串。 例题2: 构造一个DFA,使其能够定义如下语言: L={010,1} \(\Sigma=\{0,1\}\) 处理不了的话,可以引入一个特殊状态——死状态Qdie 阅读全文