3 ms·
> I was speaking about security exploits. C should never have happened. I see. I sort of agree - C should never have been exposed to the programmers. But a C-l
by sklogic 12y ago
> I was speaking about security exploits. C should never have happened.
I see. I sort of agree - C should never have been exposed to the programmers. But a C-level VM is an extremely useful thing for implementing high level languages. I'd rather move safety checks a number of levels up, and leave VM level to performance-related stuff.
- pjmlp 12y agoWhile I agree with you, I rather have AOT compilers, no need for VMs. And both Microsoft and Oracle are realizing this. .NET has native compilation on WP, with .NET Native coming on .NET 5. NGEN is a very simple compiler just for optimizing startup time. Java always had AOT compilers in commercial JVMs, but not on Sun. Now Oracle has SubstrateVM, and there are plans for AOT compilation at least in Java 10 timeframe.
- sklogic 12y agoVMs should be available in runtime (no matter if an AOT is present or not) in order to allow an efficient run-time code generation. And VMs should also be available during compilation to make it possible to efficiently implement reflective compile-time meta-languages (e.g., like Common Lisp). And the difference between abstract machines, intermediate representations and virtual machines is very elusive (see all the confusion around LLVM for example).