在硬件系统之上的第一层系统软件是操作系统。在操作系统之上是程序设计语言,再上就是语言处理程序
image.png

程序设计语言

人与人使用自然语言直接进行沟通交流。
但人和计算机不能直接交流。
程序设计语言是人与计算机进行交流的工具
是用来编写计算机程序的工具:用程序设计语言来编写程序,将需要完成的任务告诉计算机。
image.png
不同的程序设计语言,编制出不同的程序

程序设计语言种类(按照发展过程)

1、机器语言

2、汇编语言

3、高级语言

1、机器语言:计算机自己的语言

计算机内部使用的是二进制。所以计算机能够识别、接收并执行的也是二进制指令。他就是机器语言。
image.png

机器语言实现的例子:

机器语言全部都是0和1构成的二进制代码,若没有注释,很难理解代码的含义。
image.png

优缺点:

缺点+:使用不便,在一种类型的计算机上编写的机器语言程序是不能在另一种计算机上运行的。
image.png
优点+:计算机唯一能够识别和执行的语言,他的执行效率和速度是最高的

2、汇编语言(又叫符号语言)

image.png

汇编语言实现的例子

程序中出现的数字、字母、类似英文单词的助记符都相对容易理解。
image.png

优缺点

优点+:克服了机器语言难以学习掌握的缺点
image.png
缺点+:和机器语言一样,对硬件系统联系紧密

-、低级语言

image.png
image.png

3、高级语言

image.png
image.png

高级语言实现的例子:

高级语言程序中使用的数学公式、英文单词与平时的书写使用都非常接近
image.png
image.png

优缺点:

image.png

常用的高级语言

image.png

语言处理程序

只有机器语言是能够被计算机直接识别并执行的,那么汇编语言和高级语言编写的程序是怎么被计算机理解和执行的呢?
这就是语言处理程序的作用了。将汇编语言、高级语言转化为机器语言。
image.png

源程序

image.png

目标程序

image.png

不同的程序设计语言使用不同的语言处理程序

汇编程序

image.png

计算机系统执行汇编语言源程序的过程

image.png

高级语言编译程序两种工作方式

高级语言所编写的源程序转换为机器语言的目标程序具有两种翻译的方式

  1. 编译方式
  2. 解释方式

    相应的翻译工具

  3. 编译程序

  4. 解释程序

    编译方式

    由编译程序来完成翻译。
    编译程序会把高级语言编写的源程序一次性做编译处理,产生一个与源程序等价的目标程序。
    目标程序不会立即执行,还需要调用其他语言所编写的程序或者标准子程序连接程序形成一个完整的可执行程序之后再执行。从而得到运行成果。
    image.png

    编译程序的特点

    编译程序最显著的特点:可执行程序是可以脱离编译程序和源程序独立存在,并且可以反复使用的。
    编译程序执行速度快,只是每次要修改源程序,都必须重新进行编译生成目标程序。

    常见的编译语言

    C语言、C++

    编译方式的大致过程图示:

    image.png

    解释方式

    用解释程序来完成翻译工作。
    解释程序会把高级语言编写的源程序在专门的翻译程序中逐条语句读入分析
    如果没有错误就将该条语句翻译成一个或多条机器指令。然后立即执行。
    如果在解释时发生错误,就会直接停止解释并立马报错。
    image.png

    解释程序的特点

    解释程序的特点就是每次执行程序,都不能离开解释的环境。他不会生成目标程序,每次运行时逐句检查分析,翻译一句执行一句。
    解释程序这种边解释执行的方式,特别适用于人机对话。

    与编译方式比较,解释方式执行速度慢的3个原因:

    image.png

    常见的解释语言

    BASIC、Python、JS

    解释方式的大致过程图示:

    image.png

    讨论和思考-语言处理程序

    高级语言的语言处理程序采用编译方式和解释方式各有什么特点?
    答:
    编译程序最显著的特点:编译程序会把高级语言编写的源程序一次性做编译处理生成可执行的目标程序,目标程序是可以脱离编译程序和源程序独立存在,并且可以反复使用的。
    编译程序执行速度快,只是每次要修改源程序,都必须重新进行编译生成目标程序。
    解释程序的特点就是每次执行程序,都不能离开解释的环境。他不会生成目标程序,每次运行时逐句检查分析,翻译一句执行一句。解释程序这种边解释执行的方式,特别适用于人机对话。

    同学回答~ 编译方式:事先编好的一个叫做编译程序的机器语言程序放在计算机中。当高级语言编的源程序输入计算机时,编译程序就把源程序自动整个地翻译成用机器指令表示的目标程序。编译是指将源语言转化为目标计算机的可执行二进制代码,如将C、C++编译为Windows上的可执行2进制文件,这种编译一旦完成,那么就只能在特定平台上运行了,由于程序执行的是编译好的二进制文件,因此速度比较快  解释方式:事先编好的一个叫做解释程序的机器语言程序放在计算机中,当高级语言源程序输入计算机后,解释程序自动地逐句翻译源程序,译一句执行一句。 可以这么理解,编译的结果是另外一种语言,而解释的就是一种中间语言。解释是指程序不做任何变动,以源代码的形式提供在目标计算机上执行,但是源生代码计算机是不识别的,因此要边解释边执行,解释一条执行一条,这样的话就比编译要慢了。由于程序要在运行时动态解释语言,因此往往需要特定的平台,例如Java需要目标机器上安装JRE,但是这种方式也有一个好处就是可以跨平台,源代码不变,在运行时根据不同的平台,解释成不同的二进制执行