什么是脚本语言
javascript吧
全部回复
仅看楼主
level 10
秦国 楼主
2021年10月02日 05点10分 1
level 10
秦国 楼主
在维基百科上的通俗解释是,一般使用文本保存,不需要'编译'的语言的,直接由解释器的语言
2021年10月02日 05点10分 2
level 10
秦国 楼主
也就是说脚本语言其实是为了方便的使用,运行简单的一门语言。就像js一样,在去掉BOM,DOM,还有NodeJS之后,只剩下动态的变量声明,基本的逻辑语句if/else/elseif,和循环语句while-do,for,还有数组,对象{},函数function。非常的简单,入门轻松。
2021年10月02日 05点10分 3
level 10
秦国 楼主
似乎就这样讲完了脚本语言是什么,等等,其实我们还没有讲到本质和关键。
2021年10月02日 05点10分 4
level 10
秦国 楼主
上面我们说到了解释器,在编译原理里面相对应的还有编译器。这样我们好像联想到了编译型的语言,比如我们刚刚入门可能会学到的c语言,需要通过编译器编译成机器语言然后由引导装载程序读取复制到内存中执行
2021年10月02日 05点10分 5
level 10
秦国 楼主
编译器
编译器能够将我们用某种语言编写的程序代码转化成另一种语言的程序。通常来说,它会将源程序编译成机器语言。
2021年10月02日 05点10分 6
level 10
秦国 楼主
解释器
解释器根据程序中的算法逻辑执行,是一种执行程序的软件。
2021年10月02日 05点10分 7
level 10
秦国 楼主
机器语言
有些语言编写的程序无需借助软件执行,也就是说不需要语言处理器,这种语言就成为机器语言。这种语言可以直接通过硬件执行。
但是需要注意的是,我们编写的机器语言程序,需要通过软件从硬盘上读取复制到内存中才能执行。
2021年10月02日 05点10分 8
level 10
秦国 楼主
由上面的解释可以看出来,js是一门解释型的语言。是一边执行代码逻辑,一边逐行解释,不会有一开始的编译成机器语言的过程。这样一看,js还是需要编译,只是是在执行的过程中进行编译,在js的解释器中,还是有编译器这个东西,比如,我们会说js在预编译过程中,会提升变量声明,这就是编译器在执行预编译。
2021年10月02日 05点10分 9
level 10
秦国 楼主
在现代的语言处理器中,编译器和解释器很多时候是你中有我,我中有你,有时候会难分彼此。比如java语言,java语言先将源文件编译成java二进制文件,然后通过java虚拟机的解释器来进行执行,但是有些虚拟机为了速度,在执行过程中,会用编译器将一部分java二进制代码直接转化成机器语言使用,在执行过程中进行的机器语言转化称为动态编译或JIT(just-in-timecompile)。
2021年10月02日 05点10分 10
level 10
秦国 楼主
经过上面的学习,我们就会有疑问,我们为什么不把所有的语言都编译机器语言,这样速度快,还不用每次都解释执行。
2021年10月02日 05点10分 11
level 10
秦国 楼主
因为我们的高级程序语言应该能够使跨平台的,我们的虚拟机是一个隔离的虚拟运行环境,只要有这个虚拟机在,我们写的程序就可以跑起来,不管在哪个平台。虚拟机的作用就是,把我们的源程序编码成能在当前平台运行的机器语言,或者说是cpu指令。
2021年10月02日 05点10分 12
level 10
秦国 楼主
取决于你怎么解读这个问题。
从数学的角度,或者从科学的角度来说,王垠的说法是
正确的
,但这个正确的答案对解答题主的疑问并无帮助。
2021年10月02日 05点10分 13
level 10
秦国 楼主
从工程的角度来说,我们讲究的是一个问题的『实用价值』,把这个问题上升到哲学意义上其实用处不大。
传统意义上的所谓编译与解释,区别在于代码是在什么时候被翻译成目标CPU的指令。——虽然这种解释从科学上说不通(科学上,王垠的那个定义更准确),但这却是一直以来大家更认可的更约定俗成的定义。
作者:pansz
链接:https://www.zhihu.com/question/21486706/answer/18642540
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2021年10月02日 05点10分 14
level 10
秦国 楼主
对 C 语言或者其他编译型语言来说,编译生成了目标文件,而这个目标文件是针对特定的 CPU 体系的,为 ARM 生成的目标文件,不能被用于 MIPS 的 CPU。这段代码在编译过程中就已经被翻译成了目标 CPU 指令,所以,如果这个程序需要在另外一种 CPU 上面运行,这个代码就必须重新编译。
作者:pansz
链接:https://www.zhihu.com/question/21486706/answer/18642540
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2021年10月02日 05点10分 15
1 2 尾页