内容目录
多级层次结构
计算机系统结构根据分层架构维度来分析的话,可以分为6层,如上图所示,这6层分别为(由低到高):
-
微程序机器M0(硬件执行微指令)
-
传统机器M1(伪指令)
-
操作系统M2(操作系统)
-
汇编语言机器M3(汇编语言)
-
高级语言机器M4(高级语言)
-
应用语言机器M5(应用语言)
根据您提供的六层计算机系统结构分层架构,我们可以分析每一层的功能作用和编程语言如下: -
微程序机器M0(硬件执行微指令)
- 功能作用:
- 这一层是硬件的直接抽象,它执行微指令,是计算机最底层的执行单元。
- 微程序机器M0负责将微指令解码并执行,是控制单元(CU)的一部分,它根据微指令序列控制计算机的所有操作。
- 编程语言:
- 微指令集:由硬件设计者定义,用于控制微程序执行的指令集合。
- 硬件描述语言(如VHDL、Verilog):用于描述微程序机器M0的硬件结构和行为。
- 功能作用:
-
传统机器M1(伪指令)
- 功能作用:
- 这一层提供了比微程序机器M0更高一级的抽象,它使用伪指令(也称为机器指令)来执行程序。
- 传统机器M1将程序员编写的程序翻译成机器指令集,由微程序机器M0执行。
- 编程语言:
- 机器语言或机器指令集:由CPU架构定义的指令集合。
- 功能作用:
-
操作系统M2(操作系统)
- 功能作用:
- 这一层提供了操作系统功能,负责资源的分配和管理、进程的调度以及提供系统服务。
- 操作系统M2为上层软件提供了统一的接口,使得应用程序可以无需关心底层硬件细节。
- 编程语言:
- 系统调用接口(API):应用程序通过系统调用来请求操作系统服务。
- 汇编语言或C语言等低级语言:用于编写操作系统的核心部分。
- 功能作用:
-
汇编语言机器M3(汇编语言)
- 功能作用:
- 这一层提供了汇编语言编程环境,允许程序员使用符号化的指令来编写程序。
- 汇编语言机器M3将汇编语言程序翻译成机器指令集,由传统机器M1执行。
- 编程语言:
- 汇编语言:使用助记符来代替机器指令的操作码,使得程序更易于阅读和编写。
- 功能作用:
-
高级语言机器M4(高级语言)
- 功能作用:
- 这一层提供了高级语言编程环境,允许程序员使用更加抽象和易于理解的编程语法。
- 高级语言机器M4负责将高级语言程序编译或解释成机器指令集,由汇编语言机器M3或传统机器M1执行。
- 编程语言:
- 高级语言:如C、C++、Java、Python等,提供了丰富的数据类型和控制结构。
- 功能作用:
-
应用语言机器M5(应用语言)
- 功能作用:
- 这一层提供了特定领域的应用语言编程环境,用于解决特定领域的问题。
- 应用语言机器M5通常提供了针对特定任务的库和工具,使得程序员能够更高效地开发应用程序。
- 编程语言:
- 应用语言:如SQL(数据库查询)、HTML/CSS/JavaScript(网页开发)等,针对特定应用领域的编程语言。
- 功能作用:
每一层都提供了对下一层的抽象,使得程序员可以在更高的层次上进行编程,而无需关心底层细节。同时,这种分层结构也促进了计算机系统的模块化和可扩展性。
问题
-
为什么Python和Java等解释执行的语言不是应用语言而是将它们划分为高级语言?
主要是因为通用和专用。
其实我们来看下一般应用语言的定义来看就知道其中的区别了,
SQL、HTML/JS/CSS等这类语言是专用的语言,比如:SQL是数据操作的语言,HTML/JS/CSS是web应用的语言,但是目前由于NodeJS的出现,JS更加通用,所以JS可能会逐渐成为高级编程语言。比较专业的解释:
Java和Python虽然最终需要被编译或解释成机器指令来执行,但它们并不被归类为应用语言的原因在于它们提供了比应用语言更通用和抽象的编程环境。
因此,尽管Java和Python最终也是被解释或编译成机器指令来执行的,但由于它们提供了更通用和抽象的编程环境,以及更复杂的执行模型,它们被归类为高级语言,而不是应用语言。