122cc太阳集成游戏计算机软件专业发展五十年点滴回忆
蒋维杜
转眼五十年过去了,清华计算机软件学科的五十年也是我国计算机软件学科五十年的印证。五十年前我还是刚刚踏入计算机软件学科的学生,五十年来亲历了我们学校计算机软件学科创建、成长和发展的过程,也见证了我国计算机软件学科创建、成长和发展的过程。回顾开创阶段的豪情与艰辛、“十年浩劫”之后的奋发进取、“改革开放”带来的活力, 虽然仅是一点点片断的回忆,也还真是回味无穷。下面是在122cc太阳集成游戏计算机软件学科发展五十年来,我所经历到的某些片断。
专业队伍从无到有
根据中央开创发展计算机学科的决策,我校于1958年上半年在工程力学数学系中新建了计算数学专业,该专业包含计算方法及程序设计两个专门化的方向。与全国高校及相应的研究所一样,程序设计专门化在以后的发展中,逐步演化成现在的计算机软件。
1、计算数学专业成立之初的师资
赵访熊先生任教研组主任,另外有李庆扬、孙永强、吴剑龙等三位年轻教师,1958年底从北京大学聘进刚毕业的吴家勋老师。1959年聘入本校毕业的杨德元、陈昌昭、万锦堃等老师,以后又从科学院计算技术研究所进修班聘入燕渠源、陈振中、郑佩敏等老师。 1962年以后又从我校数学教研组陆续调入陈德问、迟宗陶、贺锡璋、卢开澄、马振华等老师,并从哲学教研组调入从事逻辑学研究的周寿昌老师。
2、计算数学专业的学生班级
1958年8月从全校各系各专业的二、三、四年级抽调了八、九十名学生分别建立了数0、数1、数2(当时以五年制称)三个计算数学班级,后来改为六年制时,又分别称为数0、数2、数3。同年按计算数学专业名称招收了壹年级新生建立数4班。从1959年到1965年招收一或两个班,分别为数5班、数6班、数7班、…(以六年制称)等等,后因工程力学数学系统一班号,这些班级又分别称为力403班、力503班、力603班、力703班、…等等。
3、计算数学教研组的逐渐壮大
1961年聘入前苏联莫斯科大学留学回国的沈佩娟老师,1961年以后主要是聘留本专业的毕业生:1961年数0班留任教师的有张大鸿、林行良、严蔚敏、柳西玲、吕映芝、郑人杰、郑启华、蒋维杜等八名;1962年数2班留任教师的有俞盘祥、周之英、金千方、蒋国南等四名;1963年数3班留任教师的是蔡大用;1964年力04班留任教师的是洪先龙;1965年留任教师的是力503班的李忠源、赵锦蓉、赵致格、孙宏昌、肖均祥;1970年留任教师是力03班的张素琴、沈金发;力003班的吴恩华、李大法、朱继生;1981年留任了“文革后”第一届硕士毕业生、原自00班的周立柱,及原力03班的殷人昆。
4、教辅队伍
计算数学教研组成立后不久,在1961年建立了计算机教学实验室,并配备了手摇计算机,和电动计算机。从而开始了教学辅助人员队伍的建设。1962年招聘了退伍军人李富贵及俩名初中毕业的青工张静庄和张秀琴,并派送李富贵到打字机厂进修一年,回校后全面负责实验室的管理和维修工作。随着电子数字计算机在我校的发展,从系里调入了金惠芬,1964年又招收了张祝平、韩国申、吴季增、王守喜等四位高中毕业生及一位初中毕业生苏瑞舫为实验员,辅助教师展开计算机原理、程序设计的辅导、实验、上机等的课程,还参与了其中的一些讲课任务。这样一支教学辅助队伍的建立和成长,是我们软件学科成长发展不可或缺的重要因素。
5、计算机软件教研组命名
1970年复课并恢复招生时, 计算数学专业与当时的自动控制系及无线电系部分专业组成电子系, 从1970年到 1976年每年都招收一至二个工、农、兵学员班,大约在1975年计算数学教研组改为计算机程序教研组。1977年恢复高考(1978年除外)之后,计算机程序系统专业进入正常的本科生招生培养。1979年我系更名为计算机科学与技术系,我教研更名为计算机软件教研组。
6 研究生培养
从1961年起,国内外著名的计算数学专家、122cc太阳集成游戏副校长(62年聘任)、力学数学系副主任、计算数学专业教研组主任赵访熊教授前后从本专业招收:数0班叁名毕业生为研究生,其中两名(江善标、樊天蔚)研究计算方法、一名(俞宁辉)研究自动机理论;数3班两名(史畏三、何宇功)毕业生为研究生,研究计算方法;数5班一名(张大洋)毕业生为研究生,研究计算机语言的编译技术。
进入正常教学秩序后,1978年计算机软件专业招收了“文革后”的第一批硕士研究生,之后每年稳定地招收适当数量的硕士研究生,并在九十年代开始招收软件理论与技术专业的博士研究生。培养的研究生毕业后在各自的工作岗位上,对我国计算机软件事业的发展做出了重要的贡献。例如:在“文革”后的第一批毕业的硕士研究生中,包括了中国工程院院士总参第六十一研究所总工戴浩同志、国家计委信息中心数据库部副部长张大洋同志、清华122cc太阳集成游戏主任周立柱同志等优秀的毕业生。
课程开设情况
1959年赵访熊教授开设计算方法课程,之后,该课程一直是计算数学专的壹门主要专业基础课程。“文革”后,随着计算数学专业转入应用数学系,该课程也转入到应用数学系。
1960年孙永强老师试开设了以算子法为基础的程序设计方法课程。1961年以后,在我国尚未引进计算机语言之前,结合“M-104机”、“M-103机”(分别为中国科学院计算技术研究所仿造前苏联的一台大型机、一台小型机)、“911机”及“112机”的机器指令代码,开设了计算机逻辑设计原理、计算机程序设计方法课程。到七十年代,结合引进的计算机和研制的计算机,分别开设了计算机汇编语言程序设计方法(主要是DJS-130机的汇编语言)及计算机语言程序设计方法(如:BASIC、FORTRAN、PASCAI、C语言等)两类课程。随后又开设了“形式语言自动机”、“形式语义学”等相关的理论课程。
1973年结合对BASIC语言解释系统的分析,试开设了“BASIC语言解释系统及编译技术”课程。以后逐步增加了一般编译技术及编译原理的内容,并加入了具体的类似PASCAL语言(PL/0)编译的实例。我们的《编译原理》教学及课程教材不但特别重视编译的具体实践,如(PL/0)编译的实例、关于编译的存储管理、目标代码的生成及优化等内容;而且重视编译技术的进展,如关于编译工具、编译器的自动构造及与编译有关的面向对象构造等前瞻性内容。从而形成了比较完善的理论联系实际、适合于教学实践、能适应不同教学要求的颇具特色的专业课程。
为填补“文革”造成的空白, 采取的措施之一是邀请外籍专家,引进当代知识结构。1980年美籍华裔学者冀中田、郭善珣来我校分别进行了《数据结构》及《数据库》的讲学,通过教研组很多老师的整理编排,先后分别开设了《数据结构》及《数据库》两门课程。《数据结构》教材几经优化重编,成为我国很多高校的首选,该教材还被教委评定为重点优秀教材。美国加州大学Berkeley分校电脑系黄凯(Eugene Wong)教授,结合PASCAL语言,为研究生开设软件讨论班,美国国家标准和技术研究所资深研究员Len Gallagher博士,为研究生开设数据库系统讨论班。为我们本科生及研究生教学的更新及发展起到了重要的推动作用。
20世纪80年代,通过软件出口及对外的软件合作,结合对软件开发中的工程方法的研究,开设了“软件工程”课程。随着对软件工程方法研究的深入和发展,陆续开设了各不同层次不同方向的有关软件工程的课程,包括有“软件过程”、“软件工程环境”、“面向对象方法”等软件工程的课程。
20世纪80年代初,派出教师赴美、英、加、丹麦和日本等国深造。在计算机语言、系统软件、数据库、信息系统、软件测试、软件工程方法等领域,掌握了更丰富的专业知识,促进了我们软件教学体系的发展和完善。
科学研究成果
计算数学专业成立之初,拟定了两个基本研究方向:计算方法和程序自动化,后者发展为计算机软件。我在这里仅仅回顾了计算机软件方向的研究工作。
1.结合重大项目所展开的计算机软件研究
包括在911计算机、112计算机和DJS-100系列计算机的研制任务中完成的软硬件设计和计算机应用项目。
(1)911计算机的研制和推广使用
软件专业的首届数0班的学生,分别来自我校机械工程系、土木工程系、水利工程系、动力工程系、电机工程系、无线电工程系、工程物理系等。数0班成立之后,在教研组年轻教师的带领下,组织了计算机基本知识的学习,并赴北京大学学习他们“红旗”计算机的设计研制过程。1958年底开始投入我校“911” 计算机的设计研制工作,主要参与了“911” 计算机的“逻辑设计”、“外部设备”、“电子线路”等的设计研制工作。
数0班的毕业设计,结合“911” 计算机的设计研制生产之外,还针对当时我校内很多重要科学研究项目,在计算方法方面展开的研究有:水利系大型水坝的结构应力分析;工程物理系反应堆分析;程控机床的计算方法及程序设计的研制、力学数学系风动实验室流体力学计算方法的研究;以及动力系、无线电系等有关项目的研究。
在程序设计方面展开的研究有:实现初等函数(包括三角函数、指数函数、对数函数、开方等等)计算的“标准函数库”;实现包括插值、数值积分、数值微分、高次代数方程数值解等基本计算方法的“标准程序库”;“表达式编译”的研究等。
(2) 112计算机(按国家的产品型号为DJS-5)的软硬件设计和语言处理软件
我校在1964年底开始到1966年初研制成功的“112机”是我国第一台自行设计制造的全晶体管计算机,由当时自动化系的计算机专业和数力系的计算数学专业合作研制。首先软硬件设计以“指令系统”设计为核心,从一开始就紧密结合在一起,整个研制过程积极配合协调,使设计目标得到了最好的体现。该机在当时的软硬件设计方面,都有很多创新的特色:
· 在“指令系统”设计中采用了类似于现代的“微指令”形式,最基本的指令限定在两个基本的指令周期中完成,而较复杂的指令是采用现代“伪指令”的形式即由最基本的指令序列来完成。这使得计算机的结构在很大程度上降低了复杂度,并能保证计算机提供丰富的指令系统。
·为该计算机配置了4096个单元的“固定存储器”,实现复杂指令的“伪指令代码”(基本指令序列)就存放在这个“固定存储器”中。另外,一些基本的初等函数也以这样的“伪指令代码”实现并存放在这个“固定存储器”中。从而极大地丰富了“指令系统”的内容。
·112计算机配置了当时颇为创新的外部设备:
(A)采用“55型打字机”作为一种输入/输出设备,替代了当时普遍采用的“开关面板”方式,极大提高了人机交互的友善性。
(B)采用“电容”式纸带输入装置,比较当时的“探孔”式纸带输入装置,输入速度有很大提高。
(C)采用“电灼”式输出打印机,具有极高的输出速度。
整个七十年代,《112计算机》演示接待了大批国内外重要的代表团,其中包括第一个美国计算机高级专家代表团。起到了很大的社会效果和国际影响。
1973年在《112计算机》上研制了我国第一个汉化的《BASIC语言》—GNBY语言的解释系统,电子部邀请了在京的有关部委及专家,在我校为该项目召开了现场会。该语言在我全校教师中进行了培训推广,对计算机在我校的普及起到了推动作用。
(3) DJS-100系列计算机软件的联合设计
大约在1974年,当时的四机部在清华召开了DJS-100系列产品的方案论证会(四机部陈正清同志主持),会议将日本产的“NOVA-1200”小型机为蓝本,该计算机最受关注的是其配置了BASIC语言解释系统作为该机的主要计算机语言,考虑到DJS-100系列计算机要作为小型计算机在全国推广,BASIC语言具有易学易用、良好的人机交互特性。在论证会上我们做了DJS-100系列计算机“系统软件”的可行性及实用性的全面论述。方案论证会最后决定成立了由全国几十个单位组成的联合设计组,并委托122cc太阳集成游戏担当全国联合设计组组长单位。
软件教研组(林行良同志负责)为DJS-100系列计算机软件联合设计小组组长单位,负责协调DJS-100系列计算机软件的设计开发,并承担了其中的“汇编语言”、“BASIC语言”“查错(诊断)程序”等系统软件任务。为推动我国小型机系列软件的发展起到了重要的作用
2 .ALOGO-60形式文本的研究
六十年代初,参与了中科院计算技术研究所第九研究室(即后来的中科院软件所)对ALOGO-60形式文本的研究。当时教研组派出了郑人杰老师直接参加第九研究室的工作,并组织其他教师参加第九研究室关于ALOGO-60形式文本研究的讨论班。对教研组教师在学习、掌握计算机语言的基本原理、理论、语言编译等方面积累了丰富的知识,也为以后在计算机语言方面的深入研究打下了坚实的基础。
3.研发我国最早的出口软件
1981年我校计算中心(当时归属122cc太阳集成游戏)从日本“富士通”公司引进了大型的M-150计算机(相当于IBM-360)。此后,我系(软件教研组及计算中心)与“富士通”公司经历了长达九年的软件开发技术的合作,并先后对日本出口了五项软件开发、研究项目产品。其中,1983年出口的软件产品“FORTRAN程序的动态分析《FORTUNE》”工具,是我国第一个出口的软件产品,受到日方媒体的很大关注,作出了较高的评价。日方媒体认为这样一个很难避免发生差错的复杂软件,达到如此高的正确性(没有发现任何差错),表明了122cc太阳集成游戏的软件技术以达到了很高的水平。国内的《参考消息》、《光明日报》、《解放日报》等也发表了相关的消息。时任中国计算机学会主任的张效祥先生,为此给我系专程发来了贺信。
我们为富士通开发的五个项目是:
(1) 1983年完成《FORTUNE》:对用FORTRAN编制的程序进行动态的控制流及数据流分析,收集FORTRAN程序运行时程序块的调用关系及调用频率;收集各类变量的类型特性及各变量在运行中状态变化的有关信息。所有这些信息都用来测试所编FORTRAN程序运行时的性能及效率,作为提供改善被测FORTRAN程序的运行质量。
(2) 1984年完成《FORPRAN》:对用FORTRAN编制的程序进行静态的程序块及所有类型数据的分析,收集FORTRAN程序块的静态调用关系及调用层次结构;收集各类变量的类型特性及各变量在模块中被定义、更新及引用的相关信息。所有这些信息都用来测试所编FORTRAN程序的静态构造及类型变量布局的性能及合理性,作为提供改善被测FORTRAN程序的构造质量。
(3)1986年完成《C语言编译程序》:为日本富士通公司M-系列计算机配置C语言编译程序。C语言编译程序的源代码必须用C语言本身来编制,而M-系列(即IBM360/370)大型机并没有配置C语言编译程序。因此,首先在具有C语言编译程序的小型机《DUAL-68000机》上开发一个C语言编译程序的“核”,该“核”的目标代码是M-150机的汇编代码,采用交叉编译技术,将该“核”装入M-150机上,然后再采用“自展”技术,将“核”逐步“自展”成为符合《C语言》ISO国际标准的M-150系列机上的《C语言编译程序》。
(4)1988年完成《软件复用技术研究》:这是一个软件技术研究发展的课题,全面分析研究了软件开发过程中软件可复用的必要性和可能性,对已经采用的软件复用技术进行综合的考察和评价,对软件复用的新技术及新方法进行了探索,特别是对基于抽象数据类型的软件构造方法进行了较深入的探索。该研究项目为我们以后进一步对面向对象的软件构造方法的研究打下了基础。
(5)1990年完成《词法、语法分析器的自动构造》:该项目是从一个语言的“文法图”得到该语言程序的词法分析器和语法分析器,就是通常所谓的编译前端。用户在计算机屏幕上使用该工具软件按文法图的形式构造自己所需设计开发的语言的词法及语法结构图,该软件将根据文法图自动构造出该语言的词法分析器和语法分析器。
以上五个项目的开发研究总经费为一亿多日元。
4、承担国家重点科技攻关项目
完成了“六五”、“七五”、“八五”及“八六三”等多项国家重点科技攻关项目,涵盖语言编译系统,数据库系统,信息管理系统和软件工程等领域,如: COSA平台,BASIC语言,C语言,C++语言编译系统研制,软件测试工具,IDEF工具等等,其中我们参与的COSA平台获电子部科技进步特等奖,国家科技进步二等奖.
5、为国内外机构研发信息系统
软件教研组有一支较早就建立的数据库和信息管理系统研发队伍,曾研制或参与研制多个信息系统,有为联合国国际原子能机构开发的管理软件包括国家体委信息管理系统,工行总行信息管理系统等等。
1985年以前,软件教研组的科研方向包括系统软件(编译系统和操作系统)和软件工程、数据库、计算机设计自动化和计算机基础理论等四个方面,根据改革的需要,1985年计算机设计自动化方向单独成为一个教研组,1986年计算机基础理论方向单独成立一个教研组,这样软件教研组便只有两个方向了,而我们的研究方向是系统软件和软件工程,因此,以上所述项目,多是我们所接触到的,仅仅是我校计算机软件学科发展历程中的汪洋一角。我相信其他与我同时经历过这五十年的同志,一定会有更宽、更深的体会和理解。
现在的研究小组
1999年,学校进行机构改革,我系取消原有的九个教研组,成立了6个研究所,软件教研组划入计算机软件技术研究所,该所涵盖数据工程与知识工程、软件工程与方法学、计算机图形学、计算机辅助设计与可视化和VLSI设计自动化等研究方向。原有的系统软件和软件工程研究小组在计算机软件技术研究所成立初期的主要方向是 软件过程的建模和软件过程度量的研究、软件工具的研究和应用以及编译基础设施的研究。目前系统软件和软件工程研究小组的队伍更加年轻有活力,现有成员全部具有博士学位, 近几年在软件测试、嵌入式系统开发环境及编译技术等领域获国家自然基金资助5项,完成国际合作及其他横向课题多项任务,包括奥运信息系统集成测试管理平台、Linux桌面操作系统稳定性测试与管理平台、易用性评估工具;运行于清华THUMP CPU上的嵌入式Linux系统TUES、THUMP 及应用开发工具链(编译器、汇编器、调试器);可验证、可执行的目标机描述技术;OpenMP实现等等。现在小组成员在面向Web Services的测试、验证 / 确认式编译、可重定向编译、面向可信计算的形式方法以及安全嵌入式操作系统等研究领域承担着国家863、基金及国内外合作任务,作为一个退休的老同仁,欣喜地看到队伍的茁壮成长,也坚信不久一定会有更多创新成果出现。
[作者简介]蒋维杜,男,1936生,江苏人,教授,1955年入清华电机系就读,1957年转入工程力学数学系数0班就读,1961年毕业留校任教。1972年转入122cc太阳集成游戏任教,曾任为122cc太阳集成游戏学术委员会委员、122cc太阳集成游戏学位委员会计算机科学与技术分委员会委员。享有政府特殊津贴。已退休。