Types Ada封装和私有类型

Types Ada封装和私有类型,types,private,ada,encapsulation,Types,Private,Ada,Encapsulation,从编译器的角度来看,在包规范中声明Ada类型与在主体中声明Ada类型之间有什么区别?Ada对语义一致的包形式的包含的强大支持。从编译器的角度来看,将包的规范与其主体分离……可以减少编译时间。将重点放在主题中检查的抽象数据类型上,很明显,公共部分是客户端可以访问的部分。相比之下,私有部分可供实现访问。它包括足够的实现细节,使编译器能够为任意客户机生成代码,但仅此而已。一旦成功编译了修改后的包体,现有客户机就可以依赖于未更改的规范,而无需重新编译相应的包体。Ada对语义一致包形式的Include的强

从编译器的角度来看,在包规范中声明Ada类型与在主体中声明Ada类型之间有什么区别?

Ada对语义一致的包形式的包含的强大支持。从编译器的角度来看,将包的规范与其主体分离……可以减少编译时间。将重点放在主题中检查的抽象数据类型上,很明显,公共部分是客户端可以访问的部分。相比之下,私有部分可供实现访问。它包括足够的实现细节,使编译器能够为任意客户机生成代码,但仅此而已。一旦成功编译了修改后的包体,现有客户机就可以依赖于未更改的规范,而无需重新编译相应的包体。

Ada对语义一致包形式的Include的强大支持。从编译器的角度来看,将包的规范与其主体分离……可以减少编译时间。将重点放在主题中检查的抽象数据类型上,很明显,公共部分是客户端可以访问的部分。相比之下,私有部分可供实现访问。它包括足够的实现细节,使编译器能够为任意客户机生成代码,但仅此而已。一旦修改后的包体被成功编译,现有客户机就可以依赖于未更改的规范,而无需重新编译相应的包体。

一般来说,最好将类型声明,但也将常量或子程序等其他项尽可能地局部化。在您的情况下,如果该类型仅在主体中使用,而不是作为私有类型用于包规范的用户,请将其放在主体中。此外,如果只在主体的子程序中使用,请将其放入该子程序中。它减少了名字冲突的几率,让事情更清楚。总而言之,编译器在代码中的给定点使用较小的标识符集的优点与程序员相同。

一般来说,最好将类型声明以及常量或子程序等其他项尽可能地局部化。在您的情况下,如果该类型仅在主体中使用,而不是作为私有类型用于包规范的用户,请将其放在主体中。此外,如果只在主体的子程序中使用,请将其放入该子程序中。它减少了名字冲突的几率,让事情更清楚。总而言之,编译器在代码的给定点使用较小的标识符集的优点与程序员相同