程序设计语言原理2024-4

VIP免费
2025-01-13 0 0 2.17MB 182 页 5.9玖币
侵权投诉
抽象与封装
函数和过程是封装的程序实体,它有数据和操作,规格说明(型构)和过程体,
便于人们控制复杂性
• Pascal统一的嵌套结构不利于大型程序
main
Sub2
Sub1
main数
main
Sub1~10
Sub11~15
Sub16~21
Sub22~28
4 3 2 1
小程序结构 大程序结构
sortInt(list, listLen)
抽象的概念
抽象是实体只包含最重要属性的表征
数据抽象时,可以给实体的实例分组,而不需要关注组内实例的共同属性
在编程语言中,抽象是应对复杂性的利器
目的是简化编程过程
允许程序员只关注主要属性,忽略次要属性
再看分支和循环
目前的编程语言抽象方式
数据抽象
过程抽象
所有的子程序都是过程抽象
数据2
sub1--
sub10
数据4
sub22
--sub28
数据1
sub11--
sub15
数据3
sub16
--sub21
main
将相关的数据和操作封装成大模块(若干类型,若干过程/函数)结构上形成
package或模块 Modula
包是可分别编译。随时连接软件资源,是解决复杂系统的有力手段
包的规格说明和包体显式分开。语义上正好是“做什么”,“怎么做”
封装
子程序体
子程序体
子程序体
私有操作
程序包体
规格说明
模块和包
规格说明和体在表示结构上的分离。有利于修改,维护
封装实现数据隐藏,有利于安全
规格说明是程序包的抽象,有利于复杂系统简化
模块(包)封装数据与操作,它有可控界面,外界不能操纵私有
数据引出公有(public包的使用者可见)、私有(private本包所有
操作可访问,包外不可见)、保护(protected,包外不可见,但本
包的子包可见)概念
包只是以封装手段,可有/可没有逻辑语义
--只有数据无操作,数据块BLOCK DATAFORTRAN
--只有操作无共享数据如函数包,数学库
--有数据有操作,一口对外可模拟自动机
--有数据有操作,模拟客观世界对象增加程序表达能力
--封装的包可实现复杂的数据类型ADT
Ada 的复数程序包
package COMPLEX is
type NUMBER is record
REAL_PART:FLOAT
IMAG_PART:FLOAT
end record;
function "+"(AB: in NUMBER) return NUMBER
function "-"(AB: in NUMBER) return NUMBER
function "*"(AB: in NUMBER) return NUMBER
end COMPLEX
package body COMPLEX is
<声明私有数据/操作>
<实现规格说明中定义的每一个过程/函数>
<实现本包私有过程/函数>
end COMPLEX;
有了这个程序包我们可以编出复数应用程序:
with COMPLEX
use COMPLEX
procedure MAIN is
COMP_1: NUMBER : = (1.02.0)--1+2i
COMP_2: NUMBER : = (3.04.0)--3+4i
W XZ: NUMBER
begin
W : = COMP_1 + COMP_2 --W = 4+6i
X = COMP_2 - COMP_1 --X = 2+6i
Z = COMP_1 * COMP_2 --Z = -5+10i
end MAIN
抽象数据类型
数据抽象
数据抽象是抽象数据类型的方法学
定义一组数据集V,以及其上的操作集Op,构成ADTAbstract Data Type
T=( V , Op )
--什么和怎么做分开(规格说明和体)
--实现数据隐藏(体中声明的数据和操作外界不可见)
--分别开发分别编译(可做大程序)
--简化复杂性便于调试(利用抽象实现分治)
--构造新类型,计算直观方便(面向对象的基础)
抽象数据类型的作用
[1] 数据抽象将数据类型的使用和实现分开,先决定数据是如何使用的
外部性态)而不是它的实现内部构造。提高了程序开发的抽象层
次,较易控制大型系统的全局。
[2] 数据抽象简化了程序正确性问题。即如果程序不正确,改起来方便。
只要规格说明不变,只改变错误程序的体,不影响使用该资源的应
用程序。增加了软件的可维护性。
[3] 利用抽象数据类型可以准确地构造新类型
[4] 数据抽象能实现数据隐藏,即非规格说明界面上的数据,外部用户
是不可见的。增加软件安全性,可靠性
[5] 作为软件设计技术,模块性利于软件开发,应用程序和模块实现的
开发可独立进行。
用户自定义类型的抽象数据类型
应提供和语言定义的类型相同的特性,包括:
类型定义,允许程序单元声明此类型的变量,而隐藏该类型对象的表
示形式;
在该类型对象上的操作集合。
抽象数据类型满足下面两个条件:
此类型对象的表示方式对于使用它的程序单元来说是隐藏的,因此只
有在类型定义中提供的操作才能直接操作这些对象。
把类型的声明和在该类型上的操作协议包含在一个语法单元中。类型
接口不依赖对象的表述方式或操作的实现方式,另外,其它程序单元
可以创建所定义类型的变量。
摘要:

抽象与封装•函数和过程是封装的程序实体,它有数据和操作,规格说明(型构)和过程体,便于人们控制复杂性•Pascal统一的嵌套结构不利于大型程序main代码Sub2数据代码Sub1数据代码main数据mainSub1~10Sub11~15Sub16~21Sub22~284321小程序结构大程序结构sortInt(list,listLen)抽象的概念抽象是实体只包含最重要属性的表征数据抽象时,可以给实体的实例分组,而不需要关注组内实例的共同属性在编程语言中,抽象是应对复杂性的利器目的是简化编程过程允许程序员只关注主要属性,忽略次要属性再看分支和循环目前的编程语言抽象方式数据抽象过...

展开>> 收起<<
程序设计语言原理2024-4.pdf

共182页,预览37页

还剩页未读, 继续阅读

声明:本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。玖贝云文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知玖贝云文库,我们立即给予删除!
分类:计算机 价格:5.9玖币 属性:182 页 大小:2.17MB 格式:PDF 时间:2025-01-13

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 182
客服
关注