当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

北京航空航天大学:《程序语言设计原理》课程教学资源(PPT课件讲稿)第三章 过程式程序设计语言

资源类别:文库,文档格式:PPT,文档页数:94,文件大小:761KB,团购合买
3.1 计算对象表示—值与类型 3.2 计算对象实现—存储 3.3 计算对象连接—束定 3.4 计算组织---程序控制 3.5 计算组织---函数与过程 3.6 计算组织---抽象与封装
点击下载完整版文档(PPT)

第三章过程式程序设计语言 基本观点: 计算实现的模型如果按冯·诺依曼原理强制改变内存中的值叫命令(或译指 强制 Imperative式)的。由于强制改变值,程序状态的变化没有一定规 则,程序大了就很难査错,很难调试,不易证明其正确 组织程序的范型即:算法过程+数据结构(计算控制+计算对象) 3.1计算对象表示一值与类型 3.2计算对象实现一存储 3.3计算对象连接一束定 3.4计算组织-一程序控制 3.5计算组织一函数与过程 3.6计算组织--抽象与封装

第三章 过程式程序设计语言 基本观点: 计算实现的模型如果按冯·诺依曼原理强制改变内存中的值叫命令(或译指 令、强制Imperative式)的。由于强制改变值,程序状态的变化没有一定规 则,程序大了就很难查错,很难调试,不易证明其正确。 组织程序的范型即:算法过程+数据结构(计算控制+计算对象) 3.1 计算对象表示—值与类型 3.2 计算对象实现—存储 3.3 计算对象连接—束定 3.4 计算组织---程序控制 3.5 计算组织---函数与过程 3.6 计算组织---抽象与封装

3.1计算对象值与类型 类型是计算机可能实现的结构和约定对客观世界差异的刻划 同一类型的外延,即同一结构表示所有可能的值构成一个域 分类原则:同样表示结构,同样语义解释,同样的操作。 同类型值运算结果:同类型。 无符号整数: 二进制解释的值 整数:符号 植值 0000101010111010001010100001110111 浮点数:符号阶码 尾数 程序语言中:基元( primitive)类型:整型/实(定,浮)/字符/值/枚举 结构( structured)类型:元组/数组/记录(结构)/表串

类型是计算机可能实现的结构和约定对客观世界差异的刻划。 同一类型的外延,即同一结构表示所有可能的值构成一个域。 分类原则:同样表示结构,同样语义解释,同样的操作。 同类型值运算结果:同类型。 无符号整数: 二进制解释的值 整数:符号 值 3.1 计算对象-值与类型 0 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 0 1 1 1 浮点数: 符号 阶码 尾数 程序语言中:基元(primitive)类型:整型/实(定,浮)/字符/真值/枚举 结构(structured)类型:元组/数组/记录(结构)/表/串

3.1.1字面量、变量、常量 名字操纵值,名:字面量从名字即知类型字面值不变 变量符号名要声明类型值可变 常量符号名要声明类型值不变 ·基元值的名字是地址的别名,地址值在计算机中不恒定 操纵地址的名字是指针(地址变量) float * p,x=37.32, p=&x: (p)203C(x)117F 117F 37.32

3.1.1 字面量、变量、常量 • 名字操纵值, 名: 字面量 从名字即知类型 字面值不变 变量 符号名要声明类型 值可变 常量 符号名要声明类型 值不变 • 基元值的名字是地址的别名, 地址值在计算机中不恒定 • 操纵地址的名字是指针(地址变量) float *p, x = 37.32; p=&x; (p)203C (x)117F 117F 37.32

续 名值可分导致 按名按名取值:引用 reference 存值 左值 右值 int rint svar Rnt是引用类型的变量,即左值变量必须给一右值,因 而成Sva别名 y=x++;ⅹ既是右值也是左值

续 •名值可分导致 x = x + 1; 按名 按名取值: 引用reference 存—值 左值 右值 int & Rint = Svar Rint 是引用类型的变量,即左值变量必须给一右值,因 而成Svar别名 y = x ++ ; x 既是右值也是左值

