- 30
- 0
- 约1万字
- 约 30页
- 2019-03-17 发布于湖北
- 举报
编译原理上机实习报告
实验一
题目编号A003:C-Minus语言的编译实验
实验目的
要求用C或C++语言描述及上机调试,实现一个 C-Minus 小编译程序(包括词法分析,语法分析等重要子程序),使学生将理论与实际应用结合起来,受到软件设计等开发过程的全面训练,从而提高学生软件开发的能力。
要求:
(1)设计词法分析器
设计各单词的状态转换图,并为不同的单词设计种别码。将词法分析器设计成供语法分析器调用的子程序。功能包括:
a. 具备预处理功能。将不翻译的注释等符号先滤掉,只保留要翻译的符号串,即要求设计一个供词法分析调用的预处理子程序;
b. 能够拼出语言中的各个单词;
c. 返回(种别码, 属性值)。
(2)C-惯用的词法
1、语言的关键字:else if int return void while
2、专用符号:+ - * / = = == != = ; , ( ) [ ] { } /* */
3、其他标记是ID和NUM,通过下列正则表达式定义:
ID = letter letter*
NUM = digit digit*
letter = a|..|z|A|..|Z
digit = 0|..|9
4、空格由空白、换行符和制表符组成。空格通常被忽略,除了它必须分开ID、NUM关键字。
5. 注释用通常的C语言符号/ * . . . * /围起来。注释可以放在任何空白出现的位置(即注释不能放在标记内)上,且可以超过一行。注释不能嵌套。
我们小组具体分工如下:
191142第三组?组长:马烨斌 正则表达式转NFA:张念?高坤 NFA转DFA:彭玉?阿米尔江·阿不来提 DFA最小化:张雅娴?袁野 DFA模拟、架构界面:马烨斌
需求分析
:输入一个正则表达式,进行词法分析,识别输入符号串,根据相关规则构造NFA。
:在NFA的基础上,使用子集法构造DFA。
:使用状态划分法,将DFA最小化。
:搭建一个可视化界面,将整个过程进行可视化输出。
设计
2.1总体设计
2.11设计思想:根据实验需求,需要写出至少四个模块,
DFA最小化NFA到DFN正则式到NFA
DFA最小化
NFA到DFN
正则式到NFA
可视化平台
可视化平台
综上所述:为了可视化的实现和方便总体框架连贯性要求,我们采用JAVA语言编写应用程序,搭建可视化平台
2.12数据结构
由于输入串长度和NFA、DFA中状态数的不确定性,所以就用向量来存储,同时,由于不实现了解转换进行的维数个具体过程,所以得用多维向量保证存储的正确性。
1. 对正则表达式的处理:
private String strProduction;//正则表达式首先存入一个String类型的变量private Vector[] vecGrammar; //对输入字符串处理,去除无用信息后存入初始化向量中,作为构造NFA的基础
* vecGrammar vector来定义四元组的文法
* vecGrammar[0]非终极符号
* vecGrammar[1]表示终极符号
* vecGrammar[2]表示产生式
* vecGrammar[3]表示开始符号
2.生成NFA的储存结构
private Vector[] vecNFA; //NFA储存向量
private Vector[][] vecStateConvertTable;//状态转换表存储向量矩阵
* 文法 G=(V,T,P,S)
* 生成状态集合,终态使用Z
* NFAM=(k,∑,f,p,Z) k状态集合,∑字母表,f转换函数,p开始状态,Z终结状态集
3.NFA转DFA存储结构
private Vector[] vecDFA,vecOldDFA; //DFA存储向量
Private Vector[][] vecDFAStateConvertTable;//NFA状态转化表向量
Private Vector[][] vecOldDFAStateConvertTable;//old 保存转换前的DFA
* create DFA 对产生的NFA处理,生成DFA
* NFA N=(k,∑,f,p,Z) k状态集合,∑字母表,f转换函数,p开始状态,Z终结状态集
* DFA M=(S,∑,D,B,E)
* S为vector类型的集合状态的集合,它是K的子集构成的集合,字
您可能关注的文档
最近下载
- 中华人民共和国职业分类大典(2015新版)解读.docx VIP
- XX生物质热电项目安全设施设计专篇.doc VIP
- 广东省珠海市香洲区2024-2025学年三年级上册期末考试数学试卷(含答案).docx VIP
- 云南省红河州、文山州2024-2025学年高一上学期月期末考试历史试题(含答案).pdf VIP
- 生锈之8D报告(案例).xls VIP
- (2025年)统战部遴选公务员面试真题和专业题3问及答案.docx VIP
- 口腔市场专员培训.pptx VIP
- 如何制作西红柿炖牛腩,比饭店那酸酸的好吃太多啦!.pdf VIP
- 部编版二年级上册语文第11课《葡萄沟》教学课件.ppt VIP
- 部编版二年级上册语文《葡萄沟》PPT教学课件.pptx VIP
原创力文档

文档评论(0)