- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
类型-北京大学数学科学学院
程序设计语言原理
Principle of Programming Languages
裘宗燕
北京大学数学学院
2012.2~2012.6
4. 类型
类型机制及其作用
类型检查
类型等价和类型相容
类型转换和强制
基本类型
用户定义类型
数据类型与存储管理
多态性
类型推理
2012年3月 2
语言的类型机制
类型是程序语言中最重要的特征之一
在目前的常规程序语言里,类型机制的基本方案是:
• 提供一组基本类型(内部类型、预定义类型,是一些基本数据集合),
包括类型名,类型值的字面描述方式,为每个类型提供一组基本操作
• 提供一组类型构造机制,可以用它们描述程序所需的新的值形式;或描
述(定义)新类型的构造。声明的类型称为用户定义类型
用户定义类型的重要用途:
• 作为描述简单的值或类型的手段,如枚举类型
• 组合已有类型,构造复合的值或者复合类型。复合类型的值可以有复杂
的内部结构,以满足各种应用的需要
• 可能为用户定义类型约束相关操作,使之像内部类型一样易于使用
基本类型是一组类型抽象。使用时不必了解各种类型的值的表示,不必了解
其操作如何实现,就可以通过类型名和相应操作使用它们
2012年3月 3
类型机制:历史
程序设计语言里的类型机制随时间和人们的认识不断发展:
早期语言如Fortran/Algol 60 只有基本类型
• 如整数、实数和字符(或字符串),是硬件直接支持的各种数据类型在
高级语言层面的反映
• 允许定义数组变量,但数组不是清晰的类型
Lisp 提供了一种“表”结构作为基本数据构造手段
• 可以灵活构造各种值
• 可用于模拟各种复杂的类型机制
Pascal 语言引进类型构造和定义机制(可以给新类型命名)
• 明确提出了相应的类型等价和相容规则
• 其中的用户定义类型还不是今天意义下真正的类型
不支持为把定义的类型关联所需的操作
2012年3月 4
类型机制:历史
大致同年代的C 语言的类型机制比Pascal 更弱
• 其中没有真正的用户定义类型机制
• typedef 是后来ANSI C 增加的,只是用于为原本可以描述的类型描述
引进一个“别名”,不作为独立的具有区分意义的类型
更新的语言,包括新的主流语言如Ada 、C++ 和Java
• 类型定义机制更完善
• 目标是使用户类型定义和内部类型具有同等地位(甚至更多)
有关类型理论的开拓性研究和实验主要在各种函数式语言里进行
• 人们先后在Lisp,ML,Haskell 等语言里深入研究了类型的各种问题
• 包括实际问题和理论问题
下面主要从实践的角度讨论高级语言的类型问题
也要涉及到类型实现中的一些问题
2012年3月 5
类型的作用
类型有许多作用:
对程序处理的值的概念划分(表示什么?如何操作?... )
控制对于相关的值的使用方式
为相关操作的执行提供隐含上下文环境。例如Pascal 的new(p) 将根据p
的(指向)类型在堆中分配存储,+ 运算符根据类型进行解析
可能更有效实现(不同类型值需要的存储量可能不同,通过类型能更好利
用存储;可能静态处理与类型有关的问题,减少动态运行开销)
支持静态的类型检查,有助于发现各种各样的编程错误
使人可以基于类型来组织程序里的计算过程,确定操作的可用性和操作方
式(例如:重载解析
您可能关注的文档
最近下载
- 智慧城市云计算大数据中心项目深化设计方案(403页word).docx VIP
- 全国高中青年数学教师优质课大赛一等奖《基本不等式》教学设计.doc VIP
- 中华民族共同体概论第一讲 中华民族共同体基础理论part1.pptx VIP
- 儿童绘本改编与创作教案.pdf VIP
- JGJ-T291-2012:现浇塑性混凝土防渗芯墙施工技术规程.pdf VIP
- 实施指南《GB_T18944.2-2022柔性多孔聚合物材料海绵和发泡橡胶制品规范第2部分:模制品与挤出制品》实施指南.docx VIP
- 2022新能源风电场接入集控中心技术方案.doc VIP
- 白头翁的故事培智.ppt VIP
- 应聘人员登记表单.docx VIP
- 5S_培训教材.ppt VIP
文档评论(0)