《像计算机科学家一样思考C++》——1.1 什么是编程语言

简介:

本节书摘来自异步社区出版社《像计算机科学家一样思考C++》一书中的第1章,第1.1节,作者: 【美】Allen B. Downey , ,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.1 什么是编程语言

像计算机科学家一样思考C++
你即将学习的编程语言是C++。自1998年起的AP考试都以C++为基础。在这之前,采用的是Pascal。C++和Pascal都是高级编程语言,你可能听说过的其他高级语言有Java、C和FORTRAN。

你可能从“高级编程语言”这个名字中得知还有低级编程语言。低级编程语言一般指的是机器语言或者汇编语言。一般来说,计算机只能执行用低级语言编写的程序。因此,高级语言编写的程序需要先转换成低级语言再执行。高级语言的一个小缺点就是这一转换过程需要耗费一些时间。

但是,高级语言具有巨大的优势。首先,用高级语言编程要容易得多,这意味着该程序的编程时间较短,简明易读,正确性较高。其次,高级语言具有可移植的优势。这意味着用高级语言编写的程序只要经过略微的修改就可以在不同的计算机操作系统上运行。而用低级语言编写的程序只能在某一种计算机系统上运行,若要在另一种系统上运行,则需要重新编写代码。

鉴于这些优势,几乎所有的程序都是用高级语言编写。低级语言只应用在少数特殊场景中。

有两种将高级语言翻译成低级语言的方式:解释或者编译。解释器就是一个读取高级程序并执行的程序。实际上,解释器逐行翻译程序,交替读取代码行及执行命令,如图1-1所示。

image

图1-1

编译器则会在执行命令前,一次性地将全部高级程序代码翻译成机器语言。通常可以将编译程序作为一个单独的步骤,稍后再执行编译后的代码。在这种情况下,高级程序称为源代码;编译后的程序称为目标代码或者可执行代码。

以下面这种情况为例,假设你用C++编写程序。你可能选择一个文本编辑器来编写程序(文本编辑器就是一个简单的文字处理器)。当程序编写完成时,可以将它保存为program.cpp。program是你自己命名的文件名,后缀.cpp则表示文件为C++源代码。

然后,根据编程环境,可以关闭文本编辑器,运行编译器。编译器会读取源代码,编译源代码并创建一个包含目标代码的新文件program.o,或者可执行文件program.exe,如图1-2所示。

image

图1-2

下一个步骤就是运行程序,这一步需要程序的执行器。程序的执行器需要加载可运行程序(从硬盘复制到内存)并让计算机开始执行程序。

尽管这一过程看起来有点复杂,但是好消息是在绝大多数的编程环境(有时称为开发环境)中,这些步骤已经能够自动执行。一般来说,只需要编写一段程序,输入一条命令就可以完成编译和运行过程。另一方面,了解程序执行过程中有哪些步骤在后台运行是很有用的,这样在出错的时候你可以很快发现问题所在。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章
|
11月前
|
存储 算法 搜索推荐
在C++编程语言中数组的作用类型
在C++编程语言中数组的作用类型
88 0
在C++编程语言中数组的作用类型
|
11月前
|
算法 程序员 编译器
C++与C语言的差异:编程语言之间的奥秘探索
C++与C语言的差异:编程语言之间的奥秘探索
149 0
|
11月前
|
存储 程序员 C++
在C++编程语言中指针的作用类型
在C++编程语言中指针的作用类型
106 0
|
11月前
|
机器学习/深度学习 开发框架 人工智能
探索C++的深邃世界:编程语言的魅力与实践
探索C++的深邃世界:编程语言的魅力与实践
|
Java 程序员 Apache
编程语言比拼之Java VS C++
Java和C++都是非常受欢迎的编程语言,各有各的优势和适用场景。以下是对它们的简要比较:
248 0
|
4月前
|
算法 网络协议 数据挖掘
C++是一种功能强大的编程语言,
C++是一种功能强大的编程语言,
95 14
|
8月前
|
算法 C# 开发工具
《黑神话:悟空》背后的编程语言揭秘——超越C++的多元技术融合
【8月更文挑战第27天】在游戏开发领域,一款游戏的成功往往离不开其背后强大的技术支持和编程语言的精妙运用。《黑神话:悟空》作为备受瞩目的国产单机动作游戏,其开发过程不仅涉及了多种编程语言,更是一次技术创新的集中展现。然而,当我们深入探讨其开发语言时,会发现它并非仅依赖于单一的C++,而是融合了多种编程语言的优势,共同铸就了这款游戏的辉煌。
412 0
|
10月前
|
算法 Java 程序员
【C++】挑战与机遇并存的编程语言—前序
【C++】挑战与机遇并存的编程语言—前序
75 1
|
10月前
|
Java Go C#
编程语言C#、C++、Java、Python、go 选择哪个好?
我想说的是,不论选择哪种编程语言,决定选择的都是你最终的目的,做选择之前,先充分调研每一个选择项,再做选择思路就会非常清晰了。
218 3
|
11月前
|
C++ 算法 Rust
从C++看编程语言发展脉络
【5月更文挑战第1天】自1979年以来C++历经40年发展,以其复杂语法影响了Go、Rust和Zig等语言。 回顾C++11,引入了范围for循环、Lambda表达式、自动类型推导、统一初始化、删除和默认函数、nullptr、委托构造器、右值引用、新标准库如线程支持及算法等。C++持续演进,保持其在编程语言中的影响力。
155 0
从C++看编程语言发展脉络

热门文章

最新文章