zl程序教程

您现在的位置是:首页 >  后端

当前栏目

《C++程序设计教程(第3版)》——第1章,第1节计算机语言与程序

2023-09-11 14:16:11 时间
本节书摘来自华章出版社《C++程序设计教程(第3版)》一书中的第1章,第1.1节计算机语言与程序,作者张志航,更多章节内容可以访问云栖社区“华章计算机”公众号查看 第1章 C++概述1.1 计算机语言与程序 人类语言是人与人之间交流信息的工具,而计算机语言是人与计算机之间交流信息的工具。

本节书摘来自华章出版社《C++程序设计教程(第3版)》一书中的第1章,第1.1节计算机语言与程序,作者张志航,更多章节内容可以访问云栖社区“华章计算机”公众号查看

第1章 C++概述
1.1 计算机语言与程序
人类语言是人与人之间交流信息的工具,而计算机语言是人与计算机之间交流信息的工具。用计算机解决问题时,人们必须首先将解决问题的方法和步骤按照一定的规则和序列用计算机语言描述出来,形成计算机程序,然后让计算机自动执行程序,完成相应功能,解决指定的问题。下面先介绍计算机语言与程序经历的3个发展阶段。

1.1.1 机器语言与程序
机器语言是第一代计算机语言。任何信息在计算机内部都是采用二进制代码表示的,指挥计算机完成一个基本操作的指令(称为机器指令)也是由二进制代码表示的。每一条机器指令的格式和含义都是计算机硬件设计者规定的,并按照这个规定制造硬件。一个计算机系统全部机器指令的总和称为指令系统,它就是机器语言。用机器语言编制的程序为如下形式:
0000 0100 0001 0010
0000 0100 1100 1010
0001 0010 1111 0000
1000 1010 0110 0001
...
每一行都是一条机器指令,代表一个具体的操作。机器语言程序能直接在计算机上运行,且运行速度快、效率高,但必须由专业人员编写。机器语言程序紧密依赖于硬件,程序的可移植性差。所谓移植,是指在一种计算机系统下编写的程序经过修改可以在另一种计算机系统中运行,并且运行结果一样。改动越少,可移植性越好;改动越多,可移植性越差。

1.1.2 汇编语言与程序
机器语言是由二进制代码构成的,难以记忆和读写,用它编写程序比较困难。于是计算机工作者发明了汇编语言,用来代替机器语言编写程序。汇编语言是一种符号语言,它用一个有意义的英文单词缩写来代替一条机器指令,如用ADD表示加法,用SUB表示减法。英文单词缩写被称为助记符,每一个助记符代表一条机器指令,所有指令的助记符集合就是汇编语言。用汇编语言编写的程序有如下形式:
MOV AL 12D // 表示将十进制数12送往累加器AL
SUB AL 18D // 表示从累加器AL中减去十进制数18

 ...

HLT // 表示停止执行程序
汇编语言改善了程序的可读性和可记忆性,使编程者在编写程序时稍微轻松了一点。但是汇编语言程序不能在计算机中直接运行,必须把它翻译成相应的机器语言程序才能运行。将汇编语言程序翻译成机器语言程序的过程称为汇编。汇编过程是计算机运行汇编程序自动完成的,如图1-1所示。汇编语言是第二代计算机语言。


34a4cc6ca07c380cc5809df826c17d4c9eeeda63

1.1.3 高级语言与程序
机器语言和汇编语言都是面向机器的语言,统称为低级语言。它们受特定计算机指令系统的限制,通用性较差,一般只适用于专业人员。非专业人员若想学习使用低级语言编写程序比较困难,为解决这一问题,计算机工作者发明了高级程序设计语言,简称高级语言。高级语言是第三代计算机语言。高级语言用类似于人类自然语言和数学语言的方式描述问题、编写程序。例如,用C++语言编写的程序片段如下:
int a, b, c; // 定义变量a、b和c
cin a b; // 输入变量a、b的值
c = a + b; // 将变量a、b的值相加,结果赋给变量c
cout c; // 输出变量c的值
该程序片段的功能见每条语句后面的说明。用高级语言编写程序时,编程者不需要考虑具体的计算机硬件系统的内部结构,即不需要考虑计算机的指令系统,而只要告诉计算机“做什么”即可。至于计算机“怎么做”,即用什么机器指令去完成,不需要编程者考虑。
高级语言程序也无法在计算机中直接运行。若要运行高级语言程序,首先必须将它翻译成机器语言目标程序,这个翻译的过程称为编译,编译是由“编译程序”(也称为“编译器”)完成的。然后由“连接程序”将目标程序与系统提供的标准函数的库程序连接,生成可执行程序。可执行程序可以在计算机中运行。编译、连接过程如图1-2所示。“编译程序”和“连接程序”属于计算机系统软件。


cf891a572cf558aecda008d6a3e44af51efe3792

高级语言不仅易学易用、通用性强,而且具有良好的可移植性。如果想把高级语言程序移植到另一个计算机系统中,只需对源程序稍加改动甚至不改动,使用目标计算机系统的编译程序将高级语言源程序重新编译即可。不同的计算机系统具有不同的编译程序。
目前世界上有数百种高级语言,应用于不同领域,而C++作为其中的优秀语言得到了广泛的使用。


【数组与链表算法】矩阵算法在程序中常见的简单应用 | C++ 数组与链表都是相当重要的结构化数据类型,也都是典型线性表的应用。线性表用于计算机中的数据存储结构,按照内存存储的方式基本上可以分为以下两种:静态数据结构和动态数据结构。数组类型就是一种典型的静态数据结构,动态数据结构又称为链表。在我前面的算法系列文章都细致的对二者的使用方法做过讲解。