董韫美:在空白荒原拓出中国软件之路
董韫美在美国斯坦福大学访问。
1957年,董韫美(右二)、李开德(右六)等程序设计小组成员合影。 ■本报见习记者 樊晓丽
1956年初秋,北京西苑大旅社三号楼。这栋普通的灰色砖楼,当年是中国科学院计算技术研究所筹备委员会(以下简称筹备委员会)的临时办公地点。就在几个月前,新中国的第一个科技远景规划将计算技术列为四大紧急措施之一。到了年底,来自全国各地的314名科研人员汇聚于此,中国的计算机事业由此起步。
在这314人中,有一位20岁的青年,刚从东北人民大学(吉林大学前身)数学系毕业,他叫董韫美。此后70年,从青葱学子到中国科学院院士,董韫美主持研制出国内最早的实用高级程序语言BCY并完成了相应的编译程序、提出参量图形学方法、创立上下文无关语言上的递归函数(CFRF)理论。在中国软件事业的荒原上,他一步一个脚印地拓出了路。
今年1月28日,董韫美在北京逝世,享年90岁。近日,中国科学院软件研究所举办“弘扬董韫美先生科学精神”座谈会,追忆他一生严谨治学、潜心科研、淡泊名利的故事。
“重新学过,心中才觉得踏实”
董韫美有个习惯:凡事必须从根源弄清楚,从不满足于侥幸过关,只求根基牢靠。
1952年,16岁的董韫美离开故乡昆明,北上长春,进入东北人民大学数学系。北国的严寒让他很快病倒了,脸肿得连眼睛都睁不开,小腿一按一个坑。住院检查排除心脏和肾脏的问题后,医生嘱咐他加强营养、避免过劳。
大一下学期临近结束,他不得不考虑:留级还是想办法跟班升级?
“我不甘心就此留级一年。”多年后,董韫美在回忆文章中写到,大约在期末考试前半个月,他和一位情况类似的同学相约,自学补上所有课程,参加期末考试,争取跟班升级。
时间太紧,又不想让同学们知道,他们就在夜间熄灯后躲在宿舍楼的地下室里看书。期末第一门考的是高等代数,董韫美得了满分,且是全年级少数得满分的人之一。后面两门,他也均取得了满分的好成绩。
但这样的结果并没有让董韫美满意。他回忆说,那年暑假,他“又把侥幸过关的数学课重新学过,心中才觉得踏实了许多”。
正是这份执拗,让董韫美在此后的工作中,把每一次危机都变成了筑牢根基的契机。
早在1957年,董韫美就担任了筹备委员会程序设计组组长。1958年夏天科研力量调整后,虽然组长换了人,但他仍是组里的骨干。1959年,中国科学院计算技术研究所正式成立。1960年,董韫美参加了我国当时最大的计算机104机编译程序的总体设计,随后又被派往中国科学院物理研究所参与晶体结构分析标准程序系统的研制。
不久后,104机编译程序进入联调阶段,却遇到了很大困难:原来的设计人员大多已经离开,留下的资料不仅残缺,还有不少错误,调试工作难以继续。紧要关头,董韫美临危受命,与同事李开德一道设法找出编译程序中的问题。
“有两种办法可供选择:一是干脆放弃,二是设法把工作继续做下去。当时觉得弃之可惜。”董韫美在回忆文章里写道。最终他们选择了后者。每天看几十条程序,反复推测、验证、再推测,整整看了三四个月。“在此过程中,需要作出大量的猜测并一一予以验证,一点一滴地弄清楚这个程序究竟可以接受什么样的输入信息、进行何种加工、产生什么样的输出结果。”最终,他们弄明白了104机编译程序,为顺利调试和改错提供了依据。104机编译程序成为国内第一个能够运行的编译程序。
这段艰难的攻关历程,在多年后仍被同行反复提及。中国科学院院士陆汝钤回忆说:“唐稚松院士曾告诉我,董韫美先生可以编上千行程序而无一错误,在计算机上运行一次就通过。”
董韫美的学生、中国科学院软件研究所研究员陈海明解释道:“在靠纸带输入机器代码的年代,大部分人需要先通过调试器反复调试、排错,才能让程序跑通。更何况当时的机器性能极其不稳定,经常跑几个小时就会出故障。这意味着每一个细节都不能出错。”他总结道,“这是大家都做不到的,但董老师做到了。”
对董韫美来说,这次攻关带来的思想启迪,远比调试成功的成果更为珍贵。他由此确立贯穿一生的科研准则:“必须把编译程序(乃至一般的软件)工作置于一个坚实可靠的基础之上……一旦决定要做,绝不要吝惜自己的精力。”他庆幸自己在从事软件工作的初期,就把这个观念牢固地树立起来,这让他在以后的工作中受益匪浅。
“一个人竟能完成如此多的工作,真是了不起”
1962年,董韫美所在的程序组转向研究当时国际前沿的ALGOL60语言。次年,他与李开德提出了一种新的语法模型“P语法”,研究用数学方式精确描述程序语言的规则。1964年至1965年,他把这个理论变成了现实:主持研制出国内最早的实用高级程序语言BCY,并在119机上成功运行。
BCY在借鉴ALGOL核心思想的同时,删繁就简,让程序设计更简洁,也更贴近中国计算机的硬件实际。此外,它还开创性地支持汉字书写,降低了程序员的学习门槛。从技术水准看,这套编译系统与当时国际主流编译系统不相上下。
那一年,董韫美不到30岁。
BCY后来被用于109丙机和015机。其中,109丙机为“两弹一星”研制工作了15年;015机连续运行16年,被誉为“功勋计算机”。使用单位对BCY编译系统作出了这样的评价:“该系统功能齐全、使用方便、易于掌握,且编译系统编译效率较高,生成代码运行效率高。经较短的使用维护期后即投入正常使用,性能稳定。该系统在我单位某尖端系统的研制工作中发挥了重大作用。”
正是这段日夜攻坚的科研之旅,使董韫美与李开德走到了一起。1966年9月,两人结为伉俪。往后的岁月,他们是并肩前行的同道,也是相濡以沫的爱人。
1978年11月,42岁的董韫美赴美国斯坦福大学任访问学者,合作导师是程序设计大师高德纳(Donald Knuth)教授。当时高德纳正投身于计算机排版系统TeX和字体设计系统Metafont的研制。
彼时,汉字信息处理是困扰国际学术界的重大难题。常用汉字有六七千个,每个字还要区分字体、字号,不同输出设备又要求不同规格的字库;应用场景一变,字库就得重新建设。
董韫美换了一个思路:不存储字形,而是让计算机学会“写”字。他提出“参量图形学方法”,将汉字视为二维图形,设计专门的作图语言来描述组字过程,仅需调整几个参数就能改变笔画粗细、字形大小、笔形风格。为了模拟毛笔的提笔与顿挫,他甚至设计了7种不同形状的“虚拟笔”,通过曲线运动,控制字体粗细变化。
1979年夏天,董韫美先做了一个试验性系统验证可行性,随后又用了整整1年,将其研制成一套可运行的系统LCCD。1980年,LCCD系统在斯坦福大学人工智能实验室成功运行。当时高德纳正在再版《计算机程序设计艺术》,书中涉及东方人姓名,需要用汉字排印,这一需求此前难以实现。董韫美的LCCD系统正好解决了这一难题。1981年,该书第二卷新版问世,索引中首次出现了汉字。
同年,斯坦福大学校报报道了这项成果,并引用了高德纳的评价:“一个人竟能完成如此多的工作,真是了不起……董韫美的工作是该项目和中国文化的一大成功。”
回国后,董韫美在“六五”国家科技攻关计划的支持下,进一步完善了这套方法。1985年3月,中国科学院软件研究所成立,董韫美成为该所的一员,并在这里继续推进汉字字形设计的研究。第二年,他在计算机上研发出汉字字形设计系统CCDS,用该系统设计了国标GB2312-80的6763个汉字的宋体字形,完成了从理论验证到规模化应用的关键跨越。
“与其跟风,不如潜心研究自己的方法”
董韫美始终秉持一条科研选题标准:顶尖学者要从事前沿领域的原创性研究,而不是跟风研究。在他看来,要准确判断一个领域是不是前沿领域,需要深厚的学术功底与敏锐的洞察力,而这恰恰是最难的。他曾对学生说:“与其跟风,不如潜心研究自己的方法。”
这种不盲从的判断力,同样体现在他如何看待一项成果的价值上。2003年,中国科学技术大学教授陈国良在准备一份材料时提到,团队与水利部合作开发的淮河防洪防污调度系统,在淮河流域特大洪涝灾害中发挥了重要作用,经测算挽救了上百人的生命。陈国良就成果总结向董韫美请教。董韫美看后说:“这份成果最珍贵。能够实实在在守护百姓生命安全、减灾安民,本身就是沉甸甸、无可替代的社会价值。”
无论是选方向还是评成果,董韫美的判断依据始终是一个朴素的问题:这件事本身到底有没有价值?
20世纪80年代中期,软件行业深陷“软件危机”:成本失控、进度拖期、质量难保。人们逐渐意识到,功能相近的软件被反复开发,浪费惊人。“软件复用”被国际学术界视为摆脱这一困境的关键出路。
当时的研究大都集中在技术层面:如何把代码存起来、如何方便调用。董韫美却更进一步地认识到,代码如果晦涩难懂,别人看不懂,何谈复用?他把“可理解性”和“可复用性”视为一体两面,为学术界开辟了一种全新的视角。
董韫美主持研制了国内第一个可复用软件设计系统URS-1,让程序员写程序变成在“仓库”里找构件,用中文写明设计思路,再组装成新程序。1990年,他与李开德在《软件学报》创刊号发表论文阐述这一思想。这项成果获1991年中国科学院科技进步奖一等奖、1992年国家科学技术进步奖二等奖。
2013年,中国计算机学会将终身成就奖授予董韫美。
“我做事希望能够做到心中有数”
晚年,董韫美身体欠佳,喜欢钻研医学书籍。做白内障手术前,他读了大量关于白内障的书。中国科学院院士梅宏曾问他为什么要自己钻研医书,他说:“我做事希望能够做到心中有数。”
实际上,这种“一丝不苟”,贯穿了董韫美的一生。
梅宏回忆,2006年他负责编辑董韫美独著的一篇论文,“从审稿到最终发表,有过多轮交互,其间感受最大的就是认真、细致、严谨”。
作为董韫美的博士生,深圳理工大学校长樊建平对导师的严格指导同样记忆深刻。“十余篇学术论文,董先生逐字逐句帮我修改;博士论文更是细致打磨至每一个标点符号。他从不放过任何一处逻辑漏洞、一个文字疏漏。”樊建平说,“他让我明白,科研容不得半点敷衍,唯有精益求精,方能行稳致远。”
董韫美的学生、中国科学院软件研究所研究员张健也记得,董韫美曾多次叮嘱他:“你想法多,这是好事;但是,在一段时间里最好集中精力做好一件事。做多件事但都没有达到满意程度,不如做好一件事情。”
董韫美对学生如此,对爱人亦如此。
他和李开德不仅是学术伙伴,还是生活伴侣。二人早年同在一个项目组工作,合作发表了多篇学术论文。然而晚年,李开德被确诊为阿尔茨海默病。董韫美带着她跑遍北京多家医院,自己研读医学书籍,就像当年研究编译程序一样,逐字逐句琢磨护理方法。他想帮老伴尽量稳住病情,不让它恶化太快。照顾李开德的那些年,吃喝用药、日夜陪伴,全是他亲力亲为。
随着年纪渐长,两人又一起住进了养老院。那时,即使妻子有护工照料,董韫美依然每天亲自过问妻子的饮食、用药、起居。
今年初,李开德突发急性肺炎离世。重病中的董韫美备受打击,在不到一个月时间里溘然长逝了。
从1956年到2026年,中国计算机软件事业走过70年。董韫美是这70年中为数不多的全程参与者,他亲历了中国软件从一行行代码到自主生态的蜕变。董韫美提出的理论、取得的开创性成果,深植于中国计算机事业的土壤之中,一起沉淀下来的还有宝贵的精神财富。