1 了解计算机系统结构
按层次来划分计算机系统机构,我们可以划分成七个层次。
-
硬件逻辑层:主要由⻔电路、触发器等逻辑电路组成,属于电⼦⼯程的领域。
-
微程序机器层:
- 编程语⾔以微指令集为主;
- 微指令所组成的微程序直接交由硬件执⾏;
- 微程序主要是由⽣产硬件的公司的程序员来编写的。
-
传统机器层:
-
编程语⾔以
CPU指令集(机器指令)为主,可直接作用于硬件; -
程序员所⽤机器指令编写的程序可以交由微程序直接进⾏解析,⽽这⾥提到的指令集,存储在
CPU内部,对CPU的运算进⾏指导和优化,拥有指令集,CPU就可以有效地运⾏; -
CPU的制造商分为AMD和Intel两⼤阵营,两⼤⼚商⽣产的CPU最⼤的区别是⸺指令集不同,Intel的CPU所使⽤的指令集不适合AMD的CPU,同样的,AMD的CPU所使⽤的指令集也不适合Intel; -
除了不同⼚商以外,同⼀个⼚商也可以⽣产不同指令集的CPU,即不同架构的CPU使⽤不同的CPU指令集。
-
-
操作系统层:
-
操作系统,⼀⽅⾯,向上提供了简易的操作界⾯,使得用户能够容易地操作计算机;同时,向下对接了指令系统,管理硬件资源。
-
操作系统对用户程序所使⽤机器的各种资源进⾏管理和分配,包括
CPU、存储器等等,⽐如说,当⼀个用户程序需要运⾏的时候,⾸先由操作系统将其加载到内存中,这就需要操作系统⾸先为其分配内存空间来进⾏存储。再⽐如说,某⼀个程序需要使⽤某⼀个输出设备进⾏结果输出的时候,需要操作系统为其提供该设备的控制权。 -
由此可⻅,操作系统是在软件和硬件之间的适配层。
-
-
汇编语⾔层:
- 编程语⾔是汇编语⾔
- 汇编语⾔可以翻译成可直接执⾏的机器语⾔,完成这个翻译过程的程序就是汇编器。从这⼀层开始,它们所使⽤的编程语⾔就是⼈类⽐较容易理解的语⾔了。
-
⾼级语⾔层:编程语⾔就是为⼴⼤程序员所接受的⾼级语⾔,种类⾮常多,有⼏百种,常⻅的编程语⾔有
Python、Java、C/C++、Golang等。 -
应⽤层:计算机针对某种⽤途⽽设计的应⽤,像
Word、Excel等。
2 理解程序翻译与程序解释
计算机是⽆法直接理解⼈ 类语⾔的,它只认识01010101...这样的⽐特位,因此,我们需要进⾏程序翻译或程序解析,把⼈类语⾔翻译或解析成计算机所能理解的语⾔。
3 理解程序概念
程序是指为了完成某种特定功能,以某种程序设计语⾔编写的有序指令的集合+。
程序是指挥CPU⼯作的“⼯作⼿册”计算机只能执⾏⼆进制代码,程序设计语⾔⼀般类似英⽂,想要让计算机理解你写的程序,必须把程序代码“翻译”成计算机能理解的⼆进制代码,根据翻译形式的不同,可以分为:
-
编译
-
🆔定义: 将程序代码翻译成计算机能理解的⼆进制⽬标代码,会⽣成特定的可执⾏代码(在
window上是exe⽂件),可执⾏代码是⼆进制的,⽆法看到源代码。然后执⾏可执⾏代码就可以得到想要的结果◦ -
ℹ️案例:
C、C++、OC等
-
-
解释
- 🆔定义: 将程序代码⼀句⼀句翻译为计算机可以执⾏的指令,⽴即执⾏,不会⽣成可执⾏⽂件
- ℹ️案例:
Python、php、JavaScript等
4 了解语言的区别
-
解释型语⾔:
-
🆔定义:是在运⾏的时候将程序翻译成机器语⾔,所以运⾏速度相对于编译型语⾔要慢。⽐如
PHP、Python◦ -
🅰️优点:可移植性较好,只要有解释环境,可在不同的操作系统上运⾏◦
-
🅱️缺点:运⾏需要解释环境,运⾏起来⽐编译的要慢,占⽤资源也要多⼀些,代码效率低,代码修改后就可运⾏,不需要编译过程
-
-
编译型语⾔:
-
🆔定义: 在程序执⾏之前,有⼀个单独的编译过程,将程序翻译成机器语⾔,以后执⾏这个程序的时候,就不⽤再进⾏翻译了。⽐如
C、C++、Java+◦ -
🅰️优点:运⾏速度快,代码效率⾼,编译后的程序不可修改,保密性较好◦
-
🅱️缺点:代码需要经过编译⽅可运⾏,可移植性差,只能在兼容的操作系统上运⾏
-