编译原理
ynd_sg
种一棵树最好的时间是十年前,其次是现在
展开
-
乔姆斯基4种文法的判定和区别
乔姆斯基把方法分成四种类型,即0型、1型、2型和3型,源于《编译原理》,但《软件设计师》教程对于该分类的介绍很简略,也很抽象,根据网上各类博客对其的解释和教程的说法,大致总结如下:首先要阐明的是,一般的文法至少都是0型文法,也就是说0型文法限制最少,二1,2,3型文法都是在0型文法基础上加以限制形成。若将0型文法比作基类的话,1,2,3,4就是不断继承并加以限制得到的子类。①0型文法转载 2017-12-09 17:19:33 · 8254 阅读 · 2 评论 -
编译原理——短语、直接短语、句柄
首先来看一棵树:为了方便,将重复的a和b从左往右编号分别为a1,b1,b2,a2,a31. 判断短语 1)从深度为1开始,找出父节点,该图为S,它的短语为所有其子节点(无法继续产生叶子节点的节点)的集合,此处即为a1b1b2a2a3; 2)从最上层刚才找过的S往下找下一个父节点,即深度为2的,有A,B,S,依照1)中的做法,它们的短语分别为:a1,b1b2,a2a3; 3)往下到深度为3,包含原创 2017-12-09 20:24:59 · 16069 阅读 · 4 评论 -
FIRST集、FOLLOW集 和 SELECT集
FIRST集、FOLLOW集 和 SELECT集一、FIRST集FIRST(A)为A的开始符或者首符号集。1、定义:设G=(VT,VN,S,P)是上下文无关文法 ,FIRST(α)={a|α能推导出aβ,a∈VT,α,β∈V*} 特别的,若α能推导出ε,则规定ε∈FIRST(α).2、根据定义求解FIRST集(对每一文法符转载 2017-12-12 19:09:42 · 547 阅读 · 0 评论 -
正则表达式的写法
遵循规则如下:1. 稍微复杂的字符,如标点符号和空格、制表符,需要用反斜杠(\)打头,\n表示新行,\r表示回车,\t制表符,\s表示空格;2. 匹配规则如下: [a-z] //匹配所有的小写字母 [A-Z] //匹配所有的大写字母 [a-zA-Z] //匹配所有的字母 [0-9] //匹配所有的数字 [0-9\.\-] //匹配所有的数字,句号和减号 [ \f\r\t...原创 2018-03-22 15:16:57 · 7116 阅读 · 0 评论 -
正则表达式的写法(全面)
一、校验数字的表达式1 数字:^[0-9]*$2 n位的数字:^\d{n}$3 至少n位的数字:^\d{n,}$4 m-n位的数字:^\d{m,n}$5 零和非零开头的数字:^(0|[1-9][0-9]*)$6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$8 正数、负数、和小...转载 2018-04-07 15:02:33 · 22707 阅读 · 0 评论 -
正则表达式——exec和match方法
exec和match,前者是用于检索符合regexp的字符串,后者是在字符串内检索指定的值,同样返回字符串。在用法上:match:可match字符串和正则stringObject.match(searchvalue)stringObject.match(regexp)exec:接受参数为字符串RegExpObject.exec(string)exec的用法和ma...原创 2019-02-03 18:05:13 · 797 阅读 · 0 评论