【生活】我的语言们(一)

人与人交流主要通过语言,人与计算机交流也需要语言。计算机语言就是人与机器之间通讯的语言、人与机器传递信息的媒介。计算机语言分低级语言和高级语言,说是低级,是因为它们更接近机器而离人远些;说是高级,是因为它们与机器中间有翻译者,所以它们离机器远更接近人。

计算机低级语言最基本的是机器语言和汇编语言,高级语言就多了去了。我只聊我接触过的语言,所以是“我的语言们”。

学计算机软件的,自然接触了好些计算机语言。机器语言Machine code是我初学的第一门计算机语言。它们只有两个基本数字:0和1,用这两个数字编程就是排列出有意义的组合,称为二进制代码。它们是计算机硬件能直接识别的指令代码。简洁、速度快,计算机以相应的电路来完成指令代码,所以使计算机动起来的正是机器语言。

不同的计算机内部结构不同,会有自已的机器指令系统,一旦换了不同的计算机,人们必须从头熟悉新机器的指令系统,所以机器语言被称为可移植性差、兼容性差。加上用二进制代码编程复杂繁琐、可读性差、不便记忆、容易出错,没有普及性,这就机器语言的局限性。

不过,我个人觉得学起来挺有趣,颇有神秘感和专业感。学会用二进制代码编程后,要上机实验。最开始是用穿孔机事先将二进制代码输入到纸带上。我们兴奋地在黑色的纸带上穿孔,0和1就是两个结果,遇1打一孔,是0不打孔。一不小心,打错了孔,重来!穿孔是一件细致的活,必须非常细心和有耐心。穿好孔在检验的灯光下查看打孔是否正确。学生多,检验的设备少,很简单,对着窗户的光线一样可以检验。只是眼睛要盯紧了,一旦眼花看错位,再从头检查吧。很长的一条纸带也完成不了多少功能。卡片机的原理同穿孔机原理相似。

我学的第二种计算机语言是高于机器语言,低于高级语言的汇编语言Assembly language。因为汇编语言是以助记符代替机器指令来进行操作,故被称为符号语言。汇编语言便于理解和记忆、所占存储空间小、编程质量高。它们与机器语言是一一对应的, 需要编译器将其翻译为机器语言再被执行。故也是因机器而异,缺乏移植性。但它们比机器语言增强了可读性,专业人员可以熟练使用汇编语言进行程序设计。简而言之,机器语言和汇编语言统称为面向机器的程序设计语言。

我被分配到计算机系最初的计算机工作就是使用汇编语言。当时,计算机系刚刚从日本进口了一台富士通的中型机,它可以带十几个终端,有两个大硬盘机,两个大磁带机,还有相应的两台八寸软盘机,算是当时系里乃至学校速度最快、容量最大的、最先进的计算机了。当我熟悉和掌握了该机的汇编语言后,我一边进行开发工作一边被计算机系主任调去任他的助教之一。因为主任承担教授系里学生的汇编语言课程。而学生很多,主任的这门课破天荒配了两位助教。当计算机系主任教授的助教不仅要批改学生作业、上答疑课、改考卷,最繁琐的是要指导学生上机实验。因为我熟悉这台新机器,不用查资料,我能很快判断出学生问的问题是机器问题、操作问题、还是语言问题。因此这门汇编语言成为我颇感自豪的一门语言。

当汇编语言课的助教,回想起来有件挺可笑的事。系主任个子不高,属于矮胖型。上大课板书程序,是件辛苦的事,黑板高处他够不着,他能够着的黑板往往是写得满满的。教授又讲课又板书是够累的。因此擦黑板这件事他就交给我们两位年轻助教来做,这样一学期下来我可没有少吃粉笔灰。甚至几次让我们上去帮他板书程序,当时想到背后有那么多双眼睛盯着我的后背,大有芒刺在背之感。现在回想起来,挺有趣。

我任主讲老师后,碰上在新区大阶梯教室授课,我太喜欢那四块可移动黑板了。因为中途基本不用擦黑板,一块满了就移上去,书写在另一块黑板上。每一位负责任的老师都会在下课后将黑板擦干净,我当然很自觉。

时隔多年,二进制代码和符号语言早被抛到脑后,我扭头看看书架,已经找不到一本低级语言书籍了。

此图像的alt属性为空;文件名为低级语言-1024x770.png

再见了,我的机器语言和汇编语言,因为它们是因机器而异,所以它们早已跟随它们的载体机被勇往直前的计算机技术潮流淘汰而废弃了。但只要懂得一种机器语言或一种汇编语言,理解新的低级语言会容易些。

此图像的alt属性为空;文件名为LEQCE8504-1024x768.jpg

回想起来,我对这两种面向机器的语言是有感情的。它们像老朋友一样陪伴我度过了那些年轻美好的时光。

 

星星图文原创