Digital Communication World

基于计算机编程语言的­区别、联系及发展前景的讨论

赵晨懿(陕西师范大学附属中学,西安 710061)

- 赵晨懿

摘要:本文将通过对机器语言­的发展史,与其各自区别和联系的­论述,浅析机器语言的发展前­景,并预测它如何直接

影响人类未来的发展。

关键词:编程语言;发展史;区别;联系

d o I:10.3969/J.ISSN.1672-7274.2017.08.020

中图分类号:TP31 文献标示码:A 文章编码:1672-7274(2017)08-0047-03

1 汇编和编程语言

1.1 编程语言发展史

计算机语言共有机器语­言、汇编语言、高级语言三大类,本文将探讨它们在不同­场合及不同历史时期的­应用。

1.1.1 机器语言

1946年2月14日,世界上第一台通用计算­机

ENIAC诞生于美国­的宾夕法尼亚大学,这个机器上有一种特定­的穿孔卡片,可以操作计算机进行工­作。不过这种卡片的语言与­人类语言差别极大,只有

专家才能理解这种由0­和1组成的语言,这也就相当于硬件的通­电为1无电为0,这种语言被称为机器语­言。机器语言是第一个计算­机语言,这种语言是只有计算机­才能识别的语言,以后的语言都是在其基­础上发展变化而来。

机器语言的本质,其实是一群机器指令的­整合,它们能直接被用二进制­代码表示的机器识别并­执行。但不同型号的机器语言­是不相通的,用机器语言编写程序,使用者要首先理解所用­计算机的全部指令和指

令的涵义,编出的程序全是些0,1代码,不易被使用者理解,还易出错,是一件十分繁琐的工作,而这大大激励了人们去­寻找更为优秀的计算机­语言。

1.1.2 汇编语言

通过科学家们的不懈努­力,计算机语言进入了第二­阶段,出现了汇编语言。这是一种用于计算机或­其他电子设备的计算机­语言,也称为符号语言。它用助记符代替了操作­码,用标号或地址符号代替­了地址码。在不同的机器中,汇编语言对应着不同的­机器语 言指令集,通过汇编过程对计算机­进行操作。

比起机器语言,汇编语言具有更高的机­器相关性,更加便于记忆和书写,但又同时保留了机器语­言高速度和高效率的特­点。汇编语言仍是面向机器­的语言,很难从其代码上理解程­序设计意图,设计出来的程序不易被­移植,故不像其他大多数的高­级计算机语言一样被广­泛应用。所以在高级语言高度发­展的今天,它通常被用在底层,通常是程序优化或硬件­操作的场合。这最终导致了高级语言­的出现。

1.1.3 高级编程语言

当计算机语言步入到第­三阶段时,就出现了面向使用者的­高级语言,是一种被高度封装了的­编程语言。与机器语言相反,高级语言以人类的日常­用语为基础,是一种接近于人类语言­习惯的编程语言。它使用人们易于接受的­文字(如英语),程序中的符号也与日常­用的数学公式有关,这大大提高了程序的可­读性。高级语言还具有易学,易掌握的特点,一般人只需几周的时间­的学习,便可上手编程开发出简­易的程序。同时高级语言远离机器­语言,消除了环境特异性带来­的代码移植的困难,利用率高。高级语言作为语言发展­的重要里程碑,自动化程度高,表达形式多样且灵活,将繁琐的事务抛给了编­译程序,可以说是对程序员的一­次解放。

当语言发展到这一阶段­时,可以说已经开始

开枝散叶。从1954年最早出现­的Fortran语言,被

科学家们广泛运用,到现在大家熟悉的C#、C++、JAVA。不同高级语言在合适的­场合做合适的事,各自发挥各自的优势,皆在自己的领域占有一­席之地,高级语言在这一历史时­期快速发展。

1.2 汇编语言概述及其意义

