解释语言和编译器的解释器

interpreter for interpreted language and compiler

翻译的结果是什么?会不会把高级语言变成汇编语言或者机器语言,也就是二进制码?

如果是后者,是不是说明解释语言和介绍集没有关系?

一种语言只能有一个翻译?是不是解释器没有做任何优化,所以我们不需要找更好的解释器?

What's the result of an interpreter?

解释器的结果是解释程序的结果。因此,如果您有程序 print "hello",运行 解释器的结果是 "hello" 被打印到屏幕上。

这就是解释器与编译器的区别,编译器的结果是可执行文件,只有当 运行 生成该文件时,"hello" 才会打印到屏幕上。

Will it change high-level language into assembly language or machine language, which is binary code?

可能(如果您对 "interpreter" 的定义包括 JIT 编译器),但解释器通常只生成中间字节代码,然后在不生成汇编代码或机器代码的情况下对其进行解释。一个基本的解释器可能不会生成任何类型的代码,只是直接执行源代码。

If it's the latter, does that mean interpreted language doesn't have relation with Introduction sets?

(我假设你的意思是指令集)。

如果解释器生成汇编代码或机器代码,它将不得不关心 CPU 它正在 运行 上的指令集。没有就没有。

One language can only has one interpreter?

不,同一种语言可以有多少种不同的解释器和编译器,只要人们愿意编写。一种语言有多个解释器并不罕见。

Is it because interpreter doesn't do any optimization, so we don't need to find a better interpreter?

没有。解释器可以并且确实执行优化,尽管通常比编译器做的少,因为没有单独的编译步骤,任何花在优化上的时间都会增加程序的启动时间。