首页 理论教育 程序设计语言的演化-大学信息技术基础

程序设计语言的演化-大学信息技术基础

时间:2023-10-30 理论教育 版权反馈
【摘要】:也就是说,需要一种描述程序的语言。程序设计语言经过多年的发展已经从机器语言演化到高级语言。在计算机发展的早期,唯一的程序设计语言是机器语言。用指令助记符及地址符号书写的指令称为汇编指令,而用汇编指令编写的程序称为汇编语言程序。通常,将汇编语言程序称为源程序,汇编后得到的机器语言程序称为目标程序。

程序设计语言的演化-大学信息技术基础

如前所述,计算机解决问题的过程实质上是机械地执行人们为它编制的指令序列的过程。为了告诉计算机应当执行什么指令,就需要一种意义清晰、人使用起来方便、计算机能理解的描述方式。也就是说,需要一种描述程序的语言。供人编写计算机程序的语言就是程序设计语言,也常称为编程语言。程序设计语言经过多年的发展已经从机器语言演化到高级语言。

1.机器语言

本质上计算机只能识别“0”和“1”这样的二进制信息,在计算机内部,一切信息都以二进制编码的形式存在,计算机存储并执行的程序也不例外。在计算机发展的早期,唯一的程序设计语言是机器语言。机器语言的程序全部由“0”和“1”表示出来,是计算机硬件唯一能理解的语言。用机器语言写出的程序称为机器语言程序。

用机器语言编写的程序,计算机可以直接识别,同时由于机器语言程序是直接针对计算机硬件的,因此它的执行效率比较高,能充分发挥计算机的速度和性能优势。但它至少有两个缺点:首先,机器语言是与机器有关的,特定的机器语言只能用在特定的一类机器上,不是通用的。其次,人们用这种语言编写程序很不方便,非常烦琐,工作效率极低,写出的程序难于理解,不论是阅读程序还是调试程序都非常困难。因此,除非特殊情况,一般我们不采用机器语言直接编程。

2.汇编语言

为了解决机器语言难以记忆、理解和阅读等问题,人们设计出第二代语言——汇编语言。汇编语言不再使用机器语言中所使用的用数字编码来代表操作码和操作数的方法。最终,为各种操作码分配各种助记符,比如,用“ADD”代表加操作,用“SUB”代表减操作,用“LOAD”表示将主存中的数据装入寄存器,用“STORE”表示将寄存器中的数据传输到主存等。这些助记符的使用增加了汇编语言的可读性。对于操作数而言,则由程序员存储器中的位置分配描述性的名字符号并在存储器中定位,并且使用这些符号代替在指令中的存储器单元地址。用指令助记符及地址符号书写的指令称为汇编指令,而用汇编指令编写的程序称为汇编语言程序。

举个例子来说,我们把存储器单元地址为6C和6D中的内容相加,并且把相加的结果放在存储器地址为6E的单元中。这个过程的十六进制编码的指令如下:

如果我们为地址6C分配一个名字a,为地址6D分配一个名字b,为地址6E分配一个名字c,于是我们可以使用助记符来表示相同的程序:

虽然编写汇编语言程序对程序员来说难度降低了很多,但是很遗憾,汇编语言程序不能为计算机硬件直接识别与执行,必须经过称为汇编程序的特殊程序将汇编语言代码“翻译”为机器语言才能被硬件执行。通常,将汇编语言程序称为源程序,汇编后得到的机器语言程序称为目标程序。

尽管汇编语言与机器语言相比有不少的优势,但它还是有一些不足。汇编语言与机器语言一般是一一对应的,因此,汇编语言也是与具体使用的计算机有关的,程序设计人员仍然需要从机器语言的角度去思考。这种情况类似于房屋设计——我们毕竟还是要根据木板、钉子和砖块等来设计。确实,在实际的房屋建造中,最后的确还需要一个基于这些基本元素的描述,但是如果我们考虑根据诸如房间、窗户和门等的更大一些的单元来设计,设计过程会更简单一些。

3.高级语言(www.xing528.com)

汇编语言虽然相比机器语言有了很大进步,但仍然需要程序员在所用的硬件上花费大部分精力。用符号语言编程也很枯燥,因为每条机器指令都得单独编码。为了提高程序员效率以及从关注计算机转到关注要解决的问题,导致了高级语言的发展。

高级语言吸收了人们熟悉的自然语言数学语言的某些成分,它由表达各种意义的“词”“数学公式”及特定的语法规则组成。例如,在高级语言中,语句c=a+b描述了将a和b的值相加并保存在c中的过程。显然这更加类似于我们从小就熟悉的数学语言,很容易理解和学会使用。

高级语言适用于许多不同的计算机,使程序员能够将精力集中在应用程序上,而不是计算机的复杂性上。数年来,人们开发了各种各样的高级语言,如FORTRAN、BASIC、Pascal、COBOL、C、C++和Java等。但不管是哪种高级语言写的源程序必须经过“翻译”生成机器语言程序,才能被计算机执行。

今天几乎所有软件开发都采用高级编程语言,这没有什么奇怪的。但是应该注意到,低级语言并没有过时。正如你将在下一节中见到的那样,用高级语言编写的程序在执行之前仍然必须翻译成适用于特定计算机的机器语言。在应用领域中,执行速度是关键,为了优化内存和指令序列的使用,现代程序员有时仍然要使用汇编语言和机器语言。

常见的高级语言主要有以下5种。

①C语言:主要编写与操作系统、硬件驱动相关的程序。无论是Windows还是Linux系统,几乎都是由C语言编写的。C语言可以被认为是一种机器语言与高级语言的过渡语言,或称为中间语言。

②VB语言:具有整洁的编辑环境,易学、即时编译导致简单、迅速的原型;有大量可用的插件。但程序很大,而且运行时需要几个巨大的运行时动态链接库。虽然表单型和对话框型的程序很容易完成,但要编写好的图形程序却比较难,而且调用Windows的API程序非常笨拙,因为VB的数据结构没能很好地映射到C语言中,且移植性非常差。

③C++语言:是在C语言的基础上,添加了许多现代高级语言的特性,包括面向对象、封装、继承与多态等特性。它既具有低级语言可以直接操作内存地址的指针,又具有高级语言的类、对象等概念,可以说是最全面、复杂的一门语言。目前主要应用于大型桌面应用、游戏引擎的开发。

④Java语言:是1995年推出的一门运行在Java虚拟机上的编程语言,具有“一次编译、处处运行”的特点。它摒弃了C++语言的许多缺点,包括多继承、指针等概念,又兼容并包含了C++语言的优点。目前Java语言主要应用于企业级网站的搭建。

⑤Python语言:伴随着人工智能的火热,成为当下许多公司的宠儿。Python是一种脚本语言,不需要编译,直接由Python解释器逐行执行。目前随着深度学习的火爆,Python语言的应用会越来越广泛。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