燕山大学11计算机编译原理课程设计安排

2018-12-08 21:11

大校11计算机《编译原理》课程设计安排

时间:18周(12月30日-1月3日)地点:信息馆317、318实验室

一、 设计目的:研究、改进或自行设计、开发一个简单的编译程序或其部分功能,加深对编译理论和编

译过程的理解。编程语言不限。

二、 设计任务 (学号最后一位%4+1): 1.扩展PL/0编译程序功能

目的:扩充PL/0编译程序功能,

要求:(1)阅读、研究PL/0编译程序源文件。

(2)在上述工作基础上,可有选择地补充、完善其中词法分析、语法分析、语义分析、目标代码

生成、目标代码解释执行等部分的功能。如以语法分析部分为例,则可以增加处理更多语法成分的功能,如可处理一维数组、++、--、+=、-=、*=、/=、%(取余)、!(取反)、repeat、for、else、开方、处理注释、错误提示、标示符或变量中可以有下划线等。还可以增加类型,如增加字符类型、实数类型;扩充函数如有返回值和返回语句的,有参数函数等;

(3)设计编制典型的运行实例,以便能反映出自己所作的改进。

2. 基于LL(1)方法的语法分析程序

目的:设计、编制和调试一个典型的语法分析方法,进一步掌握常用的语法分析方法。 要求:

(1)根据LL(1)分析法编写一个语法分析程序,可根据自己实际情况,选择以下一项作为分析算法的输入:a.直接输入根据已知文法构造的分析表M;

b.输入文法的FIRST(α)和FOLLOW(U)集合,由程序自动生成文法的分析表M; c.输入已知文法,由程序自动构造文法的分析表M。

(2)所开发的程序可适用于不同的文法和任意输入串,且能判断该文法是否为LL(1)文法。

(3)如完成前两项,可增加运行实例,对于输入的文法和符号串,所编制的语法分析程序应能正确

判断此串是否为文法的句子,并要求输出分析过程。

3.基于LR(0)方法(或SLR(1)方法、或LR(1)方法)的语法分析程序

要求:

可根据自己实际情况,选择以下一项作为分析算法的输入:

(1)直接输入根据己知文法构造的LR(0)(或SLR(1) 、或LR(1))分析表。

(2)输入已知文法的项目集规范族和转换函数,由程序自动生成LR(0) ( 或SLR(1) 、或LR(1))分析表;

(3)输入已知文法,由程序自动生成LR(0) ( 或SLR(1) 、或LR(1))分析表。 目的和其它要求参考“基于LL(1)方法的语法分析程序”

4.词法分析程序设计

目的:设计、编制和调试一个具体的词法分析程序,加深对词法分析的理解。 要求:

通过对PL/0词法分析程序(GETSYM)的分析,编制一个具有以下功能的词法分析程序: a. 输入为待进行词法分析的源程序,输出为单词串,即由(单词,类别)所组成的二元组序列;

b. 有一定的错误检查能力,例如能发现2a这类不能作为单词的字符串。

选作题目:若以上题目均不感兴趣,可申请做选作题目。 ①基于Lex和Yacc的C-Minus编译器。

基于W indows环境下的Lex和Yacc集成环境Parser Generator, 实现了以C _ M inus ( C

语言子集) 语言为源语言的编译器。主要从编译技术的角度对C _ M inus语言的词法分析、语法 分析、符号表的建立以及目标代码生成的过程进行详细的阐述。

②利用Lex和Yacc工具制作一个小型的计算器编译器。

功能如下:1. 分别能够完成十进制、八进制、十六进制的一些基本运算。可以通过DEC_ON,OCT_ON,HEX_ON三个开关进行控制。

2.能够完成一些基本的算术运算和逻辑运算,如:加、减、乘除、乘方、取模、与、或、非等运算。 3.提供帮助提示操作,如:HELP命令,清屏命令CLEAR等,错误提示信息等。

1

三、提交设计报告

报告内容包括:课程设计任务、设计目的,设计思想,主要变量说明,算法描述,程序结构,调试情况,运行结果,设计技巧,心得体会等。

报告用B5打印。封面内容包括“编译原理课程设计”、课程设计题目、姓名、班级、学号、日期等信息,左侧面装订。注意排版格式的重要性。

四、 课程设计要求

1. 课程设计视同课堂教学,上午8:00、下午2:00开始。请全体同学遵守机房要求,文明上机。 2. 验收时学生将设计报告交给负责验收的老师并参加验收。验收时每位学生应重点说明自己做了哪

些修改、完善或设计工作。验收老师以此作为评定成绩的主要依据。 3. 若有雷同的程序或报告按不及格处理。

五、辅导值班及验收安排

日期(星期) 上午 下午 12月30日(星期一) 王璿、王宝文 穆云峰、苑炜弢 12月31日(星期二) 邹晓红、穆云峰 张世辉、崔永强 1月1日(星期三) 放假 1月2日(星期四) 张世辉、王宝文 邹晓红、崔永强 1月3日(星期五) 王璿、苑炜弢 验收

验收安排:

计算机应用1和计算机应用2班 张世辉、王宝文、邹晓红 计算机应用3班和计算机科学2班 王璿、苑炜弢、崔永强 计算机科学1班 穆云峰

六、课程设计辅导要求

1. 上午8:00、下午2:00开始。 2. 辅导教师负责解答学生课程设计过程中提出的相关问题。 3. 检查学生的编程习惯(如程序描述、注释、缩进、空格、变量命名等),强制学生逐渐养成良好的

编程习惯。 4. 文件管理指导:使学生明白学会正确的文件管理技术非常重要,优秀的软件开发者往往具有很好

的文件管理技巧。 5. 备份工作指导:学生可能意识不到备份的重要性,应该强制要求学生采用某种备份策略,如将资

料备份到不同的设备上。 6. 验收时请老师们逐一检查报告,若有雷同则不及格或退回重写。 7. 验收老师根据讲解、演示、设计报告等评出每位学生的成绩(给出具体分数值)。并按学校要求评

阅报告后,在报告封面右上角写上分数,在最后一页注明“阅”、签名和评阅日期。

2


燕山大学11计算机编译原理课程设计安排.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:CCAA2016年9月24日ISO9001-2015转版试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: