计算机组成原理-02-相关背景(二)

wuyou1998 · · 505 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

计算机的编程语言

翻译型语言:C/C++、Objective-C、Golang

解释型语言:Python、Php、JavaScript

翻译+解释型语言:Java、C#

程序翻译和程序解释

计算机只能理解二进制这样的比特位,无法理解人类的语言,所以需要做语言之间的转换。

假设现在有高级的程序语言A,和低级的程序语言B(B能被计算机直接执行)

程序翻译

我们用A编写的代码会先生成B语言代码,再交由计算机执行。

将A生成B的工具叫编译器,生成的过程叫程序翻译

image-20210222233226440

程序解析

我们使用B语言实现了一个程序,这个程序接收A语言作为输入,然后将A语言进行等价的逻辑转换成B语言,再执行。

这个转换的过程叫程序解释,使用B语言编写的程序叫解释器

image-20210222233239722
总结

计算机执行的指令都是低级语言B

翻译过程生成新的B程序,解释过程不生成新的B程序

解释的过程是拿B编写的解释器来解释A程序


计算机的层次

计算机的层次一般如下图:

image-20210222233310696

硬件逻辑层

门、触发器等逻辑电路组成

属于电子工程的领域

微程序机器层

编程语言是微指令集

微指令所组成的微程序直接交由硬件执行

传统机器层

编程语言是CPU指令集(机器指令)

编程语言和硬件是直接相关

不同架构的CPU使用不同的CPU指令集
机器指令 = 微程序 > 微指令
一条机器指令对应一个微程序

一个微程序对应一组微指令    

操作系统层

操作系统层是在软件和硬件之间的适配层

向上提供了简易的操作界面    

向下对接了指令系统,管理硬件资源

汇编语言层

编程语言是汇编语言

汇编语言可以翻译成可直接执行的机器语言(机器指令)

完成翻译的过程的程序就是汇编器

高级语言层

编程语言为广大程序员所接受的高级语言

高级语言的类别非常多,常见的高级语言有:Python、Java、C/C++、Golang等

应用层

满足计算机针对某种用途而专门设计的软件,如XCode

计算机的速度单位

容量单位

在物理层面,高低电平记录信息,理论上只认识0/1两种状态,0/1称为bit(比特位)

0/1能够表示的内容太少了,需要更大的容量表示方法, 字节:1Byte=8bits

image-20210222231402380

速度单位

网络速度:Mbps ==> M bit per second

100Mbps = 100 / 8 = 12.5 MB

CPU频率

CPU的速度一般体现为CPU的时钟频率

CPU的时钟频率的单位一般是赫兹(Hz,秒分之一,每秒中的周期性变动重复次数的计量)

主流CPU的时钟频率都在2GHz以上


计算机的字符和编码集

ASCII码

使用7个bits就可以完全表示ASCII码

包含95个可打印字符,33个不可打印字符(包括控制字符),95 + 33 = 128 = 2^7

由于很多应用或者国家中的符号ASCII码都无法表示,于是对其进行扩充,7bits => 8bits

Extended ASCII码

常见数学运算符,带音标的欧洲字符,其他常用符、表格符等。

世界上有很多语言体系,ASCII无法胜任字符编码国际化的任务。

中文编码集

GB2312

《信息交换用汉字编码字符集——基本集》

一共收录了 7445 个字符,包括 6763 个汉字和 682 个其它符号

GBK

《汉字内码扩展规范》

向下兼容GB2312,向上支持国际ISO标准,收录了21003个汉字,支持全部中日韩汉字

兼容全球的字符集:Unicode

Unicode:统一码、万国码、单一码

Unicode定义了世界通用的符号集,UTF-*实现了编码

UTF-8以字节为单位对Unicode进行编码

Windows系统默认使用GBK编码,编程推荐使用UTF-8编码。


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:wuyou1998

查看原文:计算机组成原理-02-相关背景(二)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

505 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传