用c语言采用模拟dfa算法编写一个扫描器.docx

用C语言米用模拟DFA算法编写一个扫描器 /* 第一章:相关知识 DFA定义:一个确定的有穷自动机( DFA) M是一个五元组: M= ( K,厶f, S, Z)其中 0K是一个有穷集,它的每个元素称为一个状态; 工是一个有穷字母表,它的每个元素称为一个输入符号,所以也称 工为输入符号字母 表; f是转换函数,是 KX》tK的映射,即,如 f (ki, a) =kj, (ki € K, kj € K)就意味着,当前状态为 ki,输入符为a时,将转换为下一个状态 kj, 我们把kj称作ki的一个后继状态; S € K是唯一的一个初态; Z??K是一个终态集,终态也称可接受状态或结束状态。 第二章:题目 用C语言米用模拟DFA算法编写一个扫描器(词法分析器)用来识别: 由任意个a或b开始后接aa再自加或自减1的字符串,即正规式r=(a|b)*aa(+|-)1描述的语 言 L (r) 该词法分析器的任务: 滤掉源程序中的无用成分,如空格; 识别正规式r=(a|b)*aa(+|-)1描述的字符串。 从键盘读入或打开文件读入字符串,词法分析器读入字符 ywe串后扫描源字符串, 若发现符合符合正规式 r描述的字符串时,输出 “ye或”可接受”或可识别” 否则输出“ n或不可识别”。 第三章:分析 第一节? K有10个状态,也就是10个元素: 0,也就是开始状态a,转到状态 s1b,转到状态 s

文档评论(0)

1亿VIP精品文档

相关文档