二级C++精品课程第一章第一节计算机语言及其发展

二级C++精品课程第一章第一节计算机语言及其发展,第1张

二级C++精品课程第一章第一节计算机语言及其发展,第2张

电脑是一种有用的工具。它可以做很多事情,如矩阵计算、方程求解、计算机辅助设计等。计算机在解决问题之前,需要描述解决问题的步骤,这就是所谓的算法。下面是一元二次方程求根的算法示例:
◇计算方程的判别式
◇如果判别式小于零,则输出方程没有实根信息
◇否则计算方程的实根,输出计算结果
我们不能直接输入算法。就像我们通过语言相互交流一样,我们希望计算机用计算机能理解的语言来做事情,这种语言叫做计算机语言。把算法用特定的计算机语言表达出来,输入计算机,这就是计算机编程。用计算机语言表达的算法称为计算机程序(或程序)。
电脑是一台没有意识、没有生命的机器。要让它按照人的意图工作,就要让计算机理解人的意图,接受人发送给它的命令和信息。这就解决了一个“语言”问题。比如一个中国人想和美国人交流,首先需要学习英语,因为英语是美国人听得懂的语言,美国人听不懂中文。同样,计算机也不懂人类的语言,计算机既不能接受中文,也不能接受英文。所以要求人用计算机能理解的特定语言与计算机交流,这就是计算机语言。这种语言与人类长期使用的英语、汉语等自然语言有很大不同。它有严格的定义,一般没有歧义,因为当人们用自然语言交谈时,很容易根据上下文来确定歧义对话的含义。但是电脑做不到这一点,至少现在还没那么智能。
自从计算机出现,就有了计算机编程。最初的计算机编程语言就是所谓的机器语言(也称第一代语言),即直接用机器代码编程。用机器码编程既乏味又容易出错。为了提高编程效率,人们引入了助记符,于是出现了所谓的汇编语言(又称二代语言)。汇编语言和机器语言相比,没有本质区别,只是用助记符代替了机器指令。但这是一个很大的进步。它提高了编程效率和程序的可读性和可维护性。直到今天,还有人在用汇编语言编程。
机器语言是机器指令的集合。每台计算机都有自己的指令集,计算机可以直接执行用机器语言编写的程序。该语言包括:指令系统、数字格式、通道指令、中断字、屏蔽字、控制寄存器信息等。机器代码是一种计算机可以理解和执行的语言。不同类型的机器有不同的机器代码组合。在不同的计算机上计算同一个题目时,必须用不同的机器语言编写程序。语言是最低级的语言。
由于机器码指令是用许多二进制数表示的,所以用机器语言编程必然是繁琐、费时费力、难记、易错、程序检查调试困难、效率低下。例如,字母A表示为1010,数字9表示为1001。机器加法指令代码有三种形式,要考虑符号的进位和溢出。
汇编语言编程效率提高,但执行效率降低。因为在它运行之前,需要一个专门的翻译程序(称为汇编器assembler)将其翻译成机器语言。汇编语言是一种符号语言,几乎和机器语言相对应,但书写中使用的是字符串组成的助记符。比如汇编语言中加法用助记符add表示,减法用助记符sub表示等等。
由于早期计算机速度慢,内存小,所以衡量程序好坏最重要的指标就是机器执行的效率。然而,随着计算机技术的发展,机器硬件的性能大大提高,程序的复杂性也在增加。人们越来越要求把简单重复的工作交给机器,而人更多地从事创造性的工作。程序的可读性和可维护性逐渐成为衡量程序质量的最重要的指标。显然,汇编语言取代机器语言是必然的结果。
虽然汇编语言相比机器语言有了很大的提高,但它仍然是一种低级语言,主要有两个缺点:
◇涉及太多细节;
◇它与特定的计算机相关。
所以,汇编语言也叫面向机器的语言。为了进一步提高编程效率,提高程序的可读性和可维护性,出现了许多高级语言(也称第三代语言),如Fortran、Basic、Pascal、Java、C和C++,其中C/C++是最流行的高级编程语言。
高级语言比低级语言更抽象、更简洁:
◇一条高级语言指令相当于几条机器语言指令。
◇用高级语言编写的程序非常接近自然英语语言,简单易学。
◇用高级语言写程序不需要某种计算机专业知识。
与汇编语言类似,高级语言也需要一个专门的翻译程序(称为编译器编译程序或解释程序),翻译成机器语言后才能运行。
既然机器语言和汇编语言都是计算机可以理解的语言,使用它们就可以完全控制计算机的行为,那么为什么人们还在创造和使用高级编程语言呢?
因为机器语言和汇编语言都是低级语言,都是面向机器的,都与具体的计算机有关。学习难度大,编程效率低,可读性和可维护性差。我们举个例子来说明。一个中国北方人想去欧洲旅游,但是他不懂任何欧洲语言。碰巧的是,一个中国南方的方人也人懂得所有的欧洲语言,如德语、英语、法语、西班牙语等。去欧洲旅行,他们一起旅行。中国北方人和欧洲人交流的方式有两种:一种是学习各种欧洲语言,然后直接和各个国家的人交流;二是让南方人充当翻译,把自己的意思告诉欧洲人,把欧洲人的答案反馈给自己。如果你是北方人,你选择哪种方式?我想答案是肯定的,我一定要请南方人做翻译。虽然南北语言存在一些差异,但这种差异与和欧洲语言的差异相比,显然是太小了。另外,如果直接和欧洲人交流,需要学习多少种语言?

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 二级C++精品课程第一章第一节计算机语言及其发展

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情