3.1.2值是头等程序对象 程序语言中的值 字面量(整、实、布尔、字符、枚举、串 复合量(记录、数组、元组、结构、表、联合、集合、文件) 指针值 变量引用(左值、右值) 函数和过程抽象,数学对象参与运算的权利是一样的,值是 计算对象也要按一致性原则: 可出现在表达式中并求值 可作函数返回值 可单独存储 可以构成复杂的数据结构 可作函数参数

3.1.2 值是头等程序对象 程序语言中的值 • 字面量(整、实、布尔、字符、枚举、串) • 复合量(记录、数组、元组、结构、表、联合、集合、文件) • 指针值 • 变量引用(左值、右值) • 函数和过程抽象,数学对象参与运算的权利是一样的,值是 计算对象也要按一致性原则: – 可出现在表达式中并求值 – 可作函数返回值 – 可单独存储 – 可以构成复杂的数据结构 – 可作函数参数

3.1.3类型系统 类型定义值的集合和值上操作集合(V,Op) 类型系统一组可直接使用的类型 类型规则 类型检查机制

3.1.3 类型系统 •类型定义 值的集合和值上操作集合(V,Op) •类型系统 一组可直接使用的类型 •类型规则 •类型检查机制

3.1.3类型系统 静态与动态 静动 变量有类型无类型动态简洁、灵活 参数有类型无类型静态清晰、死板 值有类型有类型 弱/强类型 无类型LISP, Smalltalk 弱类型变量有类型。类型兼容性大,系统不作检查 强制类型隐式类型强制(转换),自动截尾,补零。显式 类型强制PL/ 伪强类型静态均有类型且作检査,由于不严,导出等价准贝 Pascal 强类型类型有严格定义,均作检查Ada

3.1.3 类型系统 • 静态与动态 静 动 变量 有类型 无类型 动态简洁、灵活 参数 有类型 无类型 静态清晰、死板 值 有类型 有类型 • 弱/强类型 –无类型 LISP , Smalltalk –弱类型 变量有类型。类型兼容性大, 系统不作检查 –强制类型 隐式类型强制(转换),自动截尾, 补零。显式 类型强制 PL/1 –伪强类型 静态均有类型且作检查,由于不严,导出等价准则 Pascal –强类型 类型有严格定义, 均作检查 Ada

续 类型等价 按结构等价 type a is array (range 1.. 100 of INTEGER type b is array (range 1.100)of INTEGER OAl, 0A2: A OBI, OB2: B 0C1: array (range 1.. 100) of INTEGER OD1, OD2: array (range 1. 100) of INTEGER OE1: A 0A1,OA2,OB1,OB2,OC1,OD1,OD2,OE1均等价

•类型等价 按结构等价 type A is array (range 1.. 100) of INTEGER; type B is array (range 1..100) of INTEGER; OA1, 0A2: A; OB1, OB2: B; OC1: array (range 1.. 100) of INTEGER; OD1, OD2: array (range 1..100) of INTEGER; OE1: A; OA1,OA2,OB1,OB2,OC1,OD1,OD2,OE1均等价 续

续 按名等价 0A1,OA2是同一类型(都用A声明) 0A1,OB1,0C1是不同类型(类型名为A,B,无) OD1,OD2是同一类型(同时声明,虽无名) OD1,OC1是不同类型(两次声明) 0A1,OE1是同一类型(虽两次声明,但同名 类型完整性准则 涉及值的类型中不能随意限定操作, 力求没有第二类的值

按名等价 OA1, OA2 是同一类型(都用A声明) OA1, OB1, OC1是不同类型(类型名为A,B, 无) OD1, OD2 是同一类型(同时声明, 虽无名) OD1, OC1 是不同类型(两次声明) OA1, OE1 是同一类型(虽两次声明, 但同名) • 类型完整性准则 涉及值的类型中不能随意限定操作, 力求没有第二类的值 续

3.1.4类型兼容 不同类型值混合运算,人为定出计算级别,由低层升 格为高层,结果值是高层的 隐式转换弱类型I:=R; 显式转换强类型I:= Integer((R; 强类型按名判定,不同类型名则不兼容只有子类型 不同名可以兼容 显式和隐式混合

3.1.4 类型兼容 • 不同类型值混合运算, 人为定出计算级别,由低 层升 格为高层, 结果值是高层的 • 隐式转换 弱类型 I := R; 显式转换 强类型 I := Integer(R); • 强类型按名判定,不同类型名则不兼容只有子类型 不同名可以兼容 • 显式和隐式混合

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共94页,可试读20页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有