口作用域:一个名字能被使用的区域范围 称作这个名字的作用域。 口允许同一个标识符在不同的过程中代表 不同的名字。 口名字作用域规则-一"最近嵌套原则” ■一个在子程序B1中说明的名字X只在B1中 有效(局部于B1); 如果B2是B1的一个内层子程序且B2中对 标识符X没有新的说明,则原来的名字X在 B2中仍然有效。如果B2对X重新作了说明, 那么,B2对X的任何引用都是指重新说明 过的这个X。 国防科技大学计算机系602教研室
国防科技大学计算机系602教研室 作用域:一个名字能被使用的区域范围 称作这个名字的作用域。 允许同一个标识符在不同的过程中代表 不同的名字。 名字作用域规则--"最近嵌套原则" ◼一个在子程序B1中说明的名字X只在B1中 有效(局部于B1); ◼如果B2是B1的一个内层子程序且B2中对 标识符X没有新的说明,则原来的名字X在 B2中仍然有效。如果B2对X重新作了说明, 那么,B2对X的任何引用都是指重新说明 过的这个X
program main A(real)A(integer)B(real)B(bool) var A,B:real; procedure P1 工 var B:boolean; begin ■量■ end procedure P2 var A:integer; begin end begin ■■ end 国防科技大比计算机系602教研室
国防科技大学计算机系602教研室 program main var A, B : real; … procedure P1 var B:boolean; … begin … end procedure P2 var A:integer; … begin … end begin … end A(real) A(integer) B(real) B(bool)
口PASCAL提供了丰富的数据类型和运算 方式,它允许用户动态地申请和退还存 贮空间。 国防科技大学计算机系602教研室
国防科技大学计算机系602教研室 PASCAL提供了丰富的数据类型和运算 方式,它允许用户动态地申请和退还存 贮空间
ADA 口程序包(package):把数据和操作代码封装在 一起,支持数据抽象。 口一个程序包分为两部分: ■可见的规范说明部分,它定义了程序包外面可以访 问的对象。 ■程序包体,它实际定义程序包的实现细节。 国防科技大学计算机系602教研室
国防科技大学计算机系602教研室 ◼ ADA 程序包(package):把数据和操作代码封装在 一起,支持数据抽象。 一个程序包分为两部分: ◼ 可见的规范说明部分,它定义了程序包外面可以访 问的对象。 ◼ 程序包体,它实际定义程序包的实现细节
package STACKS is type ELEM is private; type STACK is limited private; procedure push (S:in out STACK;E:in ELEM); procedure pop (S:in out STACK;E:out ELEM); … end STACK; package body STACKS is procedure push(S:in out STACK;E:in ELEM); begin …实现细节 end push; procedure pop (S:in out STACK;E:out ELEM); begin 实现细节 end pop; end 国防科技大学计算机系602教研室
国防科技大学计算机系602教研室 package STACKS is type ELEM is private; type STACK is limited private; procedure push (S: in out STACK; E: in ELEM); procedure pop (S: in out STACK; E: out ELEM); … end STACK; package body STACKS is procedure push(S: in out STACK; E: in ELEM); begin ……实现细节 end push; procedure pop (S: in out STACK; E: out ELEM); begin ……实现细节 end pop; end;