- 1、本文档共44页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理课程设计-C-词法器及语法分析器实现
编译原理课程设计报告
课题名称: C-词法扫描器及语法分析器实现
提交文档学生姓名:
提交文档学生学号:
同组 成 员 名 单: 无
指导 教 师 姓 名: 金军
指导教师评阅成绩:
指导教师评阅意见:
.
.
提交报告时间:2014年 6月 xx日
目录
目录 2
1 课程设计目标 2
2 分析与设计 4
2.1 程序结构 4
3 程序代码实现 9
3.1 代码结构 9
3.2.1 globals.h 9
3.2.2 scan.c 11
3.2.3 parser.c 18
3.4 util.c 30
3.5 test.cpp 36
4 测试结果 38
4.1.给出标准测试程序的词法和语法分析结果: 38
4.1.1 词法分析结果 38
4.1.2 语法分析结果 41
4.2.修改代码后的结果: 42
4.2.1修改 42
5. 本课程设计我的独创工作 44
6.总结 44
1 课程设计目标
学生在学习《编译原理》课程过程中,结合各章节的构造编译程序的基本理论,要求用C或C++语言描述及上机调试,实现一个 C-Minus 小编译程序(包括词法分析,语法分析等重要子程序),使学生将理论与实际应用结合起来,受到软件设计等开发过程的全面训练,从而提高学生软件开发的能力。
要求:
(1)设计词法分析器
设计各单词的状态转换图,并为不同的单词设计种别码。将词法分析器设计成供语法分析器调用的子程序。功能包括:
a. 具备预处理功能。将不翻译的注释等符号先滤掉,只保留要翻译的符号串,即要求设计一个供词法分析调用的预处理子程序;
b. 能够拼出语言中的各个单词;
c. 返回(种别码, 属性值)。
(2)语法分析
要求用学习过的自底向上或自顶向下的分析方法等,实现对表达式、各种说明语句、控制语句进行语法分析。若语法正确,则用语法制导翻译法进行语义翻译;生成并打印出语法树;若语法错误,要求指出出错性质和出错位置(行号)。
2 分析与设计
2.1 程序结构
本程序采用C++语言以面向对象的思想编写,程序分为两部分:词法分析(Scanner)和语法分析(Parser)。
扫描程序执行词法分析,并将字符序列收集到token中,并将每一行的Token打印出来。
实现方法:Scanner:手工实现
Parser:递归下降
系统总图:
source code Token Syntax Tree
程序流程:
在程序中,词法分析获取所有Token,并将获取的Token存储在scanner对象的tokenString 中。然后Parser类的语法分析程序就根据tokenString中的Token进行语法 分析,生成语法树,最后打印语法树。同时,这也是程序的流程。
扫描器:
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语言符号/ * . . . * /围起来。注释可以放在任何空白出现的位置(即注释不能放在标记内)上,且可以超过一行。注释不能嵌套。
DFA图如下:
初始状态设置为START,当需要得到下一个token时,取得此token的第一个字符,并且按照DFA与对此字符的类型的分析,转换状态。重复此步骤,直到DONE为止,输出token类型。
参考课本中所给的TINY扫描程序的DFA,C-的DFA不同之处在于注释以及(= =,! = , =, =)的处理:
您可能关注的文档
- 箱体压盖铸件铸造工艺设计.doc
- 管理者的心态培养与潜能激发.doc
- 管理科学与工程介绍与前沿清华大学.ppt
- 篮球专项评分表格-高考田径专项评分标准.doc
- 篮球比赛计时计分实时时钟系统.doc
- 篮球竞赛的记录台工作与 编排名次排列.ppt
- 粉末静电喷涂油漆及热镀锌和冷镀锌.doc
- 粉末冶金偏心轮模具设计论文.doc
- 粗骨料、细骨料.doc
- 粉红丝带.ppt.ppt
- 【课件】大洲和大洋(第1课时)(课件)2024-2025学年七年级地理上册(人教版2024).pptx
- 【课件】大洲和大洋+课件-2024-2025学年七年级地理上学期人教版(2024).pptx
- 【课件】化学实验与科学探究(第2课时)课件---2024-2025学年九年级化学人教版(2024)上册.pptx
- 【课件】有理数的乘法(1)——乘法法则+课件人教版七年级数学上册.pptx
- 【教案】地形图的判读+教学设计+-2024-2025学年人教版七年级地理上册+.docx
- 【教案】地图的选择和应用+教学设计+-2024-2025学年七年级地理上册人教版.docx
- 【课件】两栖动物和爬行动物课件2024-2025学年人教版生物八年级上册.pptx
- 【课件】动物细胞课件人教版生物七年级上册.pptx
- 试用期工作计划范文7篇.pdf
- 部编人教版五年级上册道德与法治第四单元骄人祖先灿烂文化教案.pdf
文档评论(0)