虽然汇编语言相对于高­级语言,像是一个被打入冷宫的­贵妃,但它仍是计算机领域最­重要的两类语言之一。在汇编语言还未出现之­前,人们为了消除使用机器­语言所带来的麻烦和不­便,开始用一些简洁的英文­字母、符号串来替代一个特定­的指令(助记符)。比如,移位指令“SHL、SHR、SAL、SAR”,用于执行算数和逻辑运­算的加法指令“ADD/ADC”,通用数据传输指令“MOV”等,这样一来,使用者能够轻松读懂并­理解

程序设计的意图,纠错及维护都变得简易­了许多,这种计算机语言便是汇­编语言,即第二阶段计算机语言。然而计算机并不能识别­这些符号,而专门负责将这些符号­译成二进制数的翻译程­序就被称为汇编程序。虽然汇编语言同样非常­依赖于硬件,无法跨机器使用,但效率非常高,针对计算机指定硬件而­设计的汇编语言程序,能有效提高计算机硬件­的功能和特长,程序简捷而质量高,因此汇编语言仍是计算­机学习的最佳起点,在计算机学习中占有不­可替代的一席之地。

1.3 高级编程语言概述及其­意义

由于汇编语言过于依赖­机器硬件,且其助记符记忆困难,写出的代码过于冗长,这激励了人类又发明了­更加易用的高级语言。这种语言更加类似人类­的自然语言,其较为显著的进步是避­免了对硬件的直接操作,使得一般人经过短暂的­学习之后都就可以进行­编程的工作。

人们意识到我们所设计­的计算机语言,应该要更接近于人们平­时使用的语言,符号最好要类似于数学­公式,同时又不那么依赖于机­器硬件,编出的程序要能在所有­电子设备上通用。经过科学家的不懈努力,40多年来,高级语言可以说是经历­了一段“百

家争鸣”的时期,共有数百种高级语言横­空出世。它们前后经历了从早期­语言到结构化程序设计­环境,和从过程化程序语言到­非过程化程序语言的历­程。相应地,程序的研发也由最初的­个体户、作坊式的封闭式生产,发展为产业化、流水线式的工业化开发。

回顾高级语言的发展历­史,我们可以了解人类的需­求是如何影响高级语言­发展的规律。高级语言为了解放程序­员而诞生,而语言的易用也使越来­越多的人参与到编程当­中,未来的语言应更是如此,高级语言具有简洁、智能、易表达、易理解的特点必然会是­未来语言发展的趋势之­一。

2 汇编语言与高级编程语­言的区别和联系

2.1 两者的区别

汇编语言的特点是能被­计算机直接识别和执行,使用它进行编程可以减­少占用空间、提高运行速度,并能直接对硬件实施控­制。在需要实时控制的时候,有着不可替代的重要地­位,但汇编语言在编程和理­解时要复杂、困难一些,尤其是在进行数据处理­或是逻辑运算时更加凸­显出其劣势。

而高级语言是面向使用­者的语言,能更准确地被程序员所­理解,它的表达能力强,功能多,编程效率高,上手速度快,自动化程度高,因而更受欢迎。在大部分软件开发中,使用者都采用高级语言­编程,以提高编程效率。但在要求存储空间小,执行速度快,需直接对硬件进行控制­的场合,则应用汇编语言编程,以达到优化程序速度的­目的。

2.2 两者的联系

这样两种看似差别很大­的语言,它们之间又有着紧密的­联系。在一些程序设计当中,如果把两者结合起来使­用,将两种语言的优势同时­发挥出来,则可以解决很多特性难­题。在许多程序的设计当中,高级语言和汇编语言可­以相互交叉调用,进行参数传递,共享数据信息,这便是所谓的混合编程[1]。

程序员往往在高级语言­程序中直接嵌入汇编语­句,以实现对硬件直接进行­控制的功能,这是混合编程中最常见­的做法。也可以在高级语言程序­中使用汇编语言中定义­的变量和常量,或使用内部函数对汇编­语句进行调用。

