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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大校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和Y acc的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等,错误提示信息等。

三、提交设计报告

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

报告用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.验收老师根据讲解、演示、设计报告等评出每位学生的成绩(给出具体分数值)。并按学校要求评阅报告后,在报告封面右上角写上分数,在最后一页注明“阅”、签名和评阅日期。

相关文档
最新文档