第3章值与类型-程序设计语言原理.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章值与类型-程序设计语言原理

第3章 值与类型 数据是计算机加工的对象,无论是什么计算机程序不外乎希望经过计算得到我们需要的数据值或者计算机的一组动作(一般都包括数据值的改变)。值是对事物性态的表征或度量。没有值就没有计算。对人类最有价值的东西是数据值,如电话号码簿、人口普查数据、卫星采集地球数据、金融数据、军事情报数据、气象天文数据……计算机科学把数据研究看作是重要课题就不足为奇了。 本章讨论程序世界的值与类型。因为和客观世界值一样它总是分类的。程序中的值寓于常量、变量之中。变量由于有时、空特性因而引起一系列特点:左值、右值、当前值、赋值,以及名、值分离的引用等。过程式语言特征无不与此相关。接着介绍值应是头等对象概念。这与类型完整性原则是一致的。 本章第二部分是讨论一般语言内定义给出的基本类型、复合类型和递归类型,以及它们的数学表示。并初步引入类型系统概念,以及有关类型的若干术语、准则。 本章第三部分是讨论与求值密切相关的表达式。从表示法,类别到求值顺序的优先级和结合性,以及混合计算时类型的兼容性。本节的论述力求不陷于具体语言,但仍以具体语言为说明的例子。 第四部分给出小结。 3.1 值 值是对事物性态的表征和度量,而表征和度量总是在某个论域的某个抽象层次上,讨论问题的抽象层次不同取值也不同。例如,与一个人的“年岁”相关的值: 医疗档案中取值:{ 成人,儿童,婴儿 } 接班人会议记录中:{ 老年,中年,青年 } 户口登记簿:{ 1..100 } 从操纵值的角度看值是对数据指称的语义内含的表征。‘年岁’是有关一个人多么大的数据指称。它可以在语义域 {1..100}或{老年,中年,青年} 或 {成人,儿童, 婴儿} 中取一个值。数在度量上有其准确性,但如上例示,值不一定是数值。我们把数据的指称叫做数据的‘名字’,其语义内容的表征为‘值’。每个数据都有其所在论域上的名、值。 然而,每个表征又可以用更详细的语义表征表示它,例如:成人:{老年、中年、青年} 或{18..100} 。再如,青年:{15..25} 。这样上层抽象的值是下层抽象的名。那么‘最’下层的值有没有名呢?从表示法约定有最下层。例如在数学系统、计算机程序世界整数123、实数123.45就是最下层了。它的名就是数字‘123’序列,是它的指称!值就是约定的语义解释“一百贰拾叁”。如果约定不同,名为‘123’的值是‘83(八进制)’。我们把一个符号的直接语义解释叫原子值(即在该论域层不可分为更细的解释了)。‘原子’事实上是相对的,进入到机器世界123更详细的表征是0000000001111011,‘位’(bit)的语义才是‘最’原子的。 值总是存在于约定的表示之中。 3.1.1 值与类型 客观事物是多种多样的,度量它们的值,就应分门别类。 程序世界的值一方面根据映射客观事物的需要,一方面根据计算机实现的可能也有不同类别。分类的准则是表示结构的一致(同样语法),同样的语义内涵,以及容许有同样的运算,这就是类型。每一个值都属于一个类型。一般说来,同类型的值相互运算结果仍为该类型的值。计算机中最基本的类型是: 整型 {...,-2,-1,0,1,2,...} ┌定点类型 {...-1.0,...,0,1.0,...} 实型│ └浮点类型 {…-.dddE-dd,….,.dddEdd,…} 字符型 {A,...,Z,a,...,z, } 真值型 {TRUE,FALSE} 枚举型 {枚举符号集} 以简单的基本类型可以构造结构类型: 元组 同/不同类型值的集合 数组 可索引的同类型值的集合 记录/结构 有标记不同类型值的集合 表 可递归操作的同类型值的集合 还可进一步组合成更复杂的复合类型: 串 可作串操作的字符序列。 其他专用或更复杂的类型。如整型用于指针操作的指针类型。用户定义的复合类型等。 同一数据类型的外延构成域(domain),计算机中一般约定有限域。 3.1.2 字面量、变量与常量 计算机中只能用名字操纵值。最直接的名字是字面量、变量、常量,即值的称谓。 字面量也称直接量,约定它的表示(名)就是它的值,且从它的表示可以得知其类型, 如123,1.23e10,s,stock,TRUE,dec,它们是整、实、字符、串、真值(布尔)、枚举

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档