翻译的结果是什么?它会将高级语言转换为汇编语言还是机器语言,这是二进制代码?
如果是后者,那是否意味着解释语言与简介集无关?
一种语言只能有一个翻译吗?是因为解释器没有进行任何优化,所以我们不需要找到更好的解释器吗?
答案 0 :(得分:0)
翻译的结果是什么?
解释器的结果是解释程序的结果。因此,如果你有程序print "hello"
,运行解释器的结果就是“hello”被打印到屏幕上。
这就是将解释器与编译器区分开来的结果,而编译器的结果是可执行文件,只有在运行该文件时,“hello”才会打印到屏幕上。
它会将高级语言改为汇编语言还是机器语言,这是二进制代码?
它可能(如果您的“解释器”的定义包括JIT编译器),但通常解释器只生成中间字节代码,然后解释它而不生成程序集或机器代码。基本的解释器可能不会生成任何类型的代码,只是直接执行源代码。
如果是后者,那是否意味着解释语言与简介集无关?
(我假设您的意思是指令集)。
如果解释器生成汇编代码或机器代码,则必须关心正在运行的CPU的指令集。如果没有,则不会。
一种语言只能有一个口译员吗?
不,同一种语言可以拥有人们愿意写的不同的口译员和编制者。一种语言有多种口译员并不罕见。
是因为解释器没有进行任何优化,所以我们不需要找到更好的解释器吗?
没有。解释器可以并且确实执行优化,但通常比编译器少,因为没有单独的编译步骤,任何花在优化上的时间都会增加程序的启动时间。