35中文网 > 开局桂系,家父李德邻 > 第858章 面向对象

第858章 面向对象

    七月十八日,长安理工大学礼堂。

    这所大学是1953年由升龙迁来的理工学院扩建的。

    当年从美国回来的留学生,都在这个学校里面任教或者搞研发。

    这一天礼堂里面八百人的座位全部坐满。

    韩景明走上台,把话筒从架子上拔下来,从容道:

    “有些人可能是头一回见我,我叫韩景明。

    1944年进加州理工,数学系。那一年班上有个同学,叫约翰·麦卡锡。”

    说到这里,他抬起右手放在额头前面,仿佛在找什么人,

    “麦卡锡,你今天来了没有?”

    中段靠边的位置,一个高个子站起来,朝四周摆了摆手。

    “他站起来了。”韩景明笑道,“你们看,他还认得我老同学。”

    礼堂里响起一片笑声,鼓起掌来。

    “我在加州理工待了两年,后面又到斯坦福念物理,混了一个博士学位后,回到了我自己的国家。

    所以今天这个厅里,加州理工的人我认识一半,斯坦福的人我认识另一半。

    很高兴和你们再次齐聚一堂,虽然你们当年没少在背后说我跑丢了学术前途。”

    一场简单的开场白,直接将场子给热起来了。

    他把话筒换到另一只手,左手扶在话筒支架上。

    “在讲银河之前,先说几句废话。

    最近有不少老同学和我之前的教授发来电报问我,银河是怎么造出来的。

    我说,不是我们比别人聪明。我们只是在某些关键的地方,比所有人早走了半步。”

    台下瞬间安静了下来。

    “计算机这个东西,不是从我们这儿开始的。”

    “一六四二年,帕斯卡做了一个加法器,用齿轮咬合,做出了十进制的计算工具。

    用我们汉语的说法,就是逢十进一。还有一点,我们南华也有一个计算工具,叫算盘。”

    说着他不知道从哪里掏出一个巴掌大的算盘举在手中,同时背后的荧幕也也换成算盘的照片。

    “它的工作原理是五升十进制,同时也兼顾了十进制和十六进制,比帕斯卡的加法器早了几百年。”

    “计算机的历史,在座的非常了解,我就不多介绍。

    今天是银河的开发者大会的开幕式,我想说的是,计算机发展到现在,除了硬件的突破之外,还有他的软件编程。

    最早是机器码,是一串零和一,只有造机器的人才能看得懂。

    后来有了汇编,用助记符代替零和一,工程师不用再背二进制表了。

    再后来有了FORTRAN,有了COBOL,有了ALGOL。

    每一次语言的进步,都在做同一件事:让机器更懂人,而不是让人更懂机器。”

    他转过身,指了一下荧幕,幕布亮出一行字: 汉语,才是最懂计算机的母语。

    当然,也很贴心的配上了英文,台下顿时响起了一片嘈杂之声。

    韩景明微微提高了一下音量:“汉语是表意文字,一个字承载的信息量,往往比一个英文单词大。

    这个特点放在编程里,意味着同样一个指令,用汉语写,可能比用英文写少占内存、少走几步运算。

    银河的指令集、编译器、操作系统,全部是用汉语从头设计的。”

    前排一个斯坦福的工程师举起手:“韩,用汉语写代码,别的国家的人怎么用?”

    韩景明笑道:“终于有人问出这个问题了,你们可是不知道我等的有多辛苦。”

    这话一出,台下一片欢声笑语。和315发布会一样,韩景明的主持,从来不会冷场。

    “所以银河做了一个兼容层,叫【桥】。

    当你你用FORTRAN写的程序,经过【桥】翻译成汉语指令,就能在银河计算机上面跑。

    你用COBOL写的,也能跑。效率会打一点折扣,大约八成五。

    不过效率打折扣的问题,只是相对于银河计算机本身来说。

    不过银河能保证,同一套程序在不同的机器上跑,效率绝对是最高的,而且不会出错。”

    “但如果你想让你的程序在银河上跑到百分之百的效率,你们可以学习汉语。”

    他放下指示棍,走到台前。

    台下的面孔很杂,有各色各样的人,甚至还有穿深色西装的苏国人。

    “今天来了不少老朋友,曼彻斯特的汤姆·基尔伯恩,我也看见你了。”韩景明朝第二排点了一下头。

    台下传来一阵轻微的骚动。

    汤姆·基尔伯恩坐在那里,头发灰白,脸色平静。

    他比韩景明大十几岁,二战时就在曼彻斯特大学参与过“Baby”计算机的研制。

    1962年,他的团队搞出了AtlaS,这是当时欧洲最强大的计算机,它率先实现了虚拟内存和分时处理。

    他的虚拟内存、分页调度等核心发明,至今仍是所有现代计算机系统的基础。

    韩景明在编写兼容层的时候,就曾经常出国拜访各个计算机的高手。

    曼彻斯特去过几次,两人算是有过几面之缘。

    基尔伯恩并没有站起来,只是朝着韩景明微微颔首。

    韩景明直接点了他的名:“基尔伯恩教授,AtlaS的一级存储系统,虚拟内存和分时处理的理念,非常先进。

    在银河的操作系统里面,就用到了这两项技术。

    在这一方面,我要非常感谢您和AtlaS计算机。”

    说完,他朝着基尔伯恩深深一鞠躬。

    基尔伯恩这是站了起来,要来话筒,带着英格兰北部的口音说道:

    “韩,AtlaS的虚拟内存是为了让一台机器同时跑多个程序。

    银河的【桥】,是为了让一台机器同时跑多种语言。

    思路不一样,但解决的问题有相通的地方。

    我记得三年前你问过我在虚拟内存的管理上的问题。

    我现在想问你,银河的汉语指令集在这个方面,有没有遇到我们当年碰到的那些问题?”

    这是内行的问题。

    机器的主存装不下整段程序,就得想办法把程序拆开。

    一段一段换进来,换得不好,机器就停住一直等待,算力再高也使不上。

    这时候,虚拟内存的好处就来了。

    韩景明不假思索道:“当然遇到了,就算是照着正确答案抄写,也会有抄错的时候。

    汉语指令的变长特性,让分页管理比英文指令复杂得多。

    一个汉字占几个字节,取决于它用在什么地方。

    我们在指令集设计阶段就做了对齐处理,但编译器优化的时候还是吃了不少苦头。

    最后是用了三级页表才解决的。”

    基尔伯恩点了点头,没有再追问。

    这时候又有人站了起来,是个瘦高个,戴着一副很厚的眼镜,说话带北欧口音。

    是克里斯汀·尼加德。他和同事达尔这几年在开发一个叫SimUla的编程语言。

    “韩博士,我叫克里斯汀·尼加德,在挪威计算中心做的是模拟语言。

    我们想把现实世界里的系统,用程序描述出来。

    比如一个港口,有船、有码头、有货物。

    每一样东西都有自己的属性,船有吨位、码头有泊位、货物有种类,而这些东西之间互相关联。

    我们想用某种方式,把这些东西和它们之间的关系,直接写在程序里,您说可行吗?”

    “你说的东西,你们管它叫什么?”韩景明问。

    “还在讨论,不过已经有了初步的名字,对象或者类。

    但我遇到一个问题,我想定义一个船的类型,它应该有吨位、航速、当前位置。

    但这些属性是绑在一起的,我不想把它们拆成一堆单独的变量。

    我不知道怎么在编程语言的层面上,把数据和操作数据的方法写在一起。”

    ——本人大学学过Java、C++等语言,凭记忆写的相关专业知识点。

    已经竭尽所能写的让读者老爷们能看懂