现在我想要在terminal运行一个 .c 文件,但是需要先编译。
可是 .js 文件却可以直接运行。
按理说,c不是更接近系统语言吗? .js可以直接运行这是什么原理阿?这两个文件的运行有什么区别?
现在我想要在terminal运行一个 .c 文件,但是需要先编译。
可是 .js 文件却可以直接运行。
按理说,c不是更接近系统语言吗? .js可以直接运行这是什么原理阿?这两个文件的运行有什么区别?
js和python等脚本语言一样,属于动态解释性语言,需要解释器去执行code。他们只需要解释器去run code就行。目前前端最为流行的就是V8引擎,它将js代码转化为字节码,然后再将字节码编译为机器可运行的机器码,这都是解释器干的事情。
大致过程如下:
然后c语言属于编译型静态语言。编译型语言编写的源程序需要经过编译、汇编和链接才能输出目标代码,然后机器执行目标代码,得出运行结果,目标代码由机器指令组成,一般不能独立运行,因为源程序中可能使用了某些汇编程序不能解释引用的库函数,而库函数代码又不在源程序中,此时还需要链接程序完成外部引用和目标模块调用的链接任务,最后输出可执行代码。
8 回答4.6k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
C语言是一种静态编译型语言,需要先将源代码编译成机器可执行的二进制文件(通常是可执行的程序或库文件),然后才能运行。
而JavaScript (JS) 是一种解释型语言,不需要显式的编译步骤。当你运行一个.js文件时,JS引擎会逐行解释和执行代码。
这两种文件的运行的区别主要在于语言本身的特性和执行方式。C语需要进行编译,因此通常具有更高的执行效率和对底层系统的直接控制能力。而JavaScript则是一种解释型语言,相对来说执行速度较慢,但它通过浏览器、Node.js等内置的解释器执行
说人话就是, C语言在硬件底层执行, 因此需要编译成机器认识的语言就是机器语言, 而javascript是浏览器、Node.js等内置的解释器执行, 不需要进行编译, 其实是解释器做了这一步
顺便一提, V8引擎是用C语言写的