Are the terms “Language Implementation”, “Runtime” and “Virtual Machine” synonymous? [on hold]

问题内容:

To describe the implementation of a dynamic programming language, I have seen the terms “Runtime” (e.g. Security transparency in the Python runtime), “Virtual Machine” (Python Virtual Machine (PVM), YARV (Yet another Ruby VM)) and “Interpreter” (Matz’s Ruby Interpreter) used. JavaScript also uses the word “Engine”.

IMO the word “Interpreter” strictly describes only part of a language implementation: that which steps through and executes bytecode. “Interpreter” excludes other parts of the implementation, such as a garbage collector.

Are the other terms, “Runtime”, “Virtual Machine” and “Engine” synonymous with the language implementation as a whole? Are these terms interchangeable?

问题评论:

    
Stack Overflow tries to stick to pragmatic questions as they pertain to code. For theory you might try the CS site or more open-ended discussion forums like /r/programming on Reddit or Quora.
2  
This very question leads to a lot of controversy because most “interpreters” these days don’t actually interpret, they compile to byte-code and run that in a virtual machine. JavaScript has an interpreter mode, a bytecode mode, and a compiler mode, all within the same runtime, so these classical definitions and divisions are really not holding up well.

原文地址:

https://stackoverflow.com/questions/47745610/are-the-terms-language-implementation-runtime-and-virtual-machine-synonym

添加评论

友情链接:蝴蝶教程