采用编译方法的高级语言源程序在编译后,在对高级语言编写的源程序进行编译时

  采用编译方法的高级语言源程序在编译后,在对高级语言编写的源程序进行编译时

  计算机体系结构

  计算机的物理属性限制了它只能执行二进制文件,再复杂华丽的程序和应用,在底层都是0和1。

  计算机的物理底层是半导体。

  也就是半导体只能用二进制计算。

  可执行文件二进制机器语言的集合,可以由机器执行以获得所需的结果。例如,在。exe文件在Windows中是可执行的。

  计算机可以执行的指令称为机器语言机器码。不同的计算机芯片厂商设计不同的半导体电路,在芯片上编程有不同的二进制规则,称为指令集(指令集架构,ISA)。

  c:编译语言:正是因为不同的厂商有不同的指令集,才催生了C语言,建立了更通用的编程范式。

  用编译器把C语言编译成计算机能识别的机器语言:

  # plus.c是一个C语言文件gcc -o plus plus.c #将plus.c编译成Linux/Mac # plus下的plus可执行文件作为可执行文件,这是机器码。上面代码中的Gcc是开源的编译器

  C/C /Fortran语言是编译型语言的一种。从编译语言的源代码到可执行文件,包含三个链接:编译(compile)汇编(assembly),* *链接* *。

  编译+汇编,将C源代码转换成机器码;如果其他代码(函数等。)用于代码中,需要更新当前可执行文件中的代码连接

  编译汇编连接缺一不可,尤其是连接的存在,导致对不同文件的编译顺序要求严格,二次调试难度较大。因为操作系统不同,架构不同,调用各种接口的代码会不一样,然后编译过程也会不一样,所以应用软件在不同的操作系统下会有不同版本

  Python:解释性语言:为了方便计算机科学中的任何问题,都可以通过增加一个中间层来解决。

  C等编译语言很难调试,这就催生了解释性语言。Python、R、Matlab、Java、JavaScript……

  解释型语言,一般用C语言等低级语言做一个虚拟机或者解释器。先把解释语言解释成编译语言,再继续从编译语言到机器码的链接,这样速度会比较慢。

  在不同的操作系统下,可以运行相同的。py源代码,但是不能运行相同的。c文件。

  左手快速,右手方便。你既想要解释性语言的方便,又想要编译语言的速度。

  方案一:以Python的numpy为例,用于编译语言编写的模块。numpy的库写的是编译型语言。安装numpy时,下载C/C和Fortran源代码(编译型语言),然后本地编译(编译型语言机器码)成可执行文件。您可以使用Cython编写自己的响应库。

  方案二:JIT(Just-In-Time)即时编译技术JIT将需要加速的代码编译成机器语言。

  参考计算机基础系列:计算机如何执行源代码

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: