资源描述:
《程序设计语言与编译教学指导》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、程序设计语言与编译——语言的设计和实现(第2版)教师用教学参考指南龚天富编(本内容版权归作者所有,为非买品,只免费提供给教师教学之用,使用者不得随意翻印)本指南包括三个部分。第1部分给出本教材的知识点与教学重点;第2部分为必须布置的习题的参考答案。书中出现的程序不是教学重点,只需讲清思路即可。第3部分为参考试卷及其参考答案。第1部分知识点与教学重点笔者将各章的知识点分为三级——重点理解、理解和知道。对重点理解的知识点应讲深讲透,对知道的知识点可以不讲,或在其他课程(如高级程设计语言概论)中去讲,或由学生自学。第1章绪论重点理解引言,
2、强制式语言,程序单元。知道程序设计语言发展简介(学生必须自学)。第2章数据类型重点理解引言,内部类型,用户定义类型,Pascal数据类型结构,C语言类型结构,SIMULA67语言类机制,CLU语言的抽象数据类型,C++语言的抽象数据类型,类型检查,类型转换,类型等价。知道Ada语言的抽象数据类型(自学),Modula-2语言的抽象数据类型(自学),实现模型(自学)。第3章控制结构重点理解引言,顺序结构,选择结构,重复结构,语句级控制结构分析,显式调用从属单元,异常处理(异常处理的5个问题),PL/1语言的异常处理机制,CLU语言的异
3、常处理机制,Ada语言异常处理机制(主要讨论三种语言异常处理机制的异同),SIMULA67语言协同程序,并发单元,信号灯,会合。知道管程。第4章程序语言的设计重点理解全章。第5章非过程式程序设计语言知道全章(可以不要求,自学,作为高级程序设计语言概论课的内容)。第6章形式语义学简介知道全章(同第5章)。第7章编译概述重点理解全章。·25·第8章词法分析重点理解全章。第9章自上而下的语法分析重点理解回溯分析法,预测分析法。理解递归下降分析法。第10章自下而上的语法分析重点理解全章。第11章语义分析和中间代码生成重点理解全章。第12章代
4、码优化和目标代码生成重点理解全章。第13章运行时存储空间的组织重点理解程序的存储空间,栈式分配。理解静态分配。知道符号表(自学)。附录AJava语言概述知道整个附录A(自学)。第2部分部分习题参考答案本书习题可分为思考题和必做题,这里仅给出必做题的参考答案。习题11-1至1-11均为思考题。习题22-1至2-14均为思考题。习题33-1至3-13均为思考题。习题44-1至4-4均为思考题。4-5解:上下文有关文法(1型文法),产生的语言L(G){=aibici
5、i≥1,i为整数}4-6解:3型文法,L(G)={ai
6、i≥1,i为奇数
7、}4-7解:2型文法,L(G)={aibi
8、i≥1,i为整数}4-8解:1型文法,L(G)={aibici
9、i≥1,i为整数}4-9解:1.最左推导最右推导SÞ(A)Þ(B)Þ(SdB)SÞ(A)Þ(B)Þ(SdB)Þ((A)dB)Þ((B)dB)Þ(SdS)Þ(Sda)Þ((S)dB)Þ((b)dB)Þ((A)daÞ((B)da)Þ((b)dS)Þ((b)da)Þ((s)daÞ((b)da)·25·2.语法树4-10解:1.因为存在推导SÞSbFÞSbPÞSbcÞFbcÞFaPbc所以FaPbc是文法G(S)的一个句型。2.语法树
10、4-11解:因为串aaabaa可有下列两棵不同的语法树所以文法G(S)是二义文法。4-12解:因为串i(*可有下列两棵不同的语法树·25·4-13解:假定所设计的语言面向的机器为一般通用机。按照题目给出的问题,如果不考虑输入和输出语句,那么所要设计的语言仅包含字符串数据类型和赋值语句。语言设计如下:<程序>→<分程序><分程序>→begin<语句说明表>;<执行语句>end<说明语句表>→<说明语句>
11、<说明语句表>;<说明语句><说明语句>→<变量说明><变量说明>→string<变量表>说明:string是变量的类型,表示变量为
12、字符串。<字符串>→<字符>
13、<字符串><字符><字符>→一切可由键盘输入的字符<变量表>→<变量>
14、<变量表>,<变量><执行语句表>→<执行语句表>;<执行语句>
15、<执行语句><执行语句>→<赋值语句><赋值语句>→<变量>:=<表达式><表达式>→<变量>
16、<表达式>‖<变量>说明:符号“‖”为字符串连接运算符,例如字符串abc和字符串xyz经过连接运算的结果为abcxyz。<变量>→<标识符><标识符>→<字母>
17、<标识符><字母>
18、<标识符><数字><字母>→a
19、b
20、…
21、x
22、y
23、z<数字>→0
24、1
25、2
26、3
27、4
28、5
29、6
30、7
31、
32、8
33、9说明:本语言未设置任何控制语句,若要进行较为复杂的程序设计,必须增加控制语句,本语言的程序只能完全顺序执行。例:将字符串abc和xyz连接成字符串abcxyz。beginstringA1,A2,A3,A4;stringB1,B2