一台计算机由硬件系统和软件系统两大部分组成,硬件是物质基础,软件是计算机的灵魂。没有软件,计算机就是一台“裸机”,有了软件,才能成为一台真正的“电脑”,而计算机的每一次动作、每一个步骤都是按照编写好的程序设计语言来执行的。
程序设计语言是计算机能够理解和识别用户操作意图的一种交互体系,它按照特定的规则组织计算机指令,使计算机能够进行各种运算处理,按照程序设计语言规则组织起来的一组计算机指令称为计算机程序。计算机程序设计语言的发展,按照与硬件关系的密切程度可以分为机器语言、汇编语言和高级程序设计语言3类。
机器语言是一种二进制语言,它直接使用二进制代码表达指令,是计算机硬件可以直接识别和执行的程序设计语言,具有灵活、直接执行和速度快等特点。不同型号的计算机其机器语言是不相通的,使用某一种型号的计算机机器指令编制的程序,不能在另一种型号的计算机上执行。
汇编语言也称为符号语言,用一些容易理解和记忆的字母、单词来代替一个特定的二进制指令,例如用ADD代表数字逻辑上的加,MOV代表数据传递,DEL代表数据的删除等,通过这种方法,人们很容易去阅读已经完成的程序或者理解程序正在执行的功能。例如计算3+2的加法运算,汇编语言可以描述为ADD3,2RESULT,运算结果写入RESULT。和机器语言类似,不同的计算机结构其汇编指令不同。由于机器语言和汇编语言都是直接操作计算机硬件,并基于不同硬件设计程序,所以它们都被称为低级语言。
无论是机器语言还是汇编语言都是面向硬件操作的,语言对机器的过分依赖,要求使用者必须对硬件结构、机器原理都十分熟悉,这对非计算机专业人员是难以做到的。
高级程序设计语言与低级语言的区别在于,高级程序设计语言是接近自然语言的一种程序设计语言,可以更容易地描述计算问题并利用计算机解决计算问题。例如计算2+3的加法运算,高级程序设计语言可以描述为result=2+3,具体代码形式与编程语言有关,而与计算机结构无关,且同一语言在不同的计算机上的表达方式是一致的。
自1972年第一个高级程序设计语言C语言诞生以来,经过40多年的发展,先后诞生了几百种高级程序设计语言,但大多数语言由于应用领域狭窄而退出了历史舞台,目前常用的高级程序设计语言主要有C、C++、Python、Java、PHP、C#等,其诞生时间如图1-1所示。Python也是一门高级程序设计语言,一次编辑,可以跨平台运行。
图1-1 主要高级程序设计语言诞生时间
高级程序设计语言按照运行方式不同,可以分为静态语言和脚本语言。静态语言采用编译执行,动态语言采用解释执行。无论哪种方式,用户的使用方法是一致的,即都需要通过用户执行程序。
编译是将源代码首先通过编译器转换为目标代码,然后在机器上运行目标代码,源程序和编译器都不再参与目标代码的执行过程。通常情况下源代码是高级程序语言代码,目标代码是机器语言代码,执行编译的计算机程序称为编译器。图1-2所示为程序的编译过程。
图1-2 程序的编译和执行过程
解释是将源代码逐条转换成目标代码的同时逐条运行目标代码的过程。执行解释的计算机程序称为解释器。图1-3所示为程序的解释过程。
图1-3 程序的解释和执行过程
编译和解释的区别在于编译是一次性的,一旦编译完成,程序将不再需要编译源代码;而解释则是在每次运行程序时都需要解释器解释源代码。Python是一门解释性程序设计语言,每次运行程序都是边执行边解释。