大学程序设计语言课件课件下载模拟试题(504KB).pptVIP

  • 0
  • 0
  • 约1万字
  • 约 41页
  • 2018-04-10 发布于广东
  • 举报

大学程序设计语言课件课件下载模拟试题(504KB).ppt

比较无用信息和悬挂引用的危害性 无用单元可能使程序无法继续执行: 如果无用单元数目增加,那么程序可用空间便逐渐减小,则程序可能由于缺少自由空间而无法继续执行。 悬挂引用可能引起混乱: 如果一个程序试图通过一个悬挂引用修改一个早已释放了的结构,则在自由空间表列上相应单元中的内容可能不注意地被修改。 如果这种修改覆盖的是一个连接某一单元到另一个单元的指针,则整个剩下的自由空间表列可能变成不完全的自由空间表列。如果在随后的操作中,有存储分配器试图使用这个被覆盖的指针单元,则有可能导致难以料想的结果。 阐述重载和复用的特点 在两种情况下如何区分对方法的引用 在同一类中定义了多个同名而不同内容的成员方法时,我们称这些方法是重载的方法。重载的方法主要通过形式参数列表中参数的个数、参数的数据类型和参数的顺序等方面的不同来区分。 允许子类对父类的同名方法重新进行定义,即在子类中定义与父类中已定义的相同名而内容不同的方法。这种多态被称为覆盖.由于覆盖的同名方法是存在于子类对父类的关系中,所以只需在方法引用时指明引用的是父类的方法还是子类的方法,就可以很容易地把它们区分开来。 保留和删除方式的实现原理、使用场合和各自特点 保留方式的实现方法是:将包含保留变量的局部环境表作为子程序代码段的一部分而生成。删除方式的实现方法是:将包含删除变量的局部环境表作为子程序活动记录的一部分。 保留方式允许程序员书写对历史敏感的子程序。保留方式比较耗费存储空间,所有子程序的局部环境表存在于整个运行过程中。删除方式节省内存空间,只有那些正在运行或挂起的子程序需保留局部环境表。 翻译与解释的异同点 相同点:二者都接受高级语言作为输入。 不同点: 功能不同:翻译将源程序—等价的目标语言程序;解释直接执行源程序(用户角度看)。 顺序控制:翻译遵循输入的物理序列语句;解释遵循程序的逻辑控制流程。 执行次数:翻译对每条语句只处理一次;解释则可能对同一条语句反复解释处理(如循环),也可能完全忽略一些语句(如控制流不能到达的语句)。 信息完整性:翻译可能造成源程序信息丢失,调试、测试较为困难;解释不会。 代价:翻译需要耗费更大的存储空间;解释需要较长的执行时间(解码时间)。 如果我们将一台计算机定义为算法和数据结构的集合,则这样的一台计算机可以采用哪些方式来实现。 通过硬件实现:直接使用物理设备支持算法和数据结构; 通过固件实现:使用微程序设计实现支持算法和数据结构; 通过软件模拟:构造一种算法和数据结构支持源程序的算法和数据结构; 上述方法的综合:直接利用计算机的硬件、软件和/或微程序支持。 三、 1)? 基本BNF文法 符号整数::= 无符号整数| - 无符号整数 无符号整数::= 数字| 无符号整数 数字 数字::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 扩充的BNF文法 符号整数::= [ - ] 数字 { 数字 }* 数字::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 2) 构造符号串[y,[(x),y]]的语法树。 S G [ T , S ] y [ T , S ] [ , [ ( x ) , Y ] ] ( S ) T T G G 四、结果分析(12) 1)输出结果 program main(input,output) var i,j,k,m: integer; procedure Q(var j: integer, m: integer) begin (* j=5, m=7 *) i:= i+k; (* i=5+3=8, 全局i ,k *) m:= j+1; (* m=8+1=9, 局部j, m *) writeln(i,j,k,m); (* 8,8,3,9 *) end; procedure P(var i: integer, j: integer) var k: integer; begin (* i=1, j=3 *) k:=4; i:= i+k; j:= j+K; (* i=5, j=7 *) Q (i,j); end;

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档