皮皮鲁的科技星球

其他

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

计算机芯片的物理特性决定了它只能接受二进制指令。不同计算机芯片的指令集不同。高级编程语言需要转化成二进制机器语言才能被计算机所执行。编译型语言需要使用编译器经过编译和连接生成可执行文件,解释型语言需要使用解释器解释源代码。解释型语言更容易上手,但是运行速度更慢,必要时要使用C/C++重写或使用JIT技术加速。现在各行各业的朋友都开始使用计算机解决自己的业务问题,网络上有大量的免费公开课,教我们处理数据并数学建模。Python等编程语言上手快,开源软件多,足以应付绝大多数的需求。在计算机软硬件体系中,上述工作都是在最顶层,用户执行程序需要依赖于计算机硬件和系统软件。聊天用的微信、娱乐玩的农药、上网打开的浏览器、还有我们自己写的程序…这些程序是如何从源代码,变成计算机芯片可以执行的程序呢?计算机软硬件体系结构本文并不是想把这个复杂的链条都解释得非常清楚,或者鼓励大家都去学习底层编程知识,而是想让读者对这个流程有一个基本的认识。因为,当我们熟练掌握了一定编程基础,开始上手更大规模的数据或更复杂的数学模型时,会遇到一些瓶颈,直接调用别人写好的程序或者应用新热算法都无法直接解决问题。这时候了解计算机的基本组成和运行原理,打好基础,才能为顶层应用拓展思维。计算机只能执行二进制代码也许你已经知道,计算机是基于二进制运行的。就像道家哲学的阴阳一样,计算机只有两个状态,开或关、真或假、1或0…因为,组成计算机的基本元件——半导体只能以二进制进行计算。我们编程所用的C/C++、Python、大数据、AI等层出不穷的技术,以及我们存储在电子设备的文本、音频、图像、视频等媒介,最终都是以二进制的形式,被计算和处理的。计算机体系最底层的工程师要使用二进制代码控制芯片来做计算和处理。我在我的Mac上编写了一个名为plus的c