Re: What is byte-code ?

nmm1@cus.cam.ac.uk (Nick Maclaren)
8 Mar 2005 00:28:28 -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)
[14 later articles]
| List of all articles for this month |

From: nmm1@cus.cam.ac.uk (Nick Maclaren)
Newsgroups: comp.compilers
Date: 8 Mar 2005 00:28:28 -0500
Organization: University of Cambridge, England
References: 05-03-015 05-03-027
Keywords: interpreter
Posted-Date: 08 Mar 2005 00:28:28 EST

Anton Ertl <anton@mips.complang.tuwien.ac.at> wrote:
>"KC" <kcc1967@gmail.com> writes:
>>What's the official definition of byte-code ?
>
>There is none (well, you can try Wikipedia or FOLDOC for inofficial
>definitions).
>
>The term byte-code is typically used for a special case of a virtual
>machine, where the virtual machine instructions and their operands are
>encoded as bytes, or as groups of bytes (e.g., JVM byte-code,
>Smalltalk byte-code, Elisp byte-code).


And compilers based on the interpretation of compiled "byte streams"
predate the use of the term by many decades. The first was before my
time, and could well have been either LISP or SNOBOL - but equally
well could have been something else of that era. Not after the early
1960s, anyway.


>However, I have also seen the term used for virtual machines that
>don't have this property (e.g., the Ocaml "byte-code", where the
>instructions are encoded as machine words); that usage seems to just
>use "byte-code" in place of "virtual machine" (maybe because there
>are also other meanings of "virtual machine").


Yes. It is most reasonably used in the sense of "virtual machine code."


>As for "virtual machine", in this context it means a flat, sequential
>intermediate representation of the programs, consisting of virtual
>machine instructions, with some similarities to real-machine code.


Nah. I will give you most of that, but NOT "sequential". Parallel
ones have existed, but I now forget good references. Some of the
first "automatic parallelisation" was based on compiling a functional
program into independent threads (as many as possible), and having a
set of thread servers consume them, blocked only by the dependency
graph. Dead easy, but it delivered negligible parallelism when faced
with practical programs. I am 95% certain that some of those used a
"byte code" compiler/interpreter implementation.


Regards,
Nick Maclaren.


Post a followup to this message

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