| portability: code on a vm on one device can be easily transported to a vm on another device. reuse: the common functionality in software would have to be written k times for k different devices, and this is unproductive. debugging: code on a vm can be tested rigorously without having to run on the device. this is especially important if the device is say, a satellite. one would like to run the code on a vm that sits on a simulator of the device, so that catastrophic errors don't result in even more catastrophic costs. alan fay |
| I would also mention memory protection through automatic allocationa and garbage collection. luke |
| in addition I submit (1)for every new platform it's easier to port–you only have to rewrite the bytecode->assembly translator, instead of the whole compiler. (2)separation from the machine means that your system is more secure. (3)"easier to create reflexive programs" whatever that means. (4)Often can be more memory efficient, depending on application. Batman |
| Good. There are more. Barbara Ericson |
| More? above is the sum total of what was in my notes and on the lecture slides I do hope we won't be expected to know all of those. . . Batman |
| Java and Squeak share similar garbage collection techniques. They are also both stack-based. However, Java is faster than Squeak, and has types (Squeak does not) - Jim McPherson |
| Translation of code-specific primitives to machine-specific terminology. Especially with Squeak, where there is no type assignment; the VM must translate the primitive based on context, a time consuming process no matter how ya slice it. Nigel O'Rear |
| Not quite, I was thinking more like boxing and unboxing. Barbara Ericson |