Do most languages have many different execution engines ?
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Many languages don’t have execution engines – the whole dynamic/static thing revolves around the fact that dynamic capabilities can simplify certain kinds of programming problems by orders of magnitude – but you pay for this at runtime, because things have to be figured out on the fly – common lisp is one of the best examples of this, it’s perfectly happy to deal with data and code interchangably, but it’s not exactly a speed demon (against native compiled C++ where 100x+ engineering time has been spent to remove dynamic reqts, lisp people, before you start yelling at me)
1) Many languages have focus areas – IFF you know prolog, you’ll create a performant rules system a lot faster than someone would in C++ – but if the C++ developer spends 10 times as long, they’ll have a system that can run 10 times as fast on 1/10th of the cases
2) You have to distinguish between true compiled languages (classic C++), interpreted languages (classic LISP), VM based languages (Smalltalk, Pascal), and the newer breed of hybrids that present a VM up to the user, but can recompile on the fly on the host machine using peephole optimization (C#, Java) – an interpreted language will always be slower than a native compiled language – native compiled languages do not have execution engines, all others have one form or another of an execution engine
3) The ‘fastest’ language would be native machine code – not very portable, and hideously expensive to develop in
4) The real questions are;
particular problem in the language
the problem solution is correct
solution to other environments
Consider – I can write some programs in Smalltalk in a matter of a few minutes that would take me days in C# to make equivalent progress – Now the Smalltalk program runs much more slowly than the C# program, but overall, I spend less time on/with it –
Moral of this story – languages are tools – pick the right tool for the job