打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
所有的编程语言最后会编译成C,再编译成汇编,最后落实到硬件操作上吗?

实际情况并不是这样的。

我们来一条条的看吧:

1.编程语言并不是都要编译成C,这个说法不知道是谁提出来的。C语言和java,python一样,也是一种高级语言。但是C语言有个优势,就是可以嵌套汇编,实现底层交互。

2.很多人存在一个误区,汇编语言就是最底层的语言了,其实计算机还是不认识汇编是个什么东西, 因为计算机只能识别一种语言,那就是机器语言,全都是0和1这样的二进制数。比方说MOV AX,BX,这条汇编的意思是寄存器将BX的内容转移到AX中,对应机器语言的1000100111011000,非常复杂。可以这么理解:汇编语言实际上是机器指令的一种简写形势。

可以看看下图,做一个简单的加法运算,分别用C语言,汇编和机器语言表示,各位就能理解高级语言的好处了。

无论是C还是其他什么语言,最终的目的都是实现某种功能,而这离不开硬件的支持,所以归根结底,还是要从程序和硬件的关系说起。

硬件,程序和编译器之间的关系

在计算机中存在着大量的电子元件,电路就两种情况:开和关,这两种状态分别用1和0来表示,也就是众所周知的二进制, 在计算机中,所有的运算都是以二进制的形式进行的,比方说3+4,在CPU中的表现形式为00110000+01000000,如果是负数运算或浮点运算的话还会更复杂一些,这里不再累述。

通过0和1决定电路状态,那么操作者是通过编程语言操作硬件的呢?这里编译器的作用就体现出来了。

编译器就像是一个翻译一样,也就任人们口中俗称的编程软件。其实用更专业的话来说,编译器实际上是IDE(开发集成环境)中的一个工具。

虽然大家可能在操作中感受不是那么强烈,但如果你在windows控制台下用javac编译过java代码,或者你在linux的命令行下编译过程序,这个时候我们就直接使用了编译器。

最后提一点,并不是所有的语言都会被编译器直接编译成机器语言。C语言是一个比较特殊的语言,因为他是直接可以直接编译为汇编再编译为机器码的,这也是C语言可以和底层打交道的主要原因。像我们熟知的java,它会把源码先转换成一种叫做字节码的东西,通过JVM虚拟机将其转换为机器码。所以说,编译器的类型有很多,作用不能一概而论。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
从零开始的计算机系统,从本质上深入理解计算机
C语言汇编语言机器指令CPU之间是怎么联系起来的(假设加法器和乘法器都具有使能端两个使能端为01就是加法器工作是10就是乘法器工作为了便于记忆于是你给01起了个名字叫add10起名叫mul你的这组运算
穿越计算机迷雾,从零开始构建计算机
从计算简史与开关电路组合理解计算机如何识别代码
让小朋友懂一点计算机(八)|编程语言的发展历史
计算机科学与技术
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服