当前位置: 首页 > 科技观察

计算机组成原理:计算机水平与编程语言_0

时间:2023-03-19 09:53:02 科技观察

计算机基础知识一直是一些非专业学生心中的痛。意识到自己所学知识的不足和不足,想回去补充一下基础知识。计算机基础的课程很多,内容也比较复杂,但是无论是相关书籍还是大学课程,都有些落伍了。特别是计算机基础知识体系复杂,从头学习或复习既费时又费力。有鉴于此,本系列文章将带你更快地补充必要的编程基础知识,涵盖计算机领域的三大基础知识:计算机组成原理、操作系统和计算机网络。这些是大学计算机课程中最重要的内容。文章对这些内容进行了提炼和总结,摒弃了程序员不需要掌握的知识。目的是:帮助大家形成计算机知识结构体系帮助大家理解计算机的底层原理帮助大家在工作实践中学习优秀的设计程序翻译和程序解释计算机不能直接理解人类语言,它只理解01010101。..so因此,我们需要进行程序翻译或程序分析,将人类的语言翻译或分析成计算机可以理解的语言。那么程序翻译和程序分析有什么区别和联系呢?为了理解这个问题,我们引入两种语言,一种是比较高级的计算机语言——L1,一种是比较低级的计算机语言——L0,我们就以这两种语言为例来理解什么是程序翻译,什么是程序解析。程序翻译假设我们现在使用一种比较高级的计算机语言L1来描述程序的逻辑,也就是说我们使用L1来编写程序,那么L1编写的程序是如何执行的呢?当然,它并不是直接执行,而是在执行过程中生成一个逻辑上等价的由低级语言L0组成的程序。这个L0是计算机实际执行的语言。那么,从L1生成L0的过程称为程序翻译,用于生成L0的工具称为编译器。程序翻译过程程序分析同样,如果我们用L1来描述程序的逻辑,那么L1写的程序是如何执行的呢?为了执行L1,我们需要用L0来实现另一个程序,这个程序以L1程序作为输入来执行,L1程序的每一句都会在L0实现的程序中进行等价转换,然后执行。这是程序的分析。其中,使用L0实现的程序称为解释器。程序解释的过程简单总结一下程序翻译和程序分析:对于前面两个例子,计算机执行的指令都是L0。翻译过程生成新的L0程序,解释过程不生成新的L0程序。解释过程由L0解释器解释L1程序,理解程序翻译和程序解释。我们来看看常见的编程语言,哪些语言是翻译语言,哪些是解释语言,如下图:翻译语言和解释语言很常见,我们还有Java和C#,这他们属于什么语言?其实严格来说,它们既不是翻译语言,也不是口译语言,属于翻译+口译语言。翻译+口译如何理解?以Java程序的运行过程为例,Java程序首先会被编译器编译成JVM字节码,然后被解释器解释成机器码,然后由计算机执行。计算机层次与编程语言如果计算机系统是分层次的话,我们可以把它分为七个层次。下面逐层介绍计算机的每一层。硬件逻辑层:主要由门电路、触发器等逻辑电路组成。属于电子工程领域,这里不做介绍。微程序机器层:编程语言主要是微指令集,由微指令组成的微程序直接由硬件执行,主要由生产硬件的公司的程序员编写。传统机器层:编程语言主要是CPU指令集(机器指令),与硬件直接相关。程序员使用机器指令编写的程序可以直接被微程序分析,这里所说的指令集存储在CPU内部,引导和优化CPU的运行。有了指令集,CPU就可以高效运行。我们知道CPU厂商分为两个阵营,AMD和Intel,所以这两家厂商生产的CPU最大的区别就是指令集不同,IntelCPU使用的指令集并不适合AMDCPU,AMD的CPU使用的指令集不适合Intel。除了不同厂商之外,同一厂商还可以生产不同指令集的CPU,即不同架构的CPU使用不同的CPU指令集。微指令、微程序、机器指令的概念操作系统层:一方面,操作系统向上提供简单的操作界面,使用户能够方便地操作计算机;同时向下连接指令系统,对硬件资源进行管理。操作系统对用户程序使用的机器的各种资源进行管理和分配,包括CPU、内存等。例如,当一个用户程序需要运行时,它首先被操作系统加载到内存中,这就需要操作系统首先分配内存空间用于存储。再比如,当程序需要使用某种输出设备输出结果时,操作系统就需要为其提供对该设备的控制权。可见,操作系统是软件和硬件之间的一个适配层。汇编语言层:编程语言是汇编语言,可以直接翻译成可执行的机器语言,完成这个翻译过程的程序就是汇编程序。从这一层开始,他们使用的编程语言是人类更容易理解的语言。高级语言层:编程语言是程序员接受的高级语言。种类很多,有上百种。常见的编程语言包括Python、Java、C/C++、Golang等。应用层:为某种目的而设计的计算机应用程序,如Word、Excel等。