程序设计语言原理2023-3

VIP免费
2025-01-13 0 0 1.4MB 134 页 5.9玖币
侵权投诉
第三章 过程式程序设计语言
基本观点:
计算实现的模型如果按冯·诺依曼原理强制改变内存中的值叫命令(或译命令
式、强制式/Imperative)的。由于强制改变值,程序状态的变化没有一定规则,
程序大了就很难查错,很难调试,不易证明其正确。
组织程序的范型即:算法过程+数据结构(计算控制+计算对象)
3.1 计算对象表示—值与类
3.2 计算对象实现—存储
3.3 计算对象连接—束定
3.4 计算组织—程序控制
3.5 计算组织—函数与过程
3.6 计算组织—抽象与封装 1
无符号整数: 二进制解释的值
整数:符号 值
3.1 计算对象-值与类型
01000111 11101000101010000010101011
浮点数:符号 阶码 尾数
程序语言中:基元(primitive)类型:整型/实(定,浮)/字符/真值/枚举
结构(structured)类型:元组/数组/记录(结构)/表/串
类型是计算机可能实现的结构和约定对客观世界差异的刻划。
同一类型的外延,即同一结构表示所有可能的值构成一个域。
分类原则:同样表示结构,同样语义解释,同样的操作。
同类型值运算结果:同类型。
2
3.1.1 字面量、变量、常量
名字操纵值, 名: 字面量 从名字即知类型 字面值不变
变量 符号名要声明类型 值可变
常量 符号名要声明类型 值不变
基元值的名字是地址的别名, 地址值在计算机中不恒定
操纵地址的名字是指针(地址变量)
float *p, x = 37.32; p=&x;
(p)203C (x)117F
117F 37.32
3
名值可分导
x = x + 1;
名 按名取值: 引用reference
存—值
右值
y = x ++ ; x 既是右值也是左值
别名:多个变量可以具有同一个地址。当用多个变量名来访问单个存储
地址时,这些变量名就称为别名。
(违反无二义原则吗?)
int &Rint = Svar //C++
//&在此不是求地址运算,而是起到引用类型的标识作用。c中语法错误
Rint 是引用类型的变量,即左值变量必须关联一右值,因而成为Svar别名
引用和指针的区别是什么
4
5
c语言片段
int x,i=1;
x++;
i++;
x=i++;
x=i++1;
x=i+++1;
x=i++++1;
//x=1, i=1
//x=0, i=2
//x=1, i=2
//wrong
//x=2, i=2
//wrong
3.1.2 值是头等程序对象
程序语言中的值
字面量(整、实、布尔、字符、枚举、串)
复合量(记录、数组、元组、结构、表、联合、集合、文件)
指针值
变量引用(左值、右值)
函数和过程抽象,数学对象参与运算的权利是一样的,值是计算
对象也要按一致性原则:
可出现在表达式中并求值
可作函数返回值
可单独存储
可以构成复杂的数据结构
可作函数参数
6
程序中的求值方式
表达式中求值靠运算符
函数、过程引用改变值
函数得到函数值,过程改变环境中值(也是 改变状态)。
函数和过程是操作集合的概括, 函数是从原始值到函数值的映
射, 是一种事物的度量到另一种事物度量的联系。
运算符是特殊的函数
单目运算E 等价表示为 (E)
双目运算: E1E2 等价表示为 (E1, E2)
程序中到底什么是求值?
7
有没有多目运算
基本类型
基本类型:按操作行为划分的值的集合
集合中元素个数叫基数 #S
OP1:T T
OP2:T × T T
复合类型
l笛卡尔积 S × T={(x,y)x∈S, y∈T}
# (S × T) = #S * #T
复合类型:基元值以下述数学操作复合
  
u v
(v,a)(v,b)(v,c)
(u,a)(u,b)(u,c)
 
a b c
ST
S+T
元组、记录
数组类型
设计问题:
哪些类型对于下标是合法
要对元素引用中的下标表达式检查其范围吗?
何时绑定下标范围
何时进行数据存储空间的分配
支持不规则数据或多维数据吗?
是否支持数组元素异构?
给数组分配了存储空间后,能对数组初始化吗?
如果支持数组片,是哪种类型的数组片呢?
数组类型的实现
一维和多维
10
摘要:

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

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

共134页,预览27页

还剩页未读, 继续阅读

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

开通VIP享超值会员特权

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