成电纪事

分享到微信 ×
打开微信“扫一扫”
即可将网页分享至朋友圈
【成电纪事】成电牵头研制DJS-200系列汇编语言始末
文:何文燕 图:  来源:档案馆 时间:2016-05-31 10013

  我国自1957年开始研制通用数字电子计算机,1958年第一台电子数字计算机103型计算机(即DJS-1型)诞生。在经历了第一代电子管计算机和第二代晶体管计算机的研制后,上世纪70年代,中国进入了第三代基于中小规模集成电路的计算机研制。1973年,原四机部在北京召开首次电子计算机专业会议,决定立项研制第三代计算机,即DJS-200系列机。该机分为高、中、低三档,分别称为260、240和220机。在研制系列机的同时,研制全套系统软件及语言。系统软件分为260、240和220操作系统,语言包括汇编语言、BASIC语言、ALGDOL语言、FORTRAC语言、COBOL语言和自编译语言。

  DJS-200系列机的规模接近美国IBM360系列计算机。如此庞大的工程,四机部决定进行全国大会战。1973年邀请了部分部属研究所和大专院校参加在北京的会议,会上进行了任务分工。其中,220机及操作系统由苏州无线电厂和南京大学负责,240机及操作系统由738厂和北京大学负责,260机及操作系统由15所(华北计算机研究所)负责,成电计算机系的周锡令老师被15所邀请,作为260机操作系统的顾问。ALGOL语言由15所负责,BASIC语言由西安交大负责,COBOL语言由南京大学和南京有线电厂负责,FORTRAC语言由北大和738厂分别负责,自编译语言由南京大学研制。剩下汇编语言没有落实。

  DJS-200系列汇编语言是DJS-200系列机的基本工作语言,用以支持DJS-200系列机开发系统软件和应用软件。它是一种高一级的宏汇编语言。该语言能处理全部机器指令,操作系统所提供的全部广义指令和用户自定义的宏指令。1973年下半年,四机部和15所分别向一些单位提出汇编任务。1974年4月,在北京召开汇编语言组成立大会。会议确定以成都电讯工程学院为主要研制单位,武汉大学为协作单位,其他单位为参加单位。会议同时确定了工作方式,每年集中工作一个月,汇报自己的工作和安排下一步的工作。同时还确定了汇编语言的任务,包括对机指令的一对一翻译,允许程序员为自己多次使用命名(密指令),对操作系统命令的翻译,即后来所称的一般语句,宏语句和广义语句。

  接到汇编任务后,各单位迅速抽调人员组成了研制组。成电龚天富老师担任课题负责人。成电计算机系的黄天发、陈顺侠,武汉大学的胡久清、何炎祥、陈世鸿,15所的王华民,复旦大学的沈瑶英,华东师大陈国柱,上海无线电13厂范莲静,上海中兴无线电厂周心乐、虞伟相等12人参与到汇编语言的研制中。他们中间包括教师、技术员和工人。研制组进行了任务分工,龚天富老师负责总体设计、语言设计、编译,胡久清负责总体设计和运行程序,黄天发负责编译的汇编语句处理,各类常数翻译,王华民负责宏处理程序,何炎祥负责编译,陈顺侠负责编译机器语句处理,其他人员分别负责程序的修改和装配。

  当时我国的计算机业还刚刚起步,整个国家还处于研发计算机硬件的阶段,对计算机软件,很少涉及。汇编语言对研制组成员是一个全新的事物,搞过编译和汇编的人甚少,而国内可供参考的资料也很少,可以说大家是白手起家,从无到有。所以,分工确立后,研制组成员分头着手调研,查找一切能够找到的资料,学习、消化。

  1974年,龚天富全年用于写语句定义(文本)。他决定打破一般汇编语言用说明的方法来定义每个语句,改用形式文法来定义文本,这样语句定义更准确,程序更正确。

  研究中因为涉及的研制单位多,并且分散全国各地,研制组每年1-2次会议集中,讨论操作系统的命令、结构,三个操作系统的功能、语言和操作系统如何联接。1974年6—7月,研制组成员在上海集合,讨论文本方案,最后确定了一种比较接近于IBM360汇编语言的方案。1975年5月,研制组成员在北京集中,商讨编译方案。确定了整个汇编程序的工作流程,给出了粗框图。

  1975—1978年,是程序编制阶段。研制组每年集中一次,大约15—30天,讨论接口,修改文本。1975年8月,研制组成员在成都集中了一个月,详细审定文本,增加功能,讨论各个模块的细框图,随后各成员分头编制程序。1976年在武汉集中工作,大家汇报了自己所做的工作,讨论了总框图,回去后各人根据总框图,细化自己的框图。1977年在成都集中时,各个操作系统基本有了轮廓,各人汇报了自己的详细方案,提出各自的难点,进行讨论后,交给龚天富统一解决。

  1979年10月,系统进入调试阶段。738厂研制的第一台220机已交付南京14所,四机部计算机总局安排研制组在该机上调试程序。因为仅有一台机器,用户也要用,研制组只能随时等待,机器一空就上,大多数时间都是在晚上。220机因为是用户刚接手的机器,是一个光机,没有任何广义指令。从1979年10月-1980年1月,研制组只能用最原始的办法,各人分调,同时调小管理,并自己编了一个小管理进行调试。1980年3-5月,研制组开始进行各个模块模拟联调。1980年6-7月,开始进行汇编系统各模块之间的联调,用实际例子按作业步骤模拟操作系统,解决了各模块之间的接口问题。8—9月,与OS联调,9月底结束在南京的调试工作。分调持续了一年的时间。

  1981年7月,汇编组再次在北京集中,在738厂的第六台220机上通例子。虽然因为客观原因,不可能通大量的例子,但研制组所通的例子基本上考验到了汇编系统的各种功能。8月8-10日,汇编语言通过考核,从此结束了为计算机事业所做的“八年抗战”。

  DJS汇编系统参考了美国IBM公司的360/370系列汇编的功能设计,并根据DJS200系列机的特点,以及国内编制程序的习惯,增加了比如间接寻找、追踪等功能,在国内当时各计算机所配汇编语言中,尚无类似结构和功能。1983年电子工业部计算机工业管理局组织对DJS200汇编语言的鉴定。鉴定结果认为:该汇编系统达到国内先进水平。1984年,该汇编系统获得电子工业部科技进步二等奖。

  从1974年4月到1981年7月,DJS-200系列汇编语言的研制历时8年多的时间。这期间,研制组克服了重重的困难。

  DJS-200系列汇编语言的研制展现了老一代成电人自力更生、无私奉献的精神。首先,汇编语言当时在国内是一个新事物,国内没有相关的研究,可供参考的书籍资料也很少。当时研制组成员都没有接触过计算机软件,在这种情况下,研制组成员们一方面从各种途径去搜集资料,但更多的时候靠的是冥思苦想。据龚天富回忆,有次遇到一个程序没法解决,一个多星期都在想着这个问题,甚至是吃饭睡觉都在想。该语言的汇编程序包括修改、宏处理、编译I、编译、装配和运行六个模块,共约2万条指令,都是靠研制组成员一条条手写出来的。另外,全国各地不同单位的人员走到一起,共同完成一个项目,而且坚持八年,真是不可想象。因为研制组成员分散在各地,上世纪70年代,我国的交通还很不方便,通讯落后,要想相互联系、信息沟通,靠的是一年1-2次的会议集中讨论。每次集中都需要半个月到一个月的时间。在调试阶段,更是长时间地出差在外。当时大家工资低,没有任何其它工作,研制组成员中有的小孩很小,家庭中也有各种困难。大家从学习开始,到任务完成,经过了很多的艰难,但没有人有怨言,一心只想把研究项目完成。最可贵的是大家都很诚信,每次调试、集中都能按时到达,这是完成任务的基础。在研究中大家都很团结,相互帮助,集思广益,对年轻人手把手地进行指导。

  通过参与DJS-200系列计算机的会战,为国家培养了几百号计算机方面的人才,他们都经过了磨炼,成为后来计算机事业的骨干。

  (感谢龚天富老师为本文提供了大量有价值的史料)


编辑:林坤  / 审核:罗莎  / 发布:一戈

"