李冠岑
(湖北省宜昌市第一中学,湖北宜昌,443000)
1936年,图灵提出了一种抽象的模型--图灵机,肯定了计算机实现的可能性,同时给出了计算机应有的架构,不久之后,世界上第一台计算机诞生了。但令人们困扰的是,计算机无法直接理解人类的语言,怎么样才能让计算机“乖乖服从”人类下达的指令呢?在这种情况下,计算机语言应运而生,人们就一直沿用并对计算机语言进行不断改进。为了探寻计算机语言的未来,本文将概括计算机语言从机器码、汇编语言到高级语言的历史发展过程,并将其发展历程与自然语言相比较,以此体现它的优势与弊端。
近年来,计算机语言在不断地更新进化,从人们难以理解的机器码,逐渐演化成汇编语言与高级语言[1]。相比于机器码,汇编语言与高级语言更容易让人们理解,这也表明,计算机语言与人们的自然语言是在不断地相互促进并融合的。本文将对两种语言的相同处与不同之处展开讨论。
(1)计算机语言与自然语言都是“语言”。何为语言?“语言”就是将自己想要表达的信息传递出去的一种途径。既然都是语言,它们的职责自然也都是将信息概括为一句或几句甚至几段话传递出去,这是它们都具有的一种性质,我们可以把它概括为“传达性”。
(2)不是所有的语言传达出去都能被正确地理解并接收。举个例子,一个中国人试图使用中文与一个不懂中文的美国人交谈,显而易见,美国人是无法理解中文的,也就是说,中国人虽然将自己的信息概括为了“中文”这种语言,但却无法让倾听者明白理解。我们把这种双方都要理解这种语言的性质概括为“双向性”。
此外,要让对方理解我们的表述,必不可少的另外一个条件是:语言必须有层次性与逻辑性。还是上文的例子,现在我们让那个外国人听得懂中文了,而那个中国人却开始说一些毫无逻辑的句子,这样,虽然使用了同一种语言,外国人还是无法理解话语中的含义。由此可知,计算机语言和自然语言一样,都必须具有双向性,逻辑性以及层次性[2]。
(1)自然语言的作用对象是“人”,而计算机语言的作用对象是“计算机”,是没有感情的机器,这恐怕是两种语言之间的最大的也是最明显的不同了。机器没有人的情感以及理解能力,无法识别人们的情绪波动以及话语中所夹杂的情绪化表达。
(2)与计算机语言不同,自然语言是由人们千年来的经验与成长进化中不断演化的,其中演化出了多种多样的分支,比如说不同国家的语言都不同,而每种语言又演化出了多种的方言等其他语言表达与简化形式。而计算机语言却没有这种特性,一种计算机语言,是可以在全世界通用的[3]。
机器码是一种使用二进制来表示的能使计算及识别并执行的一种计算机语言,这种代码不仅要求操作员要熟记各种各样的代码,还必须拥有大量的操作经验以及操作耐心,虽然它现在已经被大部分程序员所摒弃,但是没有了它,计算机语言也无法发展到现在的状况。
总的说来,机器码的缺点有三:
(1)不直观。机器码是一串繁琐的数字,再优秀的程序员也不可能在看到它的第一眼时就知道它的意思。
(2)机器码与自然语言的表述形式完全不同,人们无法迅速将自然语言转换为机器码的表述形式。
(3)机器码严重地依赖于计算机的计算,脱离了计算机的机器码是没有生命的。
由于以上三种原因,虽然机器码能够直观表示计算机处理器的工作流程,但其复杂度致使计算机应用没能在那个时代掀起巨大的波澜。
随着技术的进步,汇编语言应运而生。汇编语言是一种对应机器语言的指令集,借助汇编程序,可以将简化过的汇编语言翻译成二进制代码(也就是我们口中的机器码)。所以本质而言,汇编语言仍然是一种低级语言,但是相对于机器码而言,它对于计算机用户更加友好,因为汇编语言加入了一些简单易懂的符号语言,并且拥有着低级语言所共有的优势。因此相对于高级语言,汇编语言和机器码都可以保证计算机的运行效率。
但是,汇编语言依然不能够满足大部分用户的理解需求,无法在推广计算机应用方面有所作为。因此现在汇编语言的运用相对较少,一般只用于系统编程的应用以及简单应用的编码。
时代的步伐永不停息,继汇编语言之后,高级编程随着计算机技术的进步出现了。高级语言是将一部分的指令汇编于一体的一类语言,与低级语言的最大不同是,它使用了人们能够理解的自然语言,进而大大提高了对于计算机用户的友好程度。但与此同时,高级语言脱离了对计算机硬件的操作,进而对于硬件的控制力下降,这也就意味着计算机在解析高级语言时需要经过繁琐的翻译工序,这也就在一定程度上降低了计算机的运行效率[4]。
Python是一种适合初学者使用的非编译语言,它简单易懂,易于上手。在编程游戏,开发网页,制作桌面GUI,开发软件等领域都有着广泛的应用。
Python的特点是易于编写,对于初学者非常友好,它也是广泛认同的最容易学习的编程语言之一。因此Python将有望成为物联网中的一颗新星,许多的新平台都已使用Python作为主要编程语言;与此同时,Python也具有令人诧异的库存函数,使得它能够被用来轻易地编写程序。然而,Python作为一种非编译型语言,其执行速度是肯定要慢于其他语言的,其次,它是一种动态型语言,出现错误时需要反复多次检查,才能找到错误所在。
C语言作为一种进阶编程语言,是开发系统固件的重要语言。C语言被用来开发操作系统、硬件程序及常用软件,是一种多用途的计算机语言。
C语言作为一种多用途的计算机语言,具有Python所不具备的移动性,不对其语言做大幅度改动便可以很容易地在多种平台上运行。除此之外,C语言“很小”,这里的“很小”指的是C语言完全基于变量以及宏命令,因此可以被嵌入到很多微型处理器之中。但是C语言没有运行检查机制,而且相比对新人比较友好的Python语言来说,C语言的难度比较大,要学会C语言需要具有一定的编程基础。
JavaScript(JS)是一种通用的客户脚本语言,有着很好的兼容性以及不容小觑的运行速度。JS一般被用来制作网页前端,以及制作分析,包括制作简单的小工具,以及WEB交互制作等。
JS的显著特点是很“朴素”,也就是面向大众,是一种大众化语言。JS的学习不需要多深的编程功底,几乎所有人都可以轻松地掌握它。不过在JS具有多功能性的同时,也具有了一定的不安全性,所以一部分人选择了禁用JS。此外,由于JS的简易性,在相同的脚本下有可能出现不同的执行结果。
Java与JavaScript语法相似,但有着一定的不同。Java是程序开发者最常用的一种高级语言,在编程语言排行榜上常年占据榜首的位置。Java语言常被用于进行安卓应用的编程与开发,也被用来进行视频游戏应用的开发,桌面GUI的编程也可以依靠它进行。
Java拥有很光明的应用前景,其市场需求和就业需求也与日俱增。此外,Java语言也并非一成不变,它在不停的进化,因此要熟练地使用java语言具有一定的难度。另外,Java编译器的运行会占用很大的内存空间,对于电脑的硬件有一定的要求。
计算机语言已经从早期的机器码逐渐发展成汇编语言及高级语言,例如Java、JS、Python,C,C+,C++等,它们使计算机语言与自然语言的关系更拉近了一步。随着信息技术的不断进步,计算机编程语言也在不断进行创新和优化,旨在实现更强大的功能,也为编程人员提供更便捷的方式。在未来,计算机语言将朝着以下几个方向发展:
(1)未来计算机语言也会朝着“自机合一”,也就是朝着自然语言与计算机结合的方向发展。在未来,人们可以通过语音输入及直接对话的方式将自己想要表达的意思直接转变为一串代码,而这一段代码可以直接被计算机翻译为机器码,这样便可以使计算机的运行速度更快的同时使得计算机直接执行人的语音指令;
(2)计算机语言将逐渐朝着面向对象编程及函数式编程的方向发展。在未来,计算机编程语言会向用户提供清晰易用的类编程模式与简单执行复用的函数模式,进而丰富程序的功能与扩展性,促进计算机程序的发展;
(3)计算机语言应更加注重程序的安全性。未来的计算机语言应在保证实现程序功能的基础上制定相应的安全体系和措施,进而营造安全的程序编写环境[5]。
本文对计算机语言的发展做了一个简单的概述,比较了自然语言与编程语言的不同,同时介绍了几种常见的计算机语言,并在最后对于计算机未来的发展趋势以及方向做了一个简单的预测。我们可以相信,计算机语言将会不断完善发展,使得计算机程序编写的门槛越来越低,能够让更多的人参与到程序设计之中。在未来,计算机程序的功能将更为丰富,为我们的生活带来更多的便利。