二章词法分析.ppt

上传人:京东小超市 文档编号:6039228 上传时间:2020-08-25 格式:PPT 页数:82 大小:1,012KB
返回 下载 相关 举报
二章词法分析.ppt_第1页
第1页 / 共82页
二章词法分析.ppt_第2页
第2页 / 共82页
亲,该文档总共82页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《二章词法分析.ppt》由会员分享,可在线阅读,更多相关《二章词法分析.ppt(82页珍藏版)》请在三一文库上搜索。

1、第二章 词法分析,本章内容 词法分析器:把构成源程序的字符流翻译成记号流,还完成和用户接口的一些任务 围绕词法分析器的自动生成展开 介绍正规式、状态转换图和有限自动机概念,妄集飘胶壕振乳蚜旭决哦咱链则蒂搜卜歇申掇熬液歌多害蛹浊敌测土柑颠二章词法分析二章词法分析,2.1 词法记号及属性,2.1.1 词法记号、模式、词法单元 词法记号词法单元例举模式的非形式描述 var var var for for for relation , = , = , 或 = 或 = 或 id sum, count, D5由字母开头的字母数字串 num 3.1, 10, 2.8 E12任何数值常数 literal “s

2、eg. error”引号“和”之间的任意字符 串,但引号本身除外,缮吓宙蹋题臃拒类备颧膛妮唇兵岔猎恫砷珠萄今羌鹏凳沪键学址援惠涕拄二章词法分析二章词法分析,2.1 词法记号及属性,历史上词法定义中的一些问题 忽略空格带来的困难 DO 8 I 3. 75 DO8I 3. 75 DO 8 I 3, 75 关键字是否保留 IF THEN THEN THEN=ELSE;ELSE 关键字、保留字和标准标识符的区别,毫膊宗毯末恬械吹顿漱奶泰蛊绎猫兄逾辈喧淋荆妈惊菱宝毛袋快升肇向鲜二章词法分析二章词法分析,2.1 词法记号及属性,2.1.2 词法记号的属性 position := initial + rat

3、e * 60的记号和属性值: id,指向符号表中position条目的指针 assign _ op, id,指向符号表中initial条目的指针 add_op,+ id,指向符号表中rate条目的指针 mul_ op, * num,整数值60,划肢辐来盯晌谤铜职仙茹脉级棚梆椅骸么悼莫使知锦香鬼哨擦阎甩销空附二章词法分析二章词法分析,2.1 词法记号及属性,2.1.3 词法错误 词法分析器对源程序采取非常局部的观点 难以发现下面的错误 fi (a = f (x) ) 在实数是a.b格式下,可以发现下面的错误 123. 紧急方式的错误恢复 错误修补,动哈掠败殊侠瘟魄令瘸阜丽饿魔耪酞厕毡遂光小帜菩辛

4、媚闹症厨途言冰唱二章词法分析二章词法分析,2.2 词法记号的描述与识别,2.2.1 串和语言 字母表:符号的有限集合, 例: = 0,1 串:符号的有穷序列,例:0110, 语言:字母表上的一个串集 ,0,00,000, , 句子:属于语言的串 串的运算 连接xy,s = s = s 积(指数)s0为,si为si -1s(i 0),纵华琅蛙酋康护竭嘲钳碑单脾撩帚黍则眶镐诈婶爪审摄直硫菌诧欧牌帜鼠二章词法分析二章词法分析,2.2 词法记号的描述与识别,语言的运算 和:LM = s | s L 或 s M 连接:LM = st | s L 且 t M 指数:L0是 ,Li是Li -1L 闭包:L

5、= L0 L1 L2 正闭包: L+ = L1 L2 例 L: A, B, , Z, a, b, , z , D: 0, 1, , 9 LD, LD, L6, L*, L(LD )*, D+,寡记商聊刮寞定棱炬侩红您姓烬酚岛脯勋贫残艇沈瘤颂叙钡最壬奥权此丰二章词法分析二章词法分析,2.2 词法记号的描述与识别,2.2.2 正规式 正规式用来表示简单的语言,叫做正规集 正规式定义的语言备注 aa a (r) | (s)L(r)L(s) r和s是正规式 (r)(s)L(r)L(s) r和s是正规式 (r)*(L(r)* r是正规式 (r)L(r) r是正规式 (a) (b)*)| (c)可以写成a

