设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计
 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>毕设资料 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopin QQ:2922748026   
基于高级语言源程序格式处理工具(C语言) 任务书
文章来源:www.biyezuopin.vip   发布者:毕业作品网站  

1.设计内容

在计算机科学中,抽象语法树(Abstract Syntax Tree 或者缩写为 AST), 是将源代码的语法结构的用树的形式表示,树上的每个结点都表示源程序代码中的一种语法成分。抽象语法树作为程序的一种中间表示形式,程序分析等诸多领域有广泛的应用。利用抽象语法树可以方便地实现多种源程序处理工具,比如源程序浏览器、智能编辑器、语言翻译器等。首先需要采用形式化的方式,使用巴克斯(BNF)范式定义高级语言的词法规则(字符组成单词的规则)、语法规单词组成语句、程序等的规则。再利用形式语言自动机的的原理,对源程序的文件进行词法分析,识别出所有单词;使用编译技术中的递归下降语法分析法,分析源程序的语法结构,并生成抽象语法树,最后可由抽象语法树生成格式化的源程序。

 

 

2.设计要求

1)语言定义

选定 C 语言的一个子集,要求包含:

1)基本数据类型的变量、常量,以及数组。不包含指针、结构,枚举等。

2) 双目算术运算符+-*/%,关系运算符、逻辑与&&、逻辑或||、赋值运算符。不包含逗号运算符、位运算符、各种单目运算符等等。

3)函数定义、声明与调用。

4)表达式语句、复合语句、if 语句的 2 种形式、while 语句、for 语句,

return 语句、break 语句、continue 语句、外部变量说明语句、局部变量说明语句。

5)编译预处理(宏定义,文件包含)

6)注释(块注释与行注释)

2)单词识别

设计 DFA 的状态转换图(参见实验指导),实验时给出 DFA,并解释如何在状态迁移中完成单词识别(每个单词都有一个种类编号和单词的字符串 2 个特征值),最终生成单词识别(词法分析)子程序。


 

(注:含后缀常量,以类型不同作为划分标准种类编码值,例如 123 类型为

int123L 类型为 long,单词识别时,种类编码应该不同;但 0x123  123 类型都是 int,种类编码应该相同。)

 

3)语法结构分析    1)外部变量的声明;

2)函数声明与定义;

3)局部变量的声明;

4)语句及表达式;

5)生成 1)4)(包含编译预处理和注释)的抽象语法树并显示。

4)按缩进编排生成源程序文件。

 

3. 参考文献

[1] 王生原,董渊,张素琴,吕映芝等. 编译原理 3 版). 北京:清华大学出版社. 4

[2] 严蔚敏等. 数据结构(C 语言版). 清华大学出版社

 

  全套毕业设计论文现成成品资料请咨询微信号:biyezuopin QQ:2922748026     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
本类最新文章
移动支付系统的安全性和性能优化 移动支付系统的安全性和性能优化 图像风格迁移软件的设计与实现 中
西安财经大学毕业论文撰写规范 湘西新建110KV变电工程初步设 小型低速实验风洞设计 开题报告
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopin QQ:2922748026  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!