Fri, 06 Feb 1998 22:31:10 -0500
Eric W. Biederman wrote:
> >>>>> "MY" == Maneesh Yadav <email@example.com> writes:
> MY> Eric W. Biederman wrote:
> >> >>>>> "MY" == Maneesh Yadav <firstname.lastname@example.org> writes:
> >> Efficiency, and portability. A byte code is a no brainer to
> >> interpret, just do a switch on the byte code, and go to the right
> >> place to interpret that.
OK, but I really never got to like the idea of interpeting, besides the only reason java
is partially interpeted is for security reasons for applets no? On a usable system, the
programs would have to be compiled to provide perfomance, IMHO. What about a system
with a sort of transparent 2 way compiler, that would compile HLL into native code and
upon export to another system, could invert it to the HLL and be automatically
recompiled on the target?
> MY> I find it hard to believe that writing an java interpeter is as easy as writing
> MY> a big switch statement in a loop.
> It is, but the dispatch code for each byte code is that simple.
> No parsing, or anything hard to figure out what you are supposed to do.
> >> Also basic optimizations can be done ahead of time.
> MY> Certain optimizations that work on one processers may not optimize well on
> MY> another, past the algorithm level, (take branch prediction for instance on a 486
> MY> pentium and ppro)
> It's more like constant propogation and removal of some redundancies,
> a la peephole optimization.
> It's bytecode not machine specific.
> If you want to see an example see the emacs lisp compiler.
But aren't jump instructions and the like a part of the bytecode? And thus dictate the
order in which they are exectued and thus performance?
> >> Besides I haven't seen a `universal' bytecode.
> MY> Why not concentrate on a VM with a readable language with a JIT and save
> MY> space by leaving it up to a compression algo.?
> MY> In order to prevent the code stealing, mangled sources could be used...
> >> Code's copyrighted so why do you need to worry about code stealing?
> MY> Oh yeah, I forgot it's a perfect world with perfect programmers :-)....
> Well actually I think the whole issue of people worry about their code
> is a little silly. I'm more in the software as a service camp.
I'm with you, but as long as money is around, the rest of the world isn't.
> MY> I realize that a bytecode is good since it resembles a processers
> MY> instruction set nad is small. But why restrict a language to only work
> MY> with today's processing paradigms (who knows what's next). Surely a
> MY> good HLL leaves more room for the future.
> >> It's expedient, simple, and well tested. When that future comes you
> >> upgrade your virtual machine.
> MY> That's what I'm saying we could possibly prevent by not using a bytecode, no one
> MY> likes to upgrade unless they have to....
> You can also use a compiler that will translate one bytecode into
> another, and with version numbers you can support both. Bytecode
> simply optimizes the common case.
> MY> Doesn't bytcode just put an unessecary step in between
> MY> idea-> language->program?
> >> No. It just specifies the form.
> MY> Couldn't that be done more elegantly in an HLL?
> It is much easier to agree what basic primitives a computer
> instruction set needs versus, what a universal high level language
> In tunes we keep wanting to program in the HLL you would need but we
> haven't written it yet :)