资源描述:
《研究生上机作业实施大纲.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、研究生上机作业实施大纲软件工程研究所刘坚2005年4月第一部分:题目与要求一、题目设计一个Pascal子集(minipascal)的解释器(Aho86)二、要求(提示)2.1需求明确认真阅读题目,明确需要做什么;自己应该做什么和能够做什么;定一个最低目标并编写需求分析报告大纲。2.2分工协作根据最低目标划分任务模块(注意:不是指程序模块),使得各模块的设计与实现可以并行;协商制定模块之间的接口。2.3先设计后实现2.4注重测试与系统集成每个模块进行相应的测试,包括:测试方案、测试环境、测试例子、测试过程、测试结果、测试分析;系统集成测试,分别包括:接口和集成环境下的测试方案、测试
2、环境、测试例子、测试过程、测试结果、测试分析。根据个人的任务制定所承担模块的功能指标,并编写详细的需求分析报告;考虑解决问题的难点,并确定参考教材中的哪部分内容,以解决此问题;设计解决方案并逐步加细;编码实现(包括测试);用增量或螺旋方式对1-4进行若干次迭代。2.5最终提交磁盘文件:包括上机报告、源程序、上机环境(工程文件)。建议文件组织形式:root:readme(根据此文件所给信息进行验收)doc:上机报告及相关文档src:源程序、工程文件、合理的子目录组织注意:上机报告中要写明所有作者和每个人所做的工作。第二部分:上机作业实例一、需求分析大纲与任务划分1.1minipas
3、cal程序设计语言1.1.1程序程序总体结构与程序例子<1>总体结构与主要元素主程序:程序头、全程量数据声明、子程序声明、组合语句(语句序列);子程序:程序头、本地量数据声明、组合语句;数据类型:简单类型(整型、实型)、元素为简单类型的数组类型;语句类型:赋值、过程调用、if和while、read和write注意:子程序不可以再嵌套定义子程序,故数据只有全程和本地,没有非本地。数组的元素只能是简单类型,故为一维数组。1.1.1程序程序总体结构与程序例子(续)<2>程序例子programtest(input,output);beginread(x,y);write(gcd(x,y)
4、)end.varx,y:integer;functiongcd(a,b:integer):integer;beginifb=0thengcd:=aelsegcd:=gcd(b,amodb)end;1.1.2词法<1>注释:{...}<2>白空:空格、tab、换行<3>标识符ID:letter[a-zA-Z]digit[0-9]ID{letter}({letter}
5、{digit})*<4>数字字面量num:(降低要求,没有指数部分)int{digit}+real{int}(.{int})?num{int}
6、{real}1.1.2词法(续)<5>保留字:ARRAYBEGINDOE
7、LSEENDFUNCTIONIFINTEGERNEWOFPROCEDUREPROGRAMREADREALTHENVARWHILEWRITE<6>关系算符RELOP:=<><><=>=<7>加算符ADDOP:+-or<8>乘算符MULOP:*/divmodand<9>其他终结符::=..,;().error1.1.3语法program:PROGRAMID'('INPUT','OUTPUT')'';'declarationssubprogram_declarationscompound_statement'.';identifier_list:ID
8、identifier_list',
9、'ID;declarations:
10、declarationsVARidentifier_list':'type';';type:standard_type
11、ARRAY'['NUMDOTSNUM']'ofstandard_type;1.1.3语法(续1)standard_type:INTEGER
12、REAL;subprogram_declarations:
13、subprogram_declarationssubprogram_declaration';';subprogram_declaration:subprogram_headdeclarationscompound_stateme
14、nt;subprogram_head:FUNCTIONIDarguments':'standard_type';'
15、PROCEDUREIDarguments';';arguments:
16、'('parameter_list')';1.1.3语法(续2)parameter_list:identifier_list':'type
17、parameter_list';'identifier_list':'type;compound_statement:BEGINoptional_statem