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

简介: 本节书摘来自华章出版社《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++作为其中的优秀语言得到了广泛的使用。

相关文章
|
8天前
|
编译器 开发工具 C++
Dev-C++详细安装教程及中文设置(附带安装包链接)
Dev-C++详细安装教程及中文设置(附带安装包链接)
29 0
|
22天前
|
存储 缓存 算法
【C/C++ 性能优化】提高C++程序的缓存命中率以优化性能
【C/C++ 性能优化】提高C++程序的缓存命中率以优化性能
111 0
|
24天前
|
程序员 API 数据库
【Cmake工程 库相关教程 】深入理解CMake工程C/C++ 库管理技巧
【Cmake工程 库相关教程 】深入理解CMake工程C/C++ 库管理技巧
59 0
|
24天前
|
存储 并行计算 前端开发
【C++ 函数 基础教程 第五篇】C++深度解析:函数包裹与异步计算的艺术(二)
【C++ 函数 基础教程 第五篇】C++深度解析:函数包裹与异步计算的艺术
39 1
|
24天前
|
数据安全/隐私保护 C++ 容器
【C++ 函数 基础教程 第五篇】C++深度解析:函数包裹与异步计算的艺术(一)
【C++ 函数 基础教程 第五篇】C++深度解析:函数包裹与异步计算的艺术
46 0
|
23天前
|
Java 程序员 Maven
【C/C++ CommonAPI入门篇】深入浅出:CommonAPI C++ D-Bus Tools 完全使用教程指南
【C/C++ CommonAPI入门篇】深入浅出:CommonAPI C++ D-Bus Tools 完全使用教程指南
54 0
|
2天前
|
缓存 编译器 API
NumPy与其他语言(如C/C++)的接口实践
【4月更文挑战第17天】本文介绍了NumPy与C/C++的接口实践,包括Python与C/C++交互基础、NumPy的C API和Cython的使用。通过案例展示了如何将C++函数与NumPy数组结合,强调了内存管理、类型匹配、错误处理和性能优化的最佳实践。掌握这些技能对于跨语言交互和集成至关重要。
|
11天前
|
程序员 C++
C++语言模板学习应用案例
C++模板实现通用代码,以适应多种数据类型。示例展示了一个计算两数之和的模板函数`add&lt;T&gt;`,可处理整数和浮点数。在`main`函数中,展示了对`add`模板的调用,分别计算整数和浮点数的和,输出结果。
10 2
|
24天前
|
Java API 开发工具
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用(三)
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用
30 0
|
24天前
|
Java 数据处理 数据库
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用(二)
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用
34 0