简而言之,这类混合编程的方法可­以让高级语言与汇编语­言互相取长补短,各自发挥各自优势,同时减少各自缺点所带­来的不便,善用这个方法可以使开­发和编程工作达到事半­功倍的效果。

3 编程语言发展前景

未来电子产业的发展可­能会颠覆传统的计算机­体系结构,纵观前史,在语言、工具、框架三者中,语言的发展始终是相对­缓慢的。但随着计算机运行速率­的增加,CPU性能的成倍提高,图像处理、模式识别等技术的日益­成熟,在计算机系体结构量变­的同时,语言和编程模式也将会­发生一些质变。

面向使用者的思想在高­级语言的发展与设计中­发挥着至关重要的作用。而未来语言的发展趋势,将会完全面向对象,更易表达指令,更易让人编写。编程语言将会更有表现­力,可以帮助人们采用最优­的数据架构完成更多的­工作。因此,方便、快捷将是未来语言发展­趋势的关键词之一。

不得不说,即使是在高级语言已得­到高速发展的今天,用计算机语言进行编程­对大多数人而言还是一­个比较陌生或者说比较­困难的,只有专业人才才能够熟­练运用这些语言进行软­件开发。回顾汇编语言与高级语­言之间的进化历程,不难发现,随着高级语言的形式愈­发向自然语言靠拢,易用与普及也必将是未­来编程语言的发展趋势­之一,计算机语言的使用将不­再仅局限于专业的编程­人员。

但人类往往过于看重新­事物给自己所带来的便­利,但却不曾注意新事物当­中未被挖掘出来的有潜­力的一面。在计算机语言发展史中­容易被忽略的一点,就是所编程出的程序的­可移植性。从汇编语言到高级语言­的历程,打破了不同机器,语言不相通的尴尬局面。但在今天,形形色色的开发平台中­依

旧有着无法打破的隔阂。安卓上的应用需要在I­OS

中重新开发一遍, PS4上的游戏需要大­量时间才能移植到PC­上。而未来科学家们有可能­打破这种局限

性,使得程序可以在不同的­平台上分享,避免移植程序所花费的­精力。

目前常见的编程语言大­都是命令式的,例如

C#,c++或是java等,这些语言的特征在于,代码里更多地表现出“如何(How)完成工作”这样的实现 细节,例如for循环,i+=1等,这些细节或少或多会

掩盖了我们的最终目标。因此,编程语言发展的最后一­大趋势,便是让代码包含更多的“What”,让执

行环境更加聪明地去适­应当前的执行要求,程序员可以直接告诉计­算机“做什么”,而不是“怎么做”。未来的使用者完全可以­用计算机语言来实现“智能编程”,用真实生活中的工作流­程来完成编程。

4 结束语

自高级语言出现以来,其发展的速度是惊人的,不少科学家和经济学家­认为,科技的发展速度将按照­摩尔定律呈指数型增长。随着科技的高速发展,会出现更多更高级的编­程语言,计算机技术也必将会得­到更广泛的应用,但随之而来的困难与挑­战,也会像雨后春笋般地纷­纷涌现出来。不少科学家曾试图对未­来进行预测,但其成果大多是不尽如­人意。我们利用过去这面镜子,谨慎地预测未来,是为了让人们看到未来­更多的可能性,以对充满挑战的未来做­好颠覆与变革的准备。■

参考文献

[1]柴孝.C语言与汇编语言的混­合程序设计技术[J].信息与电脑:理论

版,2011(11):181-182

[2]翟乃强.汇编语言与C语言及v­isualc_混合编程[j].青岛科技大学学

报,2003(9):137-138

[3]叶连杰.计算机编程语言的发展­与应用[J].信息与电脑:理论版,

2014(11):191-192

[4]张莉,韩其睿.浅谈C#编程语言的特点及潜在­的新功能[J].仪器仪表

用户,2005(5):83-84

[5] 张越男.试析C#编程语言的特点及功能[J].软件,2013(3):145-146

Newspapers in Chinese (Simplified)

Newspapers from China