编译原理实践作业要求_第1页
编译原理实践作业要求_第2页
编译原理实践作业要求_第3页
编译原理实践作业要求_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编译原理实践作业要求 华东师范大学计算机科学与技术学院 PAGE 4编译原理实践作业要求一、目标:1编译原理实践课程要求每位同学对Small语言进行扩展,给出扩展后的设计。Small语言定义见文档“Small语言的定义”。对Small (扩展后的)语言,编写其编译器,要求完成词法分析、语法分析、出错处理、代码生成和解释程序。满分为100分。2用Small语言编写至少两个程序(输出1-100之间的素数,求两个整数的最小公倍数),用自己编写的编译器对程序进行编译,输出正确的结果。3编译器要有友好的用户接口(可选)。注意:因为这门课的成绩取决于同学们实践的结果,所以文档及程序皆不能抄袭其他同学的,这

2、一点很重要,抄袭者与被抄袭者将获得同样的结果,所以同学们有保护自己的劳动成果不被他人窃取的权力与义务。同时,这门课鼓励同学们发表意见,并进行交流与讨论,这与抄袭是不同的。二作业结构交作业的时候请按照下述目录结构组织文件,根目录为自己的学号,下面再分为三个子目录:文档、程序和测试。文档目录下必须要有设计说明和测试说明,书写格式请参考模版。101xxxxxxxx文档程序测试设计说明测试说明请将上述目录压缩为101xxxxxxxx.rar。注:不要将其以email的形式发送给我。1文档需包含设计说明和测试说明文档。2程序需包含源程序及可执行程序。3测试需包含测试用例,应该至少有两个测试用例(输出1-

3、100之间的素数,求两个整数的最小公倍数)。三作业检查1检查时间为2020年11月18日至12月30日每周三上午8:00-10:00。为了避免检查冲突,将把大家分成若干组。每组必须完成对small语言的指定扩展。指定扩展不再加分,其他的扩展将按照评分规则给分。按照指定时间检查,如希望提前检查请与任课教师联系。先检查的同学将获得更高的时间分,扩展点的难度也是由简单到复杂。分组及指定扩展说明请看后表。2作业检查在理科大楼B519计算机系机房进行,请考虑机房所能提供之运行环境。3检查作业时请以合适的方式将作业携带到机房,按照时间顺序进行检查。4作业由教师和助教检查,被检查者会被要求执行自己准备的测试

4、用例,也可能需要执行教师或助教给出的测试用例,执行测试用例必须得到正确的结果,被检查者需要就源程序及文档回答一些问题,如被检查者不能正确完成上述任务,则不能够通过检查。5教师会进行程序雷同性检查,如发现雷同,所涉及的人皆有可能被认为是抄袭。四评分规则1文档、程序、测试用例齐全,并完成所在分组的指定扩展点,成绩为合格(60分)。2根据用户界面的友好程度给予加分。满分为10分,必须支持目标代码单步执行时查看数据栈的功能。只支持命令行运行的不给加分。3根据分组检查时间的先后给予时间分。共计有7次检查,时间分依次为8、6、4、3、2、1、0分。4对给出的small语言语法,可以作如下的扩展或修改(但不

5、限于这些)。必须在说明文档中给出扩展点的语法定义。(1)跳过行注释(1分)跳过行注释,即/.(2)增加运算符(各2分)(a)求余运算符%(b)异或运算符XOR(c)判断整数的奇偶ODD(d)自增+,自减- (3)增加语句,语法定义可参照其他语言(a)case语句(5分)(b)for语句(5分)(c)continue,exit,break语句(6分)(d)dowhile语句(2分)(e)whiledo语句(2分)(4) 增加基本数据类型(a)可扩充到支持布尔数据类型,应支持and,or,not等布尔数据运算(10分)(b)可扩充到支持实数数据类型,实现+、-、*、/等运算。可以采用两种方案:一种

6、是整数类型和实数类型等不允许“混合使用”,但存在两种数据类型的转换操作符;另一种是允许“混合使用”,如当运算结果赋给整型变量时候则自动取整。(12分)(c)还可以增加如字符等数据类型(视实际情况给分)(5)增加常量(const)的定义与使用(4分)区分变量与常量,可以参考PL/0语言中的实现方法(6)扩充数组功能(10分左右,视实际情况给分)增加由任何数据类型构造的确定性一维数组,如整型数据数组。允许定义数组、对数组元素赋值、在表达式中引用数组元素等。(7)允许调用(call)过程(8分左右,视实际情况给分)可以参考PL/0语言中的实现方法,也可以参考C语言中的实现方法(8)扩充带参数、返回值

7、的过程(15分左右,视实际情况给分)比较容易实现的一种模式是数值参数(call by value):调用的实际参数是表达式,它在调用时被算出具体的值。形式参数表示过程的局部变量,它在调用时被赋予相应的实际参数值。此外还可以使用地址参数(call by reference)。过程还可以有返回值。(9) 增加记录(结构)(10分左右,视实际情况给分)(10) 允许并鼓励在编译器的实现当中(部分)使用Lex和Yacc等自动工具注意:上面的这些要求有时会相互影响,也可能需要对语法定义作一定的修改。5不合格。以下任何一项都将导致最终成绩不合格:超过规定期限未上传作业到ftp上的未接受作业检查的有抄袭行为

8、的不能提供源程序的无文档说明的五分组检查表重要说明:如果某个扩展点已经被之前小组列为必做项目,则后续检查同学实现该扩展点只能拿到原定分数的一半。比如11月25日这组规定必须实现for语句,那么后面的同学,比如12月2日检查的同学,也扩展实现了该语句,但只能加5分/2=2.5分。希望在安排表指定时间之前检查的同学,可以和任课老师联系提前检查。提前检查将获得同期的时间分,但仍必须完成指定扩展。比如原本安排在12月2日检查的同学,与老师联系后在11月25日进行了检查,可以获得时间分6分,若扩展了求余运算符%,可以拿2分,不用减半。检查时间学号指定扩展点(必做,不加分)11月18日(时间分:8分)8:00无8:309:009:3011月25日(时间分:6分)8:00跳过行注释;for语句8:309:009:3012月2日(时间分:4分)8:00求余运算符%;case语句8:309:009:3012月9日(时间分:3分)8:00跳过行注释;异或运算符XORwhile语句;for语句8:309:009:3012月16日(时间分:2分)8:00判断整数的奇偶ODD;增加常量(const)的定义与使用;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论