第858章 面向对象
第858章面向对象(第1/2页)
七月十八日,长安理工大学礼堂。
这所大学是1953年由升龙迁来的理工学院扩建的。
当年从美国回来的留学生,都在这个学校里面任教或者搞研发。
这一天礼堂里面八百人的座位全部坐满。
韩景明走上台,把话筒从架子上拔下来,从容道:
“有些人可能是头一回见我,我叫韩景明。
1944年进加州理工,数学系。那一年班上有个同学,叫约翰·麦卡锡。”
说到这里,他抬起右手放在额头前面,仿佛在找什么人,
“麦卡锡,你今天来了没有?”
中段靠边的位置,一个高个子站起来,朝四周摆了摆手。
“他站起来了。”韩景明笑道,“你们看,他还认得我老同学。”
礼堂里响起一片笑声,鼓起掌来。
“我在加州理工待了两年,后面又到斯坦福念物理,混了一个博士学位后,回到了我自己的国家。
所以今天这个厅里,加州理工的人我认识一半,斯坦福的人我认识另一半。
很高兴和你们再次齐聚一堂,虽然你们当年没少在背后说我跑丢了学术前途。”
一场简单的开场白,直接将场子给热起来了。
他把话筒换到另一只手,左手扶在话筒支架上。
“在讲银河之前,先说几句废话。
最近有不少老同学和我之前的教授发来电报问我,银河是怎么造出来的。
我说,不是我们比别人聪明。我们只是在某些关键的地方,比所有人早走了半步。”
台下瞬间安静了下来。
“计算机这个东西,不是从我们这儿开始的。”
“一六四二年,帕斯卡做了一个加法器,用齿轮咬合,做出了十进制的计算工具。
用我们汉语的说法,就是逢十进一。还有一点,我们南华也有一个计算工具,叫算盘。”
说着他不知道从哪里掏出一个巴掌大的算盘举在手中,同时背后的荧幕也也换成算盘的照片。
“它的工作原理是五升十进制,同时也兼顾了十进制和十六进制,比帕斯卡的加法器早了几百年。”
“计算机的历史,在座的非常了解,我就不多介绍。
今天是银河的开发者大会的开幕式,我想说的是,计算机发展到现在,除了硬件的突破之外,还有他的软件编程。
最早是机器码,是一串零和一,只有造机器的人才能看得懂。
后来有了汇编,用助记符代替零和一,工程师不用再背二进制表了。
再后来有了FORTRAN,有了COBOL,有了ALGOL。
每一次语言的进步,都在做同一件事:让机器更懂人,而不是让人更懂机器。”
他转过身,指了一下荧幕,幕布亮出一行字:汉语,才是最懂计算机的母语。
当然,也很贴心的配上了英文,台下顿时响起了一片嘈杂之声。
韩景明微微提高了一下音量:“汉语是表意文字,一个字承载的信息量,往往比一个英文单词大。
这个特点放在编程里,意味着同样一个指令,用汉语写,可能比用英文写少占内存、少走几步运算。
银河的指令集、编译器、操作系统,全部是用汉语从头设计的。”
前排一个斯坦福的工程师举起手:“韩,用汉语写代码,别的国家的人怎么用?”
韩景明笑道:“终于有人问出这个问题了,你们可是不知道我等的有多辛苦。”
这话一出,台下一片欢声笑语。和315发布会一样,韩景明的主持,从来不会冷场。
“所以银河做了一个兼容层,叫【桥】。
当你你用FORTRAN写的程序,经过【桥】翻译成汉语指令,就能在银河计算机上面跑。
你用COBOL写的,也能跑。效率会打一点折扣,大约八成五。
不过效率打折扣的问题,只是相对于银河计算机本身来说。
不过银河能保证,同一套程序在不同的机器上跑,效率绝对是最高的,而且不会出错。”
(本章未完,请点击下一页继续阅读)第858章面向对象(第2/2页)
“但如果你想让你的程序在银河上跑到百分之百的效率,你们可以学习汉语。”
他放下指示棍,走到台前。
台下的面孔很杂,有各色各样的人,甚至还有穿深色西装的苏国人。
“今天来了不少老朋友,曼彻斯特的汤姆·基尔伯恩,我也看见你了。”韩景明朝第二排点了一下头。
台下传来一阵轻微的骚动。
汤姆·基尔伯恩坐在那里,头发灰白,脸色平静。
他比韩景明大十几岁,二战时就在曼彻斯特大学参与过“Baby”计算机的研制。
1962年,他的团队搞出了AtlaS,这是当时欧洲最强大的计算机,它率先实现了虚拟内存和分时处理。
他的虚拟内存、分页调度等核心发明,至今仍是所有现代计算机系统的基础。
韩景明在编写兼容层的时候,就曾经常出国拜访各个计算机的高手。
曼彻斯特去过几次,两人算是有过几面之缘。
基尔伯恩并没有站起来,只是朝着韩景明微微颔首。
韩景明直接点了他的名:“基尔伯恩教授,AtlaS的一级存储系统,虚拟内存和分时处理的理念,非常先进。
在银河的操作系统里面,就用到了这两项技术。
在这一方面,我要非常感谢您和AtlaS计算机。”
说完,他朝着基尔伯恩深深一鞠躬。
基尔伯恩这是站了起来,要来话筒,带着英格兰北部的口音说道:
“韩,AtlaS的虚拟内存是为了让一台机器同时跑多个程序。
银河的【桥】,是为了让一台机器同时跑多种语言。
思路不一样,但解决的问题有相通的地方。
我记得三年前你问过我在虚拟内存的管理上的问题。
我现在想问你,银河的汉语指令集在这个方面,有没有遇到我们当年碰到的那些问题?”
这是内行的问题。
机器的主存装不下整段程序,就得想办法把程序拆开。
一段一段换进来,换得不好,机器就停住一直等待,算力再高也使不上。
这时候,虚拟内存的好处就来了。
韩景明不假思索道:“当然遇到了,就算是照着正确答案抄写,也会有抄错的时候。
汉语指令的变长特性,让分页管理比英文指令复杂得多。
一个汉字占几个字节,取决于它用在什么地方。
我们在指令集设计阶段就做了对齐处理,但编译器优化的时候还是吃了不少苦头。
最后是用了三级页表才解决的。”
基尔伯恩点了点头,没有再追问。
这时候又有人站了起来,是个瘦高个,戴着一副很厚的眼镜,说话带北欧口音。
是克里斯汀·尼加德。他和同事达尔这几年在开发一个叫SimUla的编程语言。
“韩博士,我叫克里斯汀·尼加德,在挪威计算中心做的是模拟语言。
我们想把现实世界里的系统,用程序描述出来。
比如一个港口,有船、有码头、有货物。
每一样东西都有自己的属性,船有吨位、码头有泊位、货物有种类,而这些东西之间互相关联。
我们想用某种方式,把这些东西和它们之间的关系,直接写在程序里,您说可行吗?”
“你说的东西,你们管它叫什么?”韩景明问。
“还在讨论,不过已经有了初步的名字,对象或者类。
但我遇到一个问题,我想定义一个船的类型,它应该有吨位、航速、当前位置。
但这些属性是绑在一起的,我不想把它们拆成一堆单独的变量。
我不知道怎么在编程语言的层面上,把数据和操作数据的方法写在一起。”
——本人大学学过Java、C++等语言,凭记忆写的相关专业知识点。
已经竭尽所能写的让读者老爷们能看懂
一秒记住【顶点小说】
dingdian12345.com,更新快,无弹窗!