runoob.com,变量类型
编程语言为什么有变量类型这个概念?
▇ 首先,我们需要搞清楚类型的由来。编程语言中所谓的类型,具体指的是数据(包括对象)的类型。数据类型的产生有概念和物理两个方面因素:概念因素:数据因其本身内容在中我们脑子里对应的数学概念不同而进行的分类,常见类型有:数字(正整数、整数、小数、复数)、布尔、字符、符号、空、以及各种数据结构(字符串、数组、向量、列表、字典、集合、函数、... ),这些类型是在我们长期的数学应用中就形成的,是对外部概念的抽象;物理因素:我们在计算机语言中所定义的数据,最终需要实现在物理机器上,而非仅仅是大脑中的数学概念,这就要求,知道数据的大小、编码格式、等 这样的物理信息,根据这些信息就可以将数据分类,例如:C语言中,同样是整数却因大小不同而分为: char,short, long,long long,这些类型是因为物理实现而产生的;若,将所有计算机语言,按照接近程度,从机器到数学排成一列,则越靠近机器这边的语言,其数据类型越受物理因素影响,例如:汇编、C/C ,反之,越接近数学的语言的数据类型越会围绕数学概念进行设计,例如:Lisp、R、JavaScript。
▇ 接着,我们来看变量与数据类型的关系。在所有计算机语言中,大体有两种看待变量的方式:变量是保存数据的容器;变量是访问数据的入口;● 采用第一种方式的计算机语言:因为变量需要保存数据,所以变量受其保存的数据的类型制约。将数据保存到同类型变量的过程,称为赋值。在我们声明变量时,计算机要给这个变量分配内存,这时,计算机至少需要知道这个变量将来的赋值数据的物理大小,于是,计算机语言,不得不要求,声明变量时,必须指出其赋值数据的类型(包含物理大小信息)。
另一方面,根据数据类型对变量被分配的内存将伴随它的整个生命周期,同时,在访问变量中数据时还会使用数据类型,这就意味着,声明时指定的那个本意是赋值数据的类型变成了该变量的类型,这就是所谓的变量类型。这种,变量有类型的语言,称为强类型语言。● 采用第二种方式的计算机语言:其变量仅仅保存,数据在对象池中的,入口地址,而不保存数据。
将数据入口地址保存到变量的过程,称为绑定。我们在声明变量时,计算机只需要分配一个保存绑定地址的内存块就可以了,无需知道将要绑定的什么数据,于是变量也就没有了类型。这种,变量没有类型的语言,称为弱类型语言。▇ 最后,我们来比较一下强弱两种类型的语言。早期,强类型语言,都是编译(静态)语言,例如:C/C ,Fortran,Pascal 等,这类语言,没有强大的运行时来支持对象池,因此只能采用第一种方式。
而早期,弱类型语言,都是解释(动态)语言,例如:Lisp,Scheme 等,它们有强大的解释器,其中包括对象池,因此可以采用第二种方式。强类型语言,有一个非常大的优势,那就是:编译器知道变量的类型,可以提前检查赋值错误,再加上,编译语言的运行性能优势,这使得,强类型语言,在上世纪中叶很快成了主流。但是,强类型的优势也是缺陷,这就是:由于变量带有类型,所以代码和类型强关联,很难写出同时适用于多种类型的代码,为了修补这个缺陷,几乎同时出现了两种解决方案:从宏(模板)发展出来的泛型;面向对象(OOP);泛型使得,类型可以成为某个代码块的参数,在使用该代码块时被具体制定。
面向对象,利用继承让子类对象复用父类对象的代码块。在经过,泛型 和 OOP 改造后,强类型语言在千禧年前后,到达了顶峰,以至于这时,出现的 Java 和 C# 这样的动态编译语言,也采用强类型。但是,弱类型语言并非一无是处:没有变量类型是天然的泛型、OOP也可以引入、适用于脚本代码,因此,才有 JavaScript 和 Python 这样的 弱类型语言,随着 计算机性能的飞速发生使得 强类型语言的性能优势慢慢削弱,而弱类型语言的简单灵活慢慢凸显,这使得,如今的它们也正是 如日中天。
计算机源于数学,早在第一台计算机出现之前,数学家就对可行性计算问题进行了深入的研究,先后出来了:递归函数、λ-演算、图灵机,之后 图灵机称为了计算机体系结构的数学原理,而 λ-演算正是函数式编程的本质。因此,我们可以从数学角度来稍微看一下变量(常量)类型。在数学中,变量是有类型的,常见应用场景有:场景一:对于 任意 x ∈ ℝ,... ,例如:对于任意 a, b, c, d ∈ ℝ,都有 (a² b²)(c² d²) ≥ (ac bc)²;场景式二:令 x=1,..., 例如:令 K={(1),(1,2)(3,4),(1,3)(2,4),(1,4)(2,3)},则 S₄ 有正规群列 {e}⊲K⊲A₄⊲S₄;因此,强类型更符合数学,如场景一那样,于是有些的新兴强类型语言,会进一步吸收数学的特点,这些语言允许程序员不指定变量类型,它是通过上下文来推算出变量的类型,如场景二那样。
变量是否有类型,仅仅是计算机语言的类型系统的一部分,即便是同为,强或弱类型语言,其类型系统也差距较大,以下是一些类型系统具有代表性的语言:C语言,代表命令式编程,其类型系统以过程为核心进行设计;C 语言,代表传统多继承面向对象,其类型系统多继承类-对象为核心;Java语言,代表传统单继承面向对象,其类型系统单继承类-对象为核心,以接口弥补单继承的不足;JavaScript语言,代表原型链单继承面向对象,其类型系统构造函数-原型链为核心;Scala语言,代表加入特性的面向对象,特性的加入弥补的单继承的不足;Lisp语言,代表传统函数式编程,其类型系统以符号表达式为核心;Haskell语言,代表加入范畴的函数式编程,数学中的类型,就本质而言,就是基于集合(或者比集合更大的类)之上的各种数学系统,目前最大的代数系统是范畴,Haskell采用的就是以范畴为核心的类型系统;当然,类型系统,还包括宏和泛型,Scheme的卫生宏、C#的泛型,都是典型代表。
本文地址:http://2qiu.55jiaoyu.com/show-734807.html
本文由合作方发布,不代表展全思梦立场,转载联系作者并注明出处:展全思梦
推荐文档
- 11.往年大连中考满分是多少
- 12.为什么说学播音毁一生,原因有哪些
- 13.淘宝店铺的优质好评语大全
- 14.考研可改变第一学历吗、专科考研可以改变第一学历吗
- 15.民学网查出的学历国家承认吗(民学网查出的学历国家承认吗是真的吗)
- 16.往年轻薄商务笔记本电脑推荐-商务轻薄本性价比排行
- 17.承德护理职业学院(承德护理职业学院2023年招生计划)
- 18.wreak是什么意思wreak的翻译(wake,area是什么意思中文翻译)
- 19.电子科技大学A+类学科名单有哪些(含A、B、C类学科名单)
- 20.systematic是什么意思systematic的翻译(systematically是什么意思中文翻译)
- 21.leant是什么意思leant的翻译(lean,on什么意思中文意思)
- 22.华南农业大学是几本大学,华南农业大学是一本还是二本
- 23.包头中考考试科目时间预测安排,包头中考考哪几门考哪些课程
- 24.高考430分能上什么大学,430分高考能报啥学校
- 25.朱自清的散文代表作有什么(朱自清的散文代表作有什么散文集有什么散文诗集有什么)
- 26.浙江有几所大学是985和211,全国985和211大学名单汇总
- 27.i5,1155G7和R5,5600U哪款好-对比评测
- 28.荷兰什么叫-荷兰弟为什么叫荷兰弟,出演蜘蛛侠原因曝光
- 29.警察警衔工资改革新政策及新方案【全文】解读
- 30.电大专科(电大专科毕业论文)
- 31.广东省高级技工学校官网
- 32.广州大学专科
- 33.大连陆军学院,原大连陆军学院校址现在什么是什么学校
- 34.亲们,谁给一份南京大学的研究生招生简章?(河海大学
- 35.他日若遂凌云志全诗及出处
- 36.铜绿的化学式是什么有哪些性质
- 37.「佛山市顺德养正西山学校初中部」往年录取分数线
- 38.公办本科(公办本科和民办本科有什么区别)
- 39.外交学院是名牌大学吗
- 40.往年湖南高考成绩排名一分一段表
- 41.全国有8所烟草院校是哪些(这4所大学门槛低)
- 42.私人垄断资本主义基本概念是私人垄断资本主义
- 43.难以启齿,这8部影片可以一看(性教育适合看的影片)
- 44.美国独立战争的性质爆发战争的原因是什么
- 45.往年东莞市高中排名前十最新
- 46.大朗网络教育(大朗教育)
- 47.往年甘肃省高中排名最好的高中
- 48.逻辑思维训练有哪些方法优秀训练方法推荐
- 49.浙江大学教务管理系统
- 50.人类的动物老师有哪些这属于什么学科
- 51.往年山西高考状元榜_山西历届高考理科状元和文科状元
- 52.往年北京舞蹈学院艺术类招生简章招生人数及专业
- 53.航空最好的5个专业就业前景如何
- 54.太原科技大学怎么样及评价好不好太原科技大学口碑如何
- 55.满招损谦受益这句话的意思是什么出自哪
- 56.舍本逐末发生在什么时期含义是什么
- 57.女孩子首选十大专业什么专业适合女生
- 58.国防生是什么意思指的是什么
- 59.河南省三本学院有哪些2018最新三本院校名单
- 60.往年龙岩高中学校排名榜单龙岩十大优秀高中
- 51.丹金大道什么时候完工,5公里丹金大道拉开城市新格局
- 52.国网五系统一中心是什么,王继业不再担任中心主任
- 53.梁祝dj版纯音乐手机铃声,中国古典手机铃声
- 54.汉字为何不能拼音化,大会的拼音
- 55.全国卫生人才网,中国卫生人才网报名
- 56.浙大网新图灵,浙大网新总裁史烈的个人简历
- 57.远距离监听设备,哪里买,录音室监听设备的选择
- 58.中国液晶网,中华液晶网人才市场
- 59.华为nova7内存256多少钱(华为nova7se内存256多少钱)
- 60.华强北远望手机最新报价单,今日华强北远望报价单
- 61.景哈大桥什么时候修好,农发行3亿资金助力景哈大桥建设
- 62.农工委住官什么局,市委农工委系统集体观看庆祝大会
- 63.桥梁工程投标文件中设计项目任务书怎么写,109.32亿元PPP项目投资协议签订
- 64.柳市附近哪里有采摘园,走进柳市的美丽庭院
- 65.夏邑中医院专治什么地方,关于对夏邑县中心医院
- 66.安陆府河国家湿地公园在哪里,湖北安陆府河国家湿地公园预计年底建成
- 67.热电二厂什么时候搬走啊,一期交付满意度超90%
- 68.为什么冷却液不用氦气,东京迪士尼氦气球停售
- 69.往年政府支持什么项目,银保监会陆续发布金融支持乡村振兴文件
- 70.福建瑞晟公司怎么样,这几家公司获得了银联外包收单资质