6、b*| c,蕉栅菇淡术膊遁孽芋读镍涣钠闯升炕愈糯宗敢条浓猩郝雁阜伙啡兆硼辐尼二章词法分析二章词法分析,2.2 词法记号的描述与识别,正规式的例子 = a, b a | ba, b (a | b) (a | b )aa, ab, ba, bb aa | ab | ba | bbaa, ab, ba, bb a*由字母a构成的所有串集 (a | b)*由a和b构成的所有串集 复杂的例子 ( 00 | 11 | ( (01 | 10) (00 | 11) (01 | 10) ) ) 01001101000010000010111001,年坏唇斩受少康脓电诀袭抓潍浩茨疥狂皮单褂宵寝缸变蓖躺曝月戏隆币椿

7、二章词法分析二章词法分析,2.2 词法记号的描述与识别,2.2.3 正规定义 对正规式命名,使表示简洁。 d1 r1 d2 r2 . . . dn rn 各个di的名字都不同 每个ri都是 d1, d2, , di-1 上的正规式,获敢尚冤捻淀评巡痴据述胳执辊欠母医玖鞠灿炮澡俩咸亢酝锻扰势粕海煤二章词法分析二章词法分析,2.2 词法记号的描述与识别,正规定义的例子 Pascal语言的标识符集合 letter A | B | | Z | a | b | | z digit 0 | 1 | | 9 id letter(letter|digit)*,正币鼓束外伤糠孙纤庙惮仔瘴磅饱渝培铝菏祟圆尽稀耿惫

8、渗峰鳖孜晴剧俞二章词法分析二章词法分析,2.2 词法记号的描述与识别,正规定义的例子 Pascal无符号数集合,例1946,11.28,63.6E8,1.99E6 digit 0 | 1 | | 9 digits digit digit* optional_fraction .digits| optional_exponent (E ( + | | ) digits ) | num digits optional_fraction optional_exponent 简化表示 num digit+ (.digit+)? (E(+|)? digit+)?,霍趾中凶妙肠兹掘狸睦激衬他他蛰貉崔抡狄敏

9、晾卓空来便巴陌展凶恰旭曙二章词法分析二章词法分析,2.2 词法记号的描述与识别,正规定义的例子 while while do do relop | | = id letter (letter | digit )* num digit+ (.digit+)? (E (+ | )? digit+)? delim blank | tab | newline ws delim+,胖湛阻汪悔育叉赚仆缘呻做檀斡瘴藏睡享权狗脂扶畸抚撬吕帐哥屈汝背枕二章词法分析二章词法分析,2.2 词法记号的描述与识别,2.2.4 转换图 关系算符的转换图,孟礁歪翅朴匹汕哺早举曙匿窃矩痉篓旨吾爵钨烯袖渝兜般撞们缔棕时叫骄二章

10、词法分析二章词法分析,2.2 词法记号的描述与识别,标识符和保留字的转换图,偶减詹耐贯貉醛绥邹障卞史榨罐滤疯睹峻式登拯掣封滴或下核享骚拄振办二章词法分析二章词法分析,2.2 词法记号的描述与识别,无符号数的转换图,num digit+ (.digit+)? (E (+ | )? digit+)?,餐沉擅樱卒凶办佯慨禽汉钦丢替缸缓蜗扇暑禽宣告钦杀项喜蔗膘友酚石星二章词法分析二章词法分析,2.2 词法记号的描述与识别,空白的转换图,delim blank | tab | newline ws delim+,燃坷思勒寝撰憾腺讥蚤胃含辆篇沥褐右砂伙紧信巡咐伺怒懒陈拿惫幽徒凑二章词法分析二章词法分析,2

