« 关于编译原理实验(已作废)对scanf和printf的处理 »

软件设计与开发实践IV——课程要求

 

《软件设计与开发实践Ⅳ》课程要求
《软件设计与开发实践IV》是计算机科学与技术专业本科生的一门必修课,是《编译原理》的配套实践课程,共48学时,全部在实验室进行综合设计与实践。
在该课程中,学生将综合利用汇编语言、高级程序设计语言、数据结构与算法、计算机原理、操作系统、软件工程、编译原理等课程中学到的原理、技术和方法,设计并实现一个将高级程序设计语言编写的源程序翻译为可执行文件的较为完整的小型编译器。该课程将培养学生设计复杂大型软件系统的能力;培养学生应用知识解决问题的能力;培养学生的实践动手能力;培养学生的系统分析与设计能力;培养学生的工程素质。
本课程要求学生完成一个较为完整的小型编译程序,该编译程序应该满足的基本要求(及格的要求)如下:
1、编译程序的基本功能
    词法分析
    语法分析
    语义分析和汇编代码生成
    符号表管理和存储分配
2、编译程序所处理的源程序的主要成分
    声明语句,包括变量声明和函数声明;
    赋值语句;
    布尔表达式;三种典型的控制流语句(顺序,循环、分支);
    一维数组的声明和引用;
    输入、输出语句;
    算术表达式的运算包括加、减、乘、除;
    函数调用语句。
3、编译程序首先能将源程序生成汇编代码,再经过汇编器的编译生成可执行程序,要求生成的可执行程序能够正确运行。
4、实验课不能缺席,出席情况计入平时成绩,平时成绩占30分,课堂上随时检查课程进度。
5、如果提前完成了整个课程的要求,则可以于开课2周后申请提前答辩验收。验收通过者可以不必继续上课,其后续的课程学时按“已上课”计入平时成绩。
6、考试要求
考试形式为程序检查与报告答辩,考试成绩共分三部分:软件程序占40%,设计报告与答辩占30%,平时成绩占30%。
7、测试用源程序
#include<stdio.h>
int main(){
    int score[6] = {76, 82, 90, 86, 79, 62};
    int credit[6] = {2, 2, 1, 2, 2, 3};
    int stu_number;
    float mean, sum;
    int temp;
    int i;
 
    printf("please input your student number:");
    scanf("%d",&stu_number);
 
    sum = 0;
    temp = 0;
    for( i = 0; i < 6; i++)
    {
         sum = sum + score[i] * credit[i];
         temp = temp + credit[i];
    }
    mean = sum / temp;
 
    if(mean >= 60){
         mean = mean - 60;
         printf("the score of student number %d is %f higher than 60.\n", stu_number, mean);
    }
    else{
         mean = 60 - mean;
         printf("the score of student number %d is %f lower than 60.\n",stu_number, mean);
    }
    return 0;
}}
8、《软件设计与开发实践IV》课程报告格式
(1).题目: 一个小型编译器的设计与实现
(2).课程目的和要求
(3).源语言的形式描述
/* 给出源语言的词法、语法规则的形式描述 */
(4) 词法分析器的设计与实现
① 词法分析器的总体结构;
② 数据结构设计:符号表、关键字等;
③ 状态转换图与程序流程图等。
(5).语法分析器的设计与实现
① 语法分析器的总体结构;
② 数据结构设计:分析栈、分析表等;
③ LR(1)分析表的构造;
④ 程序流程图等。
(6) 语义子程序与汇编代码生成器的设计与实现
① 目标语言(汇编语言)的简单定义;
② 语义子程序的设计(包括属性的设计、存储分配子程序的设计等);
③ 汇编代码生成器的设计与实现。
 (7) 测试
① 测试样例;
② 测试结果与分析说明。
(8).总结

 

软件设计与实践Ⅳ课程要求.doc

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。