《程序设计语言与编译》课程PPT教学课件(高职)第六讲 类型检查

第六节类型检查 1.类型检查 对数据对象的类型和使用的操作是否匹 配的一致性检査称为类型检查 2.静态检查和动态检查 ①静态检查使程序更正确更有效 ②动态检查使编程方便但影响了可读 性,且降低了执行效率
第六节 类型检查 1. 类型检查 对数据对象的类型和使用的操作是否匹 配的一致性检查称为类型检查 2. 静态检查和动态检查 ①静态检查使程序更正确更有效 ②动态检查使编程方便,但影响了可读 性,且降低了执行效率

3强类型语言 若一个语言允许所有的类型静态检查 4 Pascal是非强类型语言 编不熊确定个过程中的过程参 procedure who knows(i, j: integer procedure f) var k boolean begin k: =j< if k then f(k)else f( end
3.强类型语言 若一个语言允许所有的类型静态检查 4. Pascal是非强类型语言 ①编译时,不能确定一个过程中的过程参 数和子程序参数类型 procedure who_knows(i,j:integer;procedure f); var k:boolean; begin k:=j<i; if k then f(k) else f(j) end;

② Pascal的子界不能静态检查 如:a=b+c 且a、b、c均属于子界类型1.10 ③变体记录的标识符可以在运行时改 变 ④ Pasca没有严格规定类型的一致性 规则
②Pascal的子界不能静态检查 如: a:=b+c; 且a、b、c均属于子界类型1..10 ③变体记录的标识符可以在运行时改 变 ④Pascal没有严格规定类型的一致性 规则

第七节类转换 1.语言应该提供类型转换机制 如A+B 2.两种转换方式 ①拓展整型→实型 ②收缩实型→整型 有的“截断”有的“四舍五入
第七节 类型转换 1. 语言应该提供类型转换机制 如 A+B 2. 两种转换方式 ①拓展:整型→实型 ②收缩:实型→整型 有的“截断” ,有的“四舍五入

3.注意语言规定的转换规则 ①Foan:低级类型→高级类型 ② Pascal允许整数→实数实数→整数。但 必须显式转换( franc、 round) ③ ALGOL68提供了六种强制转换规则(隐 式的) ④Ada要求必须显式转换 例如:派生类型到母体类型的转换 P是 POSITIVER的变量、L是 LENGTH的变量 P: = POSITIVE(2 L+35)
3. 注意语言规定的转换规则 ①Fortran:低级类型→高级类型 ②Pascal允许:整数→实数;实数→整数。但 必须显式转换(frunc、round) ③ALGOL 68提供了六种强制转换规则(隐 式的) ④Ada要求必须显式转换 例如: 派生类型到母体类型的转换 P是POSITIVE的变量、L是LENGTH的变量 P:=POSITIVE(2*L+35);

第节类型等价 T1和T2是相容的:T1可赋给T2,T1可对应T2 的形参;反之亦然。 1.名字等价 两个变量的类型名相同 2.结构等价 两个变量的类型具有相同的结构。 验证法:用用户定义类型的定义来代替用户定 义名,重复这一过程,直到没有用户 定义类型名为止
第八节 类型等价 T1和T2是相容的:T1可赋给T2,T1可对应T2 的形参;反之亦然。 1. 名字等价 两个变量的类型名相同。 2. 结构等价 两个变量的类型具有相同的结构。 验证法:用用户定义类型的定义来代替用户定 义名,重复这一过程,直到没有用户 定义类型名为止

3.两种相容性实现时的比较 ①名字等价的实现比较简单 ②结构等价的实现需要的模式匹配过程可能十 分复杂
3. 两种相容性实现时的比较 ①名字等价的实现比较简单 ②结构等价的实现需要的模式匹配过程可能十 分复杂

第九节抽象数据类型 1.用户定义类型与内部类型的异同 ①都建立某种基本表示的抽象 如 Integer是位串的抽象; reg_ polygon是记录的抽象 ②每类型都关联一组操作 ③内部类型隐蔽了基本表示,不能对 它的成分进行操作;用户定义类型具 有更高级别的抽象,可以对其基本 表示的成分进行操作
第九节 抽象数据类型 1. 用户定义类型与内部类型的异同 ①都建立某种基本表示的抽象 如:integer是位串的抽象; reg_polygon是记录的抽象 ②每一类型都关联一组操作 ③内部类型隐蔽了基本表示,不能对 它的成分进行操作;用户定义类型具 有更高级别的抽象,可以对其基本 表示的成分进行操作

2.抽象数据类型的定义 满足下述特性的用户定义类型称为抽象 数据类型 ①在实现该类型的程序单元中,建立与 表示有关的基本操作; ②对使用该类型的程序单元来说该类 型的表示是隐蔽的
2. 抽象数据类型的定义 满足下述特性的用户定义类型称为抽象 数据类型: ①在实现该类型的程序单元中,建立与 表示有关的基本操作; ②对使用该类型的程序单元来说,该类 型的表示是隐蔽的

SIMULA67的类机制 1类的说明 类体> 包括类名和形式参数 类体是传统的分程序,可包含变量、过程 和类的局部说明,以及一些执行语句 例:复数表示(幅角半径)
一. SIMULA 67的类机制 1.类的说明 ; 包括类名和形式参数 是传统的分程序, 可包含变量、过程 和类的局部说明,以及一些执行语句 例:复数表示(幅角,半径)
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《程序设计语言与编译》课程PPT教学课件(高职)第九讲 SIMULA 67协同程序.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十一讲 一类说明语句的翻译.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十五讲 循环优化.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十四讲 代码优化.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十三讲 控制语句也可采用改写文法的方法.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十七讲 栈式分配.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十六讲 运行时存储空间管理.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十讲 含数组元素的赋值语句的翻译.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十二讲 一类控制语句的翻译.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二讲 强制式语言.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第八讲 控制结构.ppt
- 重庆大学材料学院:《计算机在材料工程中的应用》第一章 计算机应用的数学基础(汤爱涛).ppt
- 重庆大学材料学院:《计算机在材料工程中的应用》第五章 材料数据库与专家系统 (汤爱涛).ppt
- 重庆大学材料学院:《计算机在材料工程中的应用》第四章 计算机辅助材料的测试与分析(汤爱涛).ppt
- 重庆大学材料学院:《计算机在材料工程中的应用》第三章 相图的计算机分析与计算(汤爱涛).ppt
- 重庆大学材料学院:《计算机在材料工程中的应用》第二章 材料科学中的数值模拟与计算(汤爱涛).ppt
- 《photoshop》讲义(电子课件).doc
- 《计算机图形学》课程教学资源:第2章 实面积图形的生成(赵立强).ppt
- 《Matlab入门教程》教学资源:学习参考资料.doc
- 《计算机网络技术教程》第9章 各种n7网络工作站的连接.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第七讲 抽象数据类型.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第三讲 程序单元.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十八讲 SLR分析表的构造.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十二讲 编译概述.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十讲 程序设计语言和编译程序.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十九讲 代码生成和代码优化.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十六讲 优先关系表的构造.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十七讲 LR分析法.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十三讲 自顶向下语法分析.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十四讲 预测分析程序.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十五讲 自底向上语法分析.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十一讲 自动机.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第四讲 用户定义类型.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第五讲 组合类型.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第一讲 绪论(主编:王晓斌).ppt
- 宜宾职业技术学院:《实用组网技术》课程教学资源_期末一.doc
- 宜宾职业技术学院:《实用组网技术》课程教学资源_实践考试方案.doc
- 宜宾职业技术学院:《实用组网技术》课程教学资源_期末二.doc
- 宜宾职业技术学院:《实用组网技术》课程教学资源_期末三.doc
- 宜宾职业技术学院:《实用组网技术》课程教学资源_网络工程方案设计.doc