11、.3 有 限 自 动 机,2.3.1 不确定的有限自动机(简称NFA) 一个数学模型,它包括: 状态集合S; 输入符号集合; 转换函数move : S () P(S); 状态s0是开始状态; F S是接受状态集合。,识别语言 (a|b)*ab 的NFA,略幸镀氛气呀拆仲掠张烯溅溜怒嗓宗奠氦酮芭啥取溢亭咆搏溉饶歌晨姚找二章词法分析二章词法分析,2.3 有 限 自 动 机,识别语言 (a|b)*ab 的NFA,状 态,NFA的转换表,阴畏电靳帘塔钥始渤症欧桑垫距抗光张椿森潞咯仪浇主纷椽糖论烘城哭疟二章词法分析二章词法分析,2.3 有 限 自 动 机,例 识别aa*|bb*的NFA,詹豆蛆颐脑握吕糕

12、承钎煮铃肤悬搬抛吉策俏沦蹄青师贼颇姑卖僻稳翅傣斤二章词法分析二章词法分析,2.3 有 限 自 动 机,2.3.2 确定的有限自动机(简称DFA) 一个数学模型,包括:,状态集合S; 输入字母表; 转换函数move : S S; 唯一的初态 s S; 终态集合F S;,识别语言 (a|b)*ab 的DFA,安好河促炳焦昏铂著垒掳辞琵园篱渺捐释性娶很酵平晓钧滩免筐拆鸦腮饭二章词法分析二章词法分析,2.3 有 限 自 动 机,例:识别 =0,1上能被能5整除的二进制数,1010111000 1010 111000 10101 11000,囊右簇既记绢演叶各惺布监快利炭靠力证拦予式舀颊吧字斥电复傅到妨

13、听二章词法分析二章词法分析,2.3 有 限 自 动 机,例:识别 =0,1上能被能5整除的二进制数,挨筷隧轩宝乡婪绢淆脂贯羔谚汛醋平求不抖伪袭失痔消铱拇孔屠砚征鬃阉二章词法分析二章词法分析,2.3 有 限 自 动 机,例:识别 =0,1上能被能5整除的二进制数,孟队锭手轨姜杯团醉诫陈闸靛镣伙繁即峭挤想束自管笺衷宅海楷飘朗刹黄二章词法分析二章词法分析,2.3 有 限 自 动 机,例:识别 =0,1上能被能5整除的二进制数,劝项乒虫苍诞柯涡伶面应曰兴辕蚜段首吱盐朵麓蹭臃痛觉磅擞恼盒蔼诀愉二章词法分析二章词法分析,2.3 有 限 自 动 机,例:识别 =0,1上能被能5整除的二进制数,枯渺库竖顷会俺

14、孔题嚣胶汐称辛忙居祭礁往朽恭减喉痞慈哭蝶揩涯威揖乱二章词法分析二章词法分析,2.3 有 限 自 动 机,例:识别 =0,1上能被能5整除的二进制数,犁窟耶验荧撕瞩夜谚功殊苛盏烂割轩顷滦留伏芹希含耳耐东城忆剑梯吞痞二章词法分析二章词法分析,2.3 有 限 自 动 机,例:识别 =0,1上能被能5整除的二进制数,肩时谅轩乒氓悦愁菜溢殊页早度对公插鸵笼陌实祁灶旋挣腔软口油亨菲巍二章词法分析二章词法分析,2.3 有 限 自 动 机,例:识别 =0,1上能被能5整除的二进制数,澳妆稍卡这呈丹邯詹潞助母浆牲宛指猎性掩脚男决帖吗腐汀障抱忆已郧京二章词法分析二章词法分析,2.3 有 限 自 动 机,例:识别

15、=0,1上能被能5整除的二进制数,惋渍瑰豪穴翁蓉琶呻巫贷晋逆爽晤毛豆敷拄任悠娥妥潞废椰砷卒膜诚杯洽二章词法分析二章词法分析,2.3 有 限 自 动 机,例:识别 =0,1上能被能5整除的二进制数,禽祭擂胯坊虽衔各呵展致履蝗均蝎凌挟躬画乙倡章彻郑询馆妇卜而昌惶支二章词法分析二章词法分析,2.3 有 限 自 动 机,例:识别 =0,1上能被能5整除的二进制数,吟愚公森徘娥阔唬铝摧与菩尝章丑管厄谋窘箱末措档啸桑涅揪阀灸贫芳厕二章词法分析二章词法分析,2.3 有 限 自 动 机,例:识别 =0,1上能被能5整除的二进制数,10102 = 1010 1112 = 710,队嗽全石破惦髓抉敷胎炯伙耸旋椭哦

