## 1.1 什么是编程语言 你即将学习的编程语言是C++。自1998年起的AP考试都以C++为基础。在这之前,采用的是Pascal。C++和Pascal都是__高级编程语言__,你可能听说过的其他高级语言有Java、C和FORTRAN。 你可能从“高级编程语言”这个名字中得知还有低级编程语言。低级编程语言一般指的是机器语言或者汇编语言。一般来说,计算机只能执行用低级语言编写的程序。因此,高级语言编写的程序需要先转换成低级语言再执行。高级语言的一个小缺点就是这一转换过程需要耗费一些时间。 但是,高级语言具有巨大的优势。首先,用高级语言编程要容易得多,这意味着该程序的编程时间较短,简明易读,正确性较高。其次,高级语言具有可移植的优势。这意味着用高级语言编写的程序只要经过略微的修改就可以在不同的计算机操作系统上运行。而用低级语言编写的程序只能在某一种计算机系统上运行,若要在另一种系统上运行,则需要重新编写代码。 鉴于这些优势,几乎所有的程序都是用高级语言编写。低级语言只应用在少数特殊场景中。 有两种将高级语言翻译成低级语言的方式:__解释__或者__编译__。解释器就是一个读取高级程序并执行的程序。实际上,解释器逐行翻译程序,交替读取代码行及执行命令,如图1-1所示。 ![figure_0015_0002](https://box.kancloud.cn/03dec6653239eb010274963b41c3265c_630x201.jpg) 图1-1 编译器则会在执行命令前,一次性地将全部高级程序代码翻译成机器语言。通常可以将编译程序作为一个单独的步骤,稍后再执行编译后的代码。在这种情况下,高级程序称为__源代码__;编译后的程序称为__目标代码__或者__可执行代码__。 以下面这种情况为例,假设你用C++编写程序。你可能选择一个文本编辑器来编写程序(文本编辑器就是一个简单的文字处理器)。当程序编写完成时,可以将它保存为 program.cpp。program 是你自己命名的文件名,后缀.cpp 则表示文件为 C++源代码。 然后,根据编程环境,可以关闭文本编辑器,运行编译器。编译器会读取源代码,编译源代码并创建一个包含目标代码的新文件 program.o ,或者可执行文件program.exe,如图1-2所示。 ![figure_0015_0003](https://box.kancloud.cn/b6fbf8c7a7cd91a9bca506e1f73ba94e_732x202.jpg) 图1-2 下一个步骤就是运行程序,这一步需要程序的执行器。程序的执行器需要加载可运行程序(从硬盘复制到内存)并让计算机开始执行程序。 尽管这一过程看起来有点复杂,但是好消息是在绝大多数的编程环境(有时称为开发环境)中,这些步骤已经能够自动执行。一般来说,只需要编写一段程序,输入一条命令就可以完成编译和运行过程。另一方面,了解程序执行过程中有哪些步骤在后台运行是很有用的,这样在出错的时候你可以很快发现问题所在。