Efficient bytecode design and interpretation

Michal Gajda <mg169780@zodiac.mimuw.edu.pl>
22 May 2001 13:37:27 -0400

          From comp.compilers

Related articles
Efficient bytecode design and interpretation mg169780@zodiac.mimuw.edu.pl (Michal Gajda) (2001-05-22)
Re: Efficient bytecode design and interpretation anton@mips.complang.tuwien.ac.at (2001-05-29)
Re: Efficient bytecode design and interpretation jonm@fishwife.cis.upenn.edu (2001-05-30)
Re: Efficient bytecode design and interpretation loewis@informatik.hu-berlin.de (Martin von Loewis) (2001-05-30)
Re: Efficient bytecode design and interpretation eugene@datapower.com (Eugene Kuznetsov) (2001-05-30)
Re: Efficient bytecode design and interpretation korek@icm.edu.pl (2001-05-31)
Re: Efficient bytecode design and interpretation usenet.2001-05-30@bagley.org (Doug Bagley) (2001-05-31)
[2 later articles]
| List of all articles for this month |

From: Michal Gajda <mg169780@zodiac.mimuw.edu.pl>
Newsgroups: comp.compilers
Date: 22 May 2001 13:37:27 -0400
Organization: MIMUW
Keywords: interpreter, question
Posted-Date: 22 May 2001 13:37:27 EDT

Hello,


where can I find information about writting efficient bytecode
interpreter? Or some at least comparison of a LOT of open source
bytecode interpreters so that I could peep into their code?


Note: I'm not considering comparisons limited only to JavaVM
implementations, as fixed selection of it's bytecode ops and VM model
can seems to significantly reduce room for optimization. Up to now I
only found Romer et al "Structure and efficiency of bytecode
interpreters"(which is limited only to 4 VM designs) and vmgen
documentation(vmgen is bytecode interpreter generator provided with
gforth).


Thanks in advance
Michal Gajda
korek@icm.edu.pl
*knowledge-hungry experimentalist student*


PS I tried to catch some performance tricks by analyzing bytecode formats
of Ocaml, and some lisp implementations. Still differences in timing and
efficiency still seem to be plain magic :-).
[For example - why GForth VM, with all vmgen'ed optimizations, performs so
badly at "Programming Language Shootout" page? Note, that I chosen 0
weights for all test that were _not_ implemented for Forth, and regarded
only bytecode implementations-of which OCaml clearly shines]
[It's been discussed before. My suggestion is that unlike the design for
a physical architecture, there's little added cost to providing zillions
of operators, and the more each operator does the fewer times you go
through the interpreter loop, so a CISC design likely wins. You might also
want to ask the virtual machine mailing list I run; to subscribe send
"subscribe" to virtmach-request@lists.iecc.com. -John]





Post a followup to this message

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