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

《编译原理》实验与课程设计任务书

2017级 计算机科学与技术学院各专业

一、实验概述

题目:XX语言编译器设计与实现(请为自己的编译器命名)

1.项目内容

自定义一个语言的文法规则,也可以采用C语言(或C++语言或C#语言或JAVA语言)部分关键语法规则。构造一个高级语言的编译程序甚至集成开发环境(IDE)。

如果定义面向对象的语言,推荐选用教材中的面向对象语言decaf。

2. 任务总体要求

收集与阅读相关文献资料,确定采用的技术线路,设计系统实现方案,完成系统实现;提交标准格式打印的《编译原理实验报告》和包括《编译原理实验报告》、编译器源程序、编译器目标程序、README和测试模拟数据文件之光盘。实验报告封面和报告内容目录采用统一格式,各小节具体划分自己根据实际情况确定。

3. 源语言的定义

源语言要求至少包含的语言成分如下:

l 数据类型至少包括char类型、int类型和float类型,字符串作为可选项;

l 基本运算至少包括算术运算、比较运算、自增自减运算和复合赋值运算;

l 控制语句至少包括if语句、while语句和break、continue语句(不要求goto语句),另外for、switch语句作为可选项;

l 多维数组。另外结构作为可选项;

l 语言支持行注释与块注释,不要求支持编译预处理命令和多文件程序。

二、实验内容及要求

1. 实验一:词法语法分析器的设计与实现

建议使用词法语法生成工具如:LEX/FLEX ,YACC/BISON等专业工具完成。要求:(1)以二元组(单词种类码,自身值)序列的形式显示单词序列(2)显示抽象语法树。

注:要求显示的2个功能仅适用于实验一,完成实验检查后去掉这两个显示。可通过条件编译的方式或自定义某种设置的方式打开和关闭。

2. 实验二:符号表管和语义检查

设计符号表数据结构和关键管理功能。动态展现符号表变化过程。无论语法分析使用工具还是自己设计,都必须对符号表进行设计和管理;完成相关属性计算并进行静态语义检查。同时能完成多种语义错误的检查(最低要求15中以上的静态语义错误)。

注:要求显示符号表的功能仅适合程序调试和实验检查使用,可通过条件编译的方式或自定义某种设置的方式打开和关闭。

3. 实验三:中间代码生成和优化

定义中间代码的形式,生成中间代码并显示。能用DAG进行局部优化中间代码。

注:要求显示中间代码的功能仅适合程序调试和实验检查使用,可通过条件编译的方式或自定义某种设置的方式打开和关闭。

4. 实验四:目标代码生成

在前三个实验的基础上实现目标代码生成。也可以使用工具如LLVM来生成目标代码,这个要求自学LLVM教程查阅LLVM文档,(http://llvm.org/docs/tutorial/index.html)。

为了方便完成全部阶段的实验任务,在后续阶段中可适当做些限制,比如目标代码生成,可只考虑支持整型,这个在实验报告中说明清楚即可。

目标代码阶段的指令集可以选择X86或Mips,强烈推荐自己在组成原理课程上实现CPU的指令集,最终编译成机器码在自己的CPU上运行。

三、评分标准

参照下列完成情况进行评定分数。

要求完成全部四个实验并完成实验报告,四个实验和实验报告对应课程成绩的权重分别为20%、20%、20%、20%(其中优化5%)、20%。

特别提示:

每完成一个实验,准备好测试用例及时在课堂上给老师检查。最后课程成绩的评定和各个实验的完成时间、完成质量挂钩。为了提高课堂上的检查效率,希望课下多花些时间完成实验任务。

为了保存阶段成果,每个实验完成检查后固定版本号保存,为实验报告的撰写保留现场。每个实验检查时只能包括本实验的内容。例如,如果检查实验一时发现项目里有实验二甚至实验三的内容,将作为抄袭拷贝的依据。

四、实验报告内容

实验报告要充分展示你完成各阶段任务采用的技术手段,有关算法思想的描述,主要包括如下几个部分。

(1) 语言的定义,以及有关语言特点的文字描述。

(2)词法分析、语法分析。

(3)语义分析。

(4)中间代码的生成。

(5)目标代码的生成。

(6) 总结,这部分主要描述在实现过程中,遇到了一些什么技术问题,如何解决以及自己工作的亮点的等等,属于技术层面的总结。

(7) 参考文献

有关报告的文字、段落设置、表格和插图规范,参考校毕业设计论文规范要求(和数据结构等课程要求一致)。报告中不需要打印源代码,源代码只需要提交电子档。报告封面统一规定如下。


课 程 实 验 报 告

课程名称:      编 译 原 理 实 验

专业班级:

学    号:

姓    名:

指导教师:

报告日期:    2020年 X月 X 日

计算机科学与技术学院

1概述

2 XX语言定义

3实验一 词法语法分析器

4实验二 符号表管理与语义计算

5实验三 中间代码生成与优化

6实验四 目标代码生成

7总结

7.1 实验完成情况

明确说明自己对实验的完成情况,包括基本内容和可选内容,可选内容作为加分项依据。

7.2 实验感想

7.3 展望

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

                 

打印本页 | 关闭窗口
本类最新文章
台式数控等离子切割机机械结构设计 台式数控等离子切割机机械结构设计 台式数控等离子切割机机械结构设计
基于PLC的罐装加工过程为全自动 基于Python电影推荐系统设计 基于西门子S7-200PLC四层
| 关于我们 | 友情链接 | 毕业设计招聘 |

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