Random thoughts from a software engineer.
I agree, up to a point. I've written up my own definition of virtual machine recently on my own blog, in part in response to this kind of argument. A VM is a software implementation of an abstract machine with certain idealized properties.However, an interpreter can make a stronger claim to be a VM if it can be independently targeted by multiple languages, or the VM can be implemented on different target architectures, such that the VM definition (note definition, not implementation) itself is the pinch-point for portability of language or target architecture, rather than modifying the language's compiler etc. Where the compiler starts and the VM begins can be blurred in dynamic languages, of course.
Post a Comment