- 8
- 0
- 约1.82万字
- 约 40页
- 2017-10-24 发布于湖北
- 举报
hust编译原理实验报告2
《编译原理》
院 系 计算机科学与技术
专 业 计算机科学与技术
班 级 CS1101
学 号
姓 名
指导教师 周时阳
2014 年 7月 2日目录
实验一 1
一、问题描述 1
二、数据结构及算法设计 1
1、C语言简单词法 1
2、标识符与运算符 2
三 程序实现 10
源代码 10
四、程序测试 16
截图 16
五、复杂度分析 17
实验二 17
1、问题描述 17
2、系统设计 17
2.1算符优先分析法的思想及其原理 17
2.2算符优先分析算法 19
2.3 构建算符优先关系表 23
2.4 出错处理 23
3 系统实现 24
3.1 程序流程图 24
3.2 构建算符优先关系表 24
3.3实验截图 26
4 程序实现 26
实验一
一、问题描述
选择计算机高级程序语言之一 —— C语言,运用恰当的词法分析技术线路,设计和实现其对应的词法分析器。
对C语言的词法按照正则文法或正则式→NFA→DFA→min DFA→程序设计;能够跳过程序中的注释和空白、换行符等没有意义的部分;遇到无法确认的符合能够报告错误,然后跳过这个错误,继续分解剩下的部分;分析后的结果存放到磁盘文件中。
二、数据结构及算法设计
1、C语言简单词法
(1)关键字:main int char long if else for while void
所有的关键字都是小写。在设计测试程序时所涉及的关键字应该在以上范围内才能被识别,否则将作为标识符处理。
(2)运算符和界符:: = + - * / = = = ; ( ) ++ ! !=
上面所包含的运算符与界符不是很全面,因此无法识别一些复杂的运算符,例如、||、%等。
(3)其他单词是标识符(ID)和整型常数(NUM),通过以下正规式定义:
ID=letter(letter|digit)*
NUM=digit digit*
标识符由字母和数字组成,且首字符必须为字母;这里只对整型常数进行识别,浮点数数据在识别过程中会对小数点进行报错。
(4)空格由空白、制表符和换行符组成。空格一般用来分隔ID、NUM、运算符、界符和关键字,制表符和换行符等都只是对程序起到一个可读性的作用,在词法分析中没有实际意义,因此词法分析阶段通常被忽略。
(5)注释由/**/及其内部内容组成,在词法分析阶段也对程序的分析没有实际意义,因此也要被忽略。
关键字的判定规则是先进行标识符的识别,识别到最终状态后,在关键字数组中查找,看此标识符是否为关键字,如果是则将其划为关键字一类,否则作为标识符。
因此,此正规式的主要分析在标识符ID中会详细分析,在分析完后只要通过一个strcmp函数就可以分辨出是否关键字。
2、标识符与运算符
各种单词符号对应的种别码
单词种别是语法分析需要的信息,而单词自身的值则是编译其他阶段需要的
信息。因此词法分析器的输出结果表示为:
(单词种别,单词自身的值)
单词的种别采用整数编码表示,下面给出了词法分析器的各个单词符号的
种别码。
Start:1
If:2
Then:3
Int:4
While:5
Do:6
For:7
End:8
字母:10
数字:11
*:13
/:14
+:15
-:16
::17
:20
:23
=:25
;:26
(:27
):28
!:0
2.1标识符ID:
标识符ID的正则式表示如下:
ID= letter (letter| digit)*
letter= a~z
digit= 0~9
根据以上正则式画出NFA如下图。
图 1 ID的NFA表示
下面将这个NFA转换为DFA。利用子集构造法,构造上述NFA的DFA步骤如下:
(1)首先计算?—closure(1),令0= ?—closure(1)={1},0未被标记,它现在是子集族C的唯一成员。
(2)标记0;令1= ?—closure(move(0,letter))={2,3,4,6,9},将1加入到C中,1未被标记。令2= ?—closure(move(0,digit))=Ф,不再计算。
(3)标记1;计算3= ?—closure(move(1,letter))={3,4,5,6,8,9},将3加入到C中,它未被标记。计算4= ?—closure(move(1,digit))={3,4,6,7,8,9},将4加入到C中,它未被标记。
(4)标记3;计算?—closure(move(3,letter))={3,4,5,6,8,9},即3,它
您可能关注的文档
- GMDSS英语口语评估答题卡35题.doc
- GMP---卫生管理培训.ppt
- GMP产品销售与回收.ppt
- GJC-002钢拱架加工技术交底.doc
- GMP兽药生产质量管理(设备).ppt
- GP1312-C2闸门开度仪.doc
- GPQ9C-GPQ9CA说明书正文2005.doc
- GPC基础知识指南.ppt
- GPS数据处理与精度提高方法研究.ppt
- fluent 简介.ppt
- 2025-2026学年科普版七年级下册英语Unit7 Being a Smart Shopper素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit10 Lending a Helping Hand素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit11 Rules Matter素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit12 Better Together素养测评卷(含答案).docx
- 2026年中考英语语法选择专题训练(含答案).docx
- 2026中考语文二轮学思并重,涵养君子之德论语十二章、虽有佳肴、大道之行也.docx
- 中考文言文常见文化常识梳理.docx
- 中考语文二轮:内修君子德外尽忠臣心诚子书出师表修身立德主题学习.docx
- 中考语文二轮:不一样的求学路一样的成长梦送东阳马生序劝学主题学习.docx
- 中考语文二轮:《陋室铭》《爱莲说》托物寓意主题学习.docx
最近下载
- 《有限空间作业安全技术规范》(GB 46768—2025)宣贯与培训.pptx
- 中药饮片干燥方法与质量标准.pptx
- 2025年徐州工业职业技术学院单招(语文)测试试卷王牌题库.docx VIP
- 寒假开学收心主题班会课件.ppt VIP
- 68、9-12岁 《星月夜》少儿美术课件.pptx VIP
- 人民调解实务教学ppt(修改后).pptx VIP
- 2025年WSET知识考试真题精选.docx VIP
- 提高冠状动脉介入支架术后的健康知晓率.pptx VIP
- 云南省2026年中职职教高考职业技能考试医学类模拟卷【冲刺1】.doc VIP
- 嵌入式系统设计(基于STM32F4)徐灵飞全套PPT课件.pdf
原创力文档

文档评论(0)