Re: What is byte-code ?

Randy <joe@burgershack.com>
8 Mar 2005 01:04:44 -0500

          From comp.compilers

Related articles
What is byte-code ? kcc1967@gmail.com (KC) (2005-03-04)
Re: What is byte-code ? nathan.moore@sdc.cox.net (Nathan Moore) (2005-03-05)
Re: What is byte-code ? anton@mips.complang.tuwien.ac.at (2005-03-05)
Re: What is byte-code ? lfinsto1@gwdg.de (Laurence Finston) (2005-03-05)
Re: What is byte-code ? nmm1@cus.cam.ac.uk (2005-03-08)
Re: What is byte-code ? joe@burgershack.com (Randy) (2005-03-08)
Re: What is byte-code ? Brian.Inglis@SystematicSW.ab.ca (Brian Inglis) (2005-03-08)
Re: What is byte-code ? torbenm@diku.dk (2005-03-08)
Re: What is byte-code ? torbenm@diku.dk (2005-03-08)
Re: What is byte-code ? cdc@maxnet.co.nz (Carl Cerecke) (2005-03-08)
Re: What is byte-code ? torbenm@diku.dk (2005-03-15)
Re: What is byte-code ? kers@hpl.hp.com (Chris Dollin) (2005-03-15)
[13 later articles]
| List of all articles for this month |

From: Randy <joe@burgershack.com>
Newsgroups: comp.compilers
Date: 8 Mar 2005 01:04:44 -0500
Organization: Rice University, Houston, TX
References: 05-03-015
Keywords: interpreter
Posted-Date: 08 Mar 2005 01:04:43 EST

KC wrote:
> What's the official definition of byte-code ? Any documentation and
> book related to byte-code and byte-code compiler ? Does byte-code
> just a simple version of CPU's opcode ?


The whatis.com definition seems to be as good as any, IMHO:


        http://searchsmb.techtarget.com/sDefinition/0,,sid44_gci211722,00.html


Oddly, the web definitions that I've seen mention only Java and not
Microsoft's equivalent bytecode 'standard': MSIL (the basis for .NET).


As I understand it, the goals of bytecode are:


1) Bytecode executables can run on any kind of CPU, within virtual
machines. (I suspect that bytecodes are as close to an architecture
neutral distribution format for executables as we're likely to see).


2) Bytecode executables are small and thus easy to distribute over the
net/web (smaller than equivalent binary executables, since bytecodes
lack much of the O/S-specific and library-specific linkage that are
present in native binaries).


3) Bytecode *should* be more portable across versions of O/Ses and
libraries than native executables, since resolution of the
executable's dependencies is left to runtime 'recompilation' and
linkage. In practice, however, this has not come to pass. (Java has
been too much a moving target. I know too little about .NET to pass
judgment on it, however.)


4) Bytecodes are more amenable to security oversight than are native
executables (since the virtual machine can perform checks that native
code does not yet support on commercial O/Ses or CPUs).


5) Final translation of bytecode into executable can be very fast and
can often occur concurrently with execution. In addition, most
bytecode programs are expected to be web-oriented, thus having a large
GUI component, thus requiring less in terms of execution speed (making
the added overhead of the VM less onerous).


        Randy
--
Randy Crawford http://www.ruf.rice.edu/~rand rand AT rice DOT edu



Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.