是的是的。这是关于编译器和 PL 解释器之间区别的另一个问题。只有通常给出的答案不能让我满意。
通常他们说编译器将一些 PL 中的代码翻译成可执行代码,并且在执行时,代码立即由处理器直接执行。在解释器的情况下,在程序执行期间,一个特殊的程序,即解释器,逐行读取程序的源代码并执行它。一步步。同时,据说编译器还没有那么好写。
其实问题是这样的。如果结果执行了程序,那么当立即执行机器代码时本质上有什么区别,或者首先解释器对源代码执行某些操作,然后才执行它——结果,处理器执行相同的机器指令。那有什么区别呢?显然,不是编译器提前把机器码存到文件里,而是解释器没有)好吧,假设我理解用ifs解释程序时,有些部分永远无法执行,因此没有翻译成机器码代码。但是,同样,这可能不是问题所在,很难将所有 if-s 提前翻译成机器代码,即编译代码。
简而言之,与解释器相比,实现编译器的其他区别和复杂性是什么?