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

目  录

论文总页数:24页

引言 1

1.1 课题背景 1

1.2 研究意义 1

1.3 研究方法 1

2 Scheme语言 2

2.1 发展历史与现状 2

2.2 Scheme语言介绍 2

2.3 Scheme的特点 3

相关理论基础 3

解释程序的整体结构 3

4.1 词法分析器 4

4.2 类型系统 4

4.3 循环求值器 4

4.4 虚拟的寄存器机器 5

4.5 内存管理与垃圾回收 5

解释程序的实现 6

5.1 类型系统 6

5.2 词法分析 7

5.3 表达式求值的环境模型 7

5.3.1 环境模型 7

5.3.2 环境操作 9

5.3.3过程应用的环境模型 9

5.3.4 环境模型的实现 10

5.4 尾递归 11

5.5 虚拟的寄存器机器 13

5.5.1 寄存器 14

5.5.2 存储模型 15

5.5.3 基本表操作的实现 16

5.5.4 停止并复制垃圾回收算法 17

5.5.5 虚拟的寄存器机器的实现 18

5.6 表达式求值过程 18

测试结果 19

6.1 测试尾递归 19

6.2 测试正确性与效率 20

     21

参考文献 22

     23

     24

结    论

解释程序已经实现了基本的Scheme语言特征,并可以运行普通的Scheme程序。并且也实现了一些调试方法,如显示寄存器中的对象、某内存段中的对象等等,用来调试解释程序本身。通过实现该解释程序,我对Scheme语言以及C++和其它编程语言有了更深入的了解,对解释器和编译器的相关知识有了一定的理解和体会,通过学习SICP[3]我也对程序设计思想和本质有了比较深刻的认识,同时在程序编写过程中也锻炼了我的代码编写能力和代码管理能力。

在开发过程中也碰到过不少问题和困难。一个问题是在对Scheme表达式求值过程中发现错误而抛出异常后,栈中还有残留的内容,此时会将其清空,但是这里的内容是寄存器中的值,要能继续正确的对Scheme表达式求值,就需要将这些内容恢复到寄存器中。对这个问题设计了一个很好的解决办法,就是在每一次入栈操作中都记录入栈信息,在出栈时删除相应的入栈信息,在发生异常后,就可以根据这些入栈信息将栈中的内容恢复到原来的寄存器中,以便还原状态。

另外,在最初的设计中,是没有对过程调用的参数个数进行检查的,但后来发现在其它解释器中都有对参数个数的检查,如果参数不匹配会报错。于是在后期基本内置操作实现的基础上,加入了对参数个数的检查。由于内置操作是通过模板偏特化来实现的,因此定义了另一个模板类,并使用其偏特化来定义参数个数限制,并定义了一个模板函数来进行相应操作的参数检查。这样的设计利用了模板的特性,很好的与原有系统整合到了一起。

但该解释器的实现也是有很多不足的,比如程序执行效率低、整体设计结构不太合理等等,这说明仍然是有很大的改进空间的。在以后将整个解释器结构重新设计,以运行效率为主要目的,根据即将推出的R6RS标准文档来实现,开发出一个具体实用价值的Scheme解释程序。

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

                 

打印本页 | 关闭窗口
本类最新文章
基于腾讯云的个人知识库管理系统 基于Android的酒店预定系统 基于matlab变频器控制交流电
基于微信小程序的家校联动平台管理 基于时频分析与自适应滤波技术的多 基于WxJava框架的集客微信公
| 关于我们 | 友情链接 | 毕业设计招聘 |

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