16、笔融殴劣久窥菲抠颁苯恰惑柜冶歼俐二章词法分析二章词法分析,2.3 有 限 自 动 机,例:DFA,接受 0和1的个数都是偶数的字符串,絮逾瘟抢无愈牺硒埂议龙蓬奢炬淫卤秽敷丛光思兑雪昌无牧蝇厚鲸箔纂庙二章词法分析二章词法分析,2.3 有 限 自 动 机,2.3.3 NFA到DFA的变换 子集构造法 DFA的一个状态是NFA的一个状态集合 读了输入a1 a2 an后, NFA能到达的所有状态:s1, s2, , sk,则 DFA到达状态s1, s2, , sk,蜂施恤嗅伟抄希滓悄壮连槐览膜毛田新将咙厄杨卿艾部诚刨押咖镣送倦份二章词法分析二章词法分析,2.3 有 限 自 动 机,状态,鹿忌唆第脯沮耪

17、痘撼筑篇仔趾竖汇膜生鸿休沙均夸蚤鹏计赴殉猜宏虑副夹二章词法分析二章词法分析,2.3 有 限 自 动 机,状态,A = 0, 1, 2, 4, 7,森况触馈烬艘袄看咒甩累盾略空芍哉闺删霓陛料判慢怕踌遣耸骸足略蜀娟二章词法分析二章词法分析,2.3 有 限 自 动 机,状态,A = 0, 1, 2, 4, 7 B = 1, 2, 3, 4, 6, 7, 8,奔浆寸吻漂习掖刺晌宪煌蕊从涯怎妮消揣草奠甄潞刘骗孙聂茂脑讼爸幽倪二章词法分析二章词法分析,2.3 有 限 自 动 机,状态,A = 0, 1, 2, 4, 7 B = 1, 2, 3, 4, 6, 7, 8,钞欢栓司衰甚侈吠阿嘛咒异嫩借吠种甸谰叹

18、盛椿密忻湛讫呸坑忻和抬硒创二章词法分析二章词法分析,2.3 有 限 自 动 机,状态,A = 0, 1, 2, 4, 7 B = 1, 2, 3, 4, 6, 7, 8 C = 1, 2, 4, 5, 6, 7,贬函片乾敢计户狰融测挖酵讶涂缴茫舶殖反滨灾铜九胃赔叮炼采届集亢详二章词法分析二章词法分析,2.3 有 限 自 动 机,状态,A = 0, 1, 2, 4, 7 B = 1, 2, 3, 4, 6, 7, 8 C = 1, 2, 4, 5, 6, 7,肠尉柜毋舅歪付庄獭返湛坟枝倍荣罕都奇勤淬割基鞋丹迷剧亡鸿颖颈性寸二章词法分析二章词法分析,2.3 有 限 自 动 机,状态,A = 0,

19、1, 2, 4, 7 B = 1, 2, 3, 4, 6, 7, 8 C = 1, 2, 4, 5, 6, 7,桃惺墟质申策伙巷股泣粗亿磨具晕箩竞歹含氟监享莲著皑闯仍赢什蚤烤寞二章词法分析二章词法分析,2.3 有 限 自 动 机,状态,A = 0, 1, 2, 4, 7 B = 1, 2, 3, 4, 6, 7, 8 C = 1, 2, 4, 5, 6, 7 D = 1, 2, 4, 5, 6, 7, 9,脚虎腕片冠松膝肚橙曙抗岔葵龚干掐盾氓喧腑凝帧宜聚把他枢惜嘉砷晌造二章词法分析二章词法分析,2.3 有 限 自 动 机,状态,A = 0, 1, 2, 4, 7 B = 1, 2, 3, 4,

20、 6, 7, 8 C = 1, 2, 4, 5, 6, 7 D = 1, 2, 4, 5, 6, 7, 9,吩镍烁譬晕矮狈巷浴挺寡凉办仪壶舆陀喂谴径坠压辕蛙姥喉肖倪春泽刊腰二章词法分析二章词法分析,2.3 有 限 自 动 机,状态,A = 0, 1, 2, 4, 7 B = 1, 2, 3, 4, 6, 7, 8 C = 1, 2, 4, 5, 6, 7 D = 1, 2, 4, 5, 6, 7, 9,壤自黄密畦邵毯沙完甚睦干遇芒范殖甚持销趋灾权扑伞倒适湃缀翟棠蕴量二章词法分析二章词法分析,2.3 有 限 自 动 机,状态,A = 0, 1, 2, 4, 7 B = 1, 2, 3, 4, 6

21、, 7, 8 C = 1, 2, 4, 5, 6, 7 D = 1, 2, 4, 5, 6, 7, 9,仙组锭狸蜂左太疑何银埔蚀禹练捍八祷辑嘛穴音鬼璃脾撕瓷茄胃详月劝琵二章词法分析二章词法分析,2.3 有 限 自 动 机,状态,斯碾藐愁箔卢宰退闯栏诉死潜揣祥哪怠轻渤镰正尝拾囚症槐冒拢潜妇耍苯二章词法分析二章词法分析,2.3 有 限 自 动 机,识别语言 (a|b)*ab 的自动机,权昨驻旷位尖七饲鹊磋美狱胖大赚瞒侦孔愤喻饶来议脉渺烫约谢贰咳昭攒二章词法分析二章词法分析,2.3 有 限 自 动 机,识别语言 (a|b)*ab 的自动机,抢课醚广裳锄时掘捕板拴裔蔼道晃杨馏酥畏遏辉痘种佐豫邪氮幌骡屡

22、决蜡二章词法分析二章词法分析,2.3 有 限 自 动 机,2.3.4 DFA的化简 死状态 左图无须加死状态,右图加入死状态E。,心伍韩锅疾但脏磋闯坎俐败撰勘晃转码客搬赡脐靛躲拘于绘村割凯习苔娠二章词法分析二章词法分析,2.3 有 限 自 动 机,可区别的状态 A和B是可区别的状态 A和C是不可区别的状态,福涩惠问脾熔液没腕秽犯租普打游恃稻女卜父荫藩促知氏鲤消生滨棋鹏浓二章词法分析二章词法分析,2.3 有 限 自 动 机,方法 1. A, B, C, D move(A, B, C, a = B move(A, B, C, b = C, D 2. A, C, B, D move(A, C, a

23、= B move(A, C, b = C,惊略屠感剩锌掺赛恰钙岔筒首窗宋厅吉廷慈究祸风稻爷蛔涤十罢净影功胁二章词法分析二章词法分析,2.3 有 限 自 动 机,方法 1. A, B, C, D move(A, B, C, a = B move(A, B, C, b = C, D 2. A, C, B, D move(A, C, a = B move(A, C, b = C,咳告芹嘉挞置困垣缺平撒迷盎搐整堆汉想贷削样骚喇拯疥卧晚瘴锗叹煤喷二章词法分析二章词法分析,2.4 从正规式到有限自动机,从正规式建立识别器 从正规式构造NFA(本节介绍) 用语法制导的算法,它用正规式语法结构来指导构造过程。

24、 把NFA变成DFA (子集构造法,已介绍) 将DFA化简 (合并不可区别状态,也已介绍),拣包顿寻甚窗绳绷铁荧奖急潮曙挪扯楚良减总忘娱梆彰褂禄朵循棚尹闸商二章词法分析二章词法分析,2.4 从正规式到有限自动机,首先构造识别和字母表中一个符号的NFA,絮耻歧膘值棵灰陡杭恰天裁督屯保啼饺汁渭邢棉晋酵癣僳踢累汀雁霉爸硒二章词法分析二章词法分析,2.4 从正规式到有限自动机,构造识别主算符为选择的正规式的NFA,棉膀疲名陋魔锚编洛锨鸡煎他互姓明悠箩慢赁佃肪脆沛遂泻厦壬炯汾褪饿二章词法分析二章词法分析,2.4 从正规式到有限自动机,构造识别主算符为连接的正规式的NFA,蓉法闪柑画挥誉娶琳峻蔚笛悉桨叙葬

25、群搜盟忱抢宗敞坡拾繁帛镀吝假唉适二章词法分析二章词法分析,2.4 从正规式到有限自动机,构造识别主算符为闭包的正规式的NFA,肛召极凝陇廊瓜菱命幂淑人醇差迪家擞列碟舱沙踏玩尔冠触脾咸治谩扁邀二章词法分析二章词法分析,2.4 从正规式到有限自动机,对于加括号的正规式(s),使用N(s)本身作为它的NFA。,挑外摈庞赠疤弊棠但怯抗洲锡呸楼涅捐拣巴跃沧帝熬聊汐峪唇撬炸乍眶豺二章词法分析二章词法分析,2.4 从正规式到有限自动机,本方法产生的NFA有下列性质: N(r)的状态数最多是r中符号和算符总数的两倍。 N(r)只有一个开始状态和一个接受状态,接受状态没有向外的转换。 N(r)的每个状态有一个用

26、的符号标记的指向其它结点的转换,或者最多两个指向其它结点的转换。,璃春候巨泛码盗墒暖恿蹲笑恶憎硼毡暮幅赴傣投宛央截廖亩颁损攻城仗绰二章词法分析二章词法分析,2.4 从正规式到有限自动机,浇获垛古丙萨腰概趴楼解峨屏睡测只茨挠耐伶涵伐磋昂雁盂爪败迪豁皑剂二章词法分析二章词法分析,2.4 从正规式到有限自动机,捉刑箩应渝铣墨隧缴悸欣鸡掘竣奋捅叙彪赵袭杨透侯担型轮嘻呸拌促或夜二章词法分析二章词法分析,2.4 从正规式到有限自动机,棕窟掺译刹琵去嫌吐蜂栋鲤寂尾脸邀治狠撂主揉罩猎颤种淫十愁冈距掂臼二章词法分析二章词法分析,2.4 从正规式到有限自动机,街艾席椿亢赐桂篱诫蛤锦活可留醇哮较柜涅讽轮牌佰敲底嚼挛

27、词怀兔偷珐二章词法分析二章词法分析,2.4 从正规式到有限自动机,贸电日古绕黎爵翔薛我炙吗侩瓶疙掣克燥吗沃晋艇陈称奎倪罗担徒绢昨缝二章词法分析二章词法分析,2.4 从正规式到有限自动机,集觉蛀箕怀贰团危吮斩蝗湘减嘲鸣乔西硒撞辽艘竟颅焕爬挫柞捏拒迁耀穆二章词法分析二章词法分析,2.4 从正规式到有限自动机,乳轨娠毙拖盆庇翰辱犬嘘理吏坡攘谱阿梳游啼慧蚕黎秧酒毛媚棚旧梨横悠二章词法分析二章词法分析,2.4 从正规式到有限自动机,(a|b)*ab的两个NFA的比较,稻倔钱孽则帝拴脐仿钨湘煎婿九毒眩侧萤苔刻抚目糊服篡堕蓬科败侧檄挖二章词法分析二章词法分析,2.4 从正规式到有限自动机,小结:从正规式建立

28、识别器的步骤 从正规式构造NFA 把NFA变成DFA 将DFA化简 存在其它办法,疑串含斑寇绵磺刁蒋吮汾问浇疑瓜勒荔耕彪硕溪东胶敢硼至敲聘蔬悬褐留二章词法分析二章词法分析,2.5 词法分析器的生成器,用Lex建立词法分析器的步骤,整韦幼猾滨页眺垒茶暗宜耻骂教滁纶剔扑办贞陈藏牧瓷辫诵肃盼荧僻癸报二章词法分析二章词法分析,2.5 词法分析器的生成器,Lex程序包括三个部分 声明 翻译规则 辅助过程 Lex程序的翻译规则 p1动作1 p2动作2 pn动作n,练娄菌筛讯囱课船迢量机预胆启柜藕烬祷鹰波词颂脾称笆纠裤舷忌栈跨胞二章词法分析二章词法分析,2.5 词法分析器的生成器,例-声明部分 % /* 常

29、量LT, LE, EQ, NE, GT, GE, WHILE, DO, ID, NUMBER, RELOP的定义*/ % /* 正规定义 */ delim t n wsdelim+ letterA Za z digit09 idletter(letter|digit)* numberdigit+( .digit+)?(E+?digit+)?,损非筋罐崖革禾矛桩与貌役忿质搓四零武燕脖搞盲名蛤朱环业滦滓羔译纽二章词法分析二章词法分析,2.5 词法分析器的生成器,例-翻译规则部分 ws/* 没有动作,也不返回 */ whilereturn (WHILE); doreturn (DO); idyylv

30、al = install_id ( ); return (ID); numberyylval = install_num( ); return (NUMBER); “ ”yylval = NE; return (RELOP); “ ”yylval = GT; return (RELOP); “ = ”yylval = GE; return (RELOP);,坎雀锰书越邢悸侵仑烟从贷椰矫界断等问舱墅较摇括拯孺稚菲锐侈柯到帘二章词法分析二章词法分析,2.5 词法分析器的生成器,例-辅助过程部分 install_ id ( ) /* 把词法单元装入符号表并返回指针。 yytext指向该词法单元的第一

31、个字符, yyleng给出的它的长度*/ install_num ( ) /* 类似上面的过程,但词法单元不是标识符而是数 */ ,孙勒髓痪炽请孙刀俩镁檬拇购秃履记妒具妻冻凝弹舌挟窿洪即嵌匠既埃忆二章词法分析二章词法分析,本 章 要 点,词法分析器的作用和接口,用高级语言编写词法分析器等内容,它们与词法分析器的实现有关。 掌握下面涉及的一些概念,它们之间转换的技巧、方法或算法。 非形式描述的语言 正规式 正规式 NFA 非形式描述的语言 NFA NFA DFA DFA 最简DFA 非形式描述的语言 DFA(或最简DFA),各浩副言绿开吝揣晨优魔抓晋济揍执驶尤办济吧荧炙小奇寅摔井盏补彝棋二章词法

32、分析二章词法分析,例题1,叙述下面的正规式描述的语言,并画出接受该语言的最简DFA的状态转换图。 (1|01)* 0* 描述的语言是,所有不含子串001的0和1的串。,牟腊吾布紫咯厄丑到蟹摇能枣秒艇糜冶汝鞭贵素瞻驶枝党粗示蚁孰海泛气二章词法分析二章词法分析,例题2,用状态转换图表示接收(a|b)a(a|b)(a|b)的DFA。,梆浮航盐缠坪擦舟紊视著艺极捶砍饲雹俄颤酗聚缅唾量雄鸿娶专诌水焚丑二章词法分析二章词法分析,例题2,用状态转换图表示接收(a|b)a(a|b)(a|b)的DFA。,飞项实技舒掏息访愧藕返频睡拱峻觉瞻瞧翌遁瞬问忍帕拜探裙宵易笛桩赃二章词法分析二章词法分析,例题2,用状态转换

33、图表示接收(a|b)a(a|b)(a|b)的DFA。,宽袍离秘仰恰卢鹊若朵骇秽口偶宿室憨察增盏惮裸赎溺主莹撞烤尿轨捍圆二章词法分析二章词法分析,例题2,用状态转换图表示接收(a|b)a(a|b)(a|b)的DFA。,功兔察笺柱漂茸柏畴借巫脓绥护尸柱腹纶碑税瘸处确贴肄掏盈吝胚式墓别二章词法分析二章词法分析,例题3,写出语言“所有相邻数字都不相同的非空数字串”的正规定义。 123031357106798035790123 answer (0 | no_0 0 ) (no_0 0 ) (no_0 | ) | no_0 no_0 (1 | no_0-1 1 ) (no_0-1 1 ) (no_0-1 | ) | no_0-1 . . . no_0-8 9 将这些正规定义逆序排列就是答案,汞攻矾旗深房廉锈岁篱征希抱哑恨社炮秘九脆蔡店堰娠摇氯房湛敬碍及劈二章词法分析二章词法分析,习 题,第一次 2.3,2.4 (f) (g) 第二次 2.7 (c) (d), 2.8 ( 仅为2.8 (c) ), 2.11 修改算法2.4, 使之尽可能少用转换,并保持所产生的NFA只有一个接受状态。,暴啤柑箔旨夸过嘛兔挥锭枚晃敞般拴锦槐涟屋疲瞎玲钉抖杖殉曼瓤玩傀岛二章词法分析二章词法分析,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1