![]() You can often create an executable from a compiled language. This ends up with a very lean runtime that is already optimized for the target machine.Īs for generating executables, that has little to do with it, IMHO. Therefore, for large systems that are not going to change much, and for certain languages, it makes more sense to precompile and prelink everything, do all the optimizations that you can do. You are also less likely to see complex interprocedural optimizations because at present their performance is not sufficiently interactive. Still, you pay a runtime cost and often need a runtime environment. By definition, it is wasteful because identical code may have to be interpreted and optimized twice (although most runtimes have some caching and optimizations for that). Interpretation, however, costs a lot, especially when you have a large system with a lot of references and context. ![]() It really lends itself way to things like the functional style. Thus, if you had already executed code that initialized a variable, you would have access to that variable, etc. Since everything is interpreted, you can take a small excerpt of code, parse and run it against the current state of the environment. More to the point: I think interactivity is the main practical difference. ![]() The JVM can go and do just-in-time compilation to the native machine language, but doesn't have to do it. It is compiled into bytecode, which is then interpreted by a JVM. First, a clarification, Java is not fully static-compiled and linked in the way C++. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |