欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

常见的解释型语言

墨初 知识笔记 62阅读

什么是解释型语言?

答:解释型语言:程序不需要 编译 ,程序在运行时才翻译成 机器语言 ,每执 行一次都要翻译一次。

解释性语言和编译型语言有什么区别?

答:解释性语言的程序不需要编译,相比编译型语言省了道工序,解释性语言在运行程序的时候才逐行翻译。 优点: 有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。 灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。 缺点: 每次运行的时候都要解释一遍,性能上不如编译型语言。 既然编译型和解释型各有缺点就会有人想到把两种类型整合起来,取其精华去其糟粕。 就出现了半编译型语言。 比如C#,C#在编译的时候不是直接编译成机器码而是中间码,.NET平台提供了中间语言运行库运行中间码,中间语言运行库类似于Java虚拟机。 .net在编译成IL代码后,保存在dll中,首次运行时由JIT在编译成机器码缓存在内存中,下次直接执行(博友回复指出)。

如何在解释型语言中实现函数调用?

答:函数调用也是个大难题,解释型语言中要做到无视函数返回类型和传入数据,如果不返回相当于自动返回NULL,那么我们就可以使用一个返回void*的,参数为一组void*的函数指针,也就是void (*) (std::vector<void*>* args),因此我们可以在类中实现如下代码进行函数的添加和调用: 因为是一个无返回值的函数,所以最后return NULL,而且是一个无参数的函数,所以传入的args也为NULL。

java是解释型语言还是动态语言?

答:很多人认为解释型语言都是动态语言,这个观点是错的! Java是解释型语言但是不是动态语言,Java不能在运行的时候改变自己结构。 反之成立吗? 动态语言都是解释型语言。 也是错的!

声明:无特别说明,转载请标明本文来源!