编程语言是计算机语言
为什么计算机能够识别计算编程语言,底层物理原理及逻辑是什么?
逻辑函数 模电 数电。
大学课程 先是模拟电子电路。就是三极管 二极管。然后产生数字电子电路 几个三极管产生与非门。最后用与非门结合逻辑函数产生 可计算的东西
汇编语言与机器指令一一对应,但是我们说的汇编都是通过助记符编程,要汇编成二进制代码后才可以被计算机识别。计算机只认识010101组成的计算机指令代码。
高级语言,C语言、java、Python等都是不能被直接识别的,需要编译系统编译成机器指令,也就是二进制代码才可以被识别和执行。
高级语言有大量的支持库,这些支持库一般都是C语言为代表的高级语言写成的,编译成二进制代码后备用。
高级语言的编译器的工作是将人类易识别、理解的计算机语言翻译成计算机能识别的机器代码,并通过link程序将你编写的代码和支持库组成一个完整的执行程序。
编译系统就是个翻译官,最早的编译器肯定也是汇编语言写成,现在一般都是C语言为主导写成,就是滚雪球,从最早的简单的语言迭代发展成现在的众多高级语言。
高级语言分两大类,解释型和编译型。
解释性的一边编译一边执行,自带基础支持库,速度慢,但是门槛略低。
编译型的编译后需要链接(link),一边将支持库代码或者调用入口纳入执行代码。
CPU就是一些数字电路组合,很傻只能进行极为简单的逻辑运算,但是速度贼快,可以达到纳秒级;当然为了提高速度设计出各种CPU结构和指令体现,基本的原理都是数字逻辑运算。
现在的X86体系源自60年代,发展到现在已经是非常复杂臃肿,指令丰富到一般人无法掌握使用,我们现在只能通过高级语言和开发套件才能使用到那些指令。X86的复杂度降低了CPU的效率,增加了CPU设计、制造的难度,苹果公司的M1以极少的晶体管数量和极低的功耗获得了极高的运行速度就是个例证,当然苹果M1的主CPU本身功能一般,高速度的功劳是***功能模块的接入,也就是n年前说的协处理器。
90年代有科技大佬预测未来的计算机发展会出现大量的***处理器,结果被wintel简单粗暴的单一CPU+windows组合替代,现在的苹果给出了新思路,为未来的AI、VR等技术带来希望
您一定用过算盘吧,其实,计算机的工作原理跟算盘差不多,也可以说算盘是一种机械计算机。下面就借算盘给您解释一下计算机的工作原理。
算盘上的算珠就相当于计算机的寄存器,每个算珠有两种状态,初始位置和被拨上去,这可以对应计算机每个数位的0和1。使用算盘做加法时,先拨动算珠写入第一个数据,再拨动算珠写入第二个数据,按照规则这个数被累加到第一个数上了。用计算机术语说,算盘的拨动规则就是CPU(中央处理器)的运算规则,一次算盘操作,就相当于CPU从寄存器里读取两个数把它们相加的结果写到寄存器里。
当然了算盘是全手动的,想连续计算就得不断拨算珠。计算机里有一个时钟,每隔一段时间,就自动运算一次。这个时钟的频率,就是CPU的主频。有了这个时钟计算机就可以自动地完成一系列的运算了。为了让计算机能连续完成运算,我们得写好拨算珠的步骤(拨上、拨下、进位之类),这样计算机在时钟的驱动下就可以一步一步完成设计好的操作。这样的步骤就是汇编语言了。汇编语言写的是操作寄存器的步骤,一般人很难看懂。人们希望写一句“1+1=?”计算机就能完成加法计算,于是有人就设计出了比较接近这样的语言的高级语言,比如,C语言。先把C语言程序翻译成汇编语言(机器语言),就可以让计算机按照人的指示进行工作了。
用算盘做加减法是很方便的,但乘法除法这些就比较困难了。CPU要比算盘复杂得多,做四则运算都不是事儿。比如,做除法只需几次移位操作就可以(二进制向右移位是除二,向左移位是乘二)。还可以做逻辑运算,比如,两个都是真结果就是真,有一个***结果就是***之类。这些就是数字电路中与非门的原理了。比如,两个串联在一起的开关,断开了一个线路就会断,这就是与门。
计算机原理大致就是这些了。原理上挺简单的,我曾经试着用几十个继电器做CPU,结果没有成功,因为,继电器的时间响应太慢了,这个庞大的CPU要么卡壳,要么停不下来,一次都没有成功。说这件事就是想帮助您理解计算机的原理跟算盘原理是大同小异的,计算机并不神秘。当然了要把它做得很快需要很多高技术的加工工艺了。
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/22055.html