> - Also, I don't like some apsects of Oolong (maybe because of my current
> little knowledge of the JVM). So, do you (specialists of the JVM :) know
> some better intermediate language than Oolong ?
I won't say it's better, and it's guaranteed to be buggy and not to be
as far advanced, but I've been playing with a lisp for (amongst other
things) bytecode manipulation: http://kin.sourceforge.net/assm-kin.html
Pete
>- Also, I don't like some apsects of Oolong (maybe because of my current
>little knowledge of the JVM). So, do you (specialists of the JVM :) know
>some better intermediate language than Oolong ?
There are a number of alternatives for generating byte code. You can
do it directly with method calls rather than generating an
intermediate text language.
See http://mindprod.com/jgloss/jasm.html
--
Canadian Mind Products, Roedy Green.
Coaching, problem solving, economical contract programming.
See http://mindprod.com/jgloss/jgloss.html for The Java Glossary.
Dear My,
> I am currently the structure of the JVM and to achieve this I use the
> Joshua Engel's book: 'Programming for the JVM' published by Addison-
> Wesley. In his book, Engel introduces an assembly language called
> Oolong. I have some reserves about this language, so I had two
> questions: - Is there a better way to learn the structure of the JVM
> ? an easier way ?
There is another book, "Inside the Java 2 Virtual Machine", by Bill Venners,
which takes a different line to explaining the JVM. You may find that reading
that is a help. (It's a big book, but don't let that put you off -- a lot of
it is just padding, duplicating details from the JVM spec.) Venner's book
talks a lot more about how a JVM works (things like classloaders, security, the
linking process, etc, even a bit on garbage collection) whereas Engel's book is
more focussed on how to create/understand classfiles. Both approaches are
worthwhile; in fact I'd say they are complementary, so it may be a good idea to
look at both.
> Because, at first I tried just reading the
> excellent book of Lindholm and Yellin: "The JVM specs" but it was way
> too hard for me.
Whatever else you do, you'll end up using the JVM spec. Once you gain some
understanding the spec's not too bad. Difficult to read, though. It helps if
you get your basic understanding from another source. Such as Venner's or
Engel's books.
> - Also, I don't like some apsects of Oolong (maybe because of my
> current little knowledge of the JVM). So, do you (specialists of the
> JVM :) know some better intermediate language than Oolong ?
Oolong maps pretty directly to the classfile format. *In that sense* it is
about as good a low-level intermediate language as you can get. What are your
reservations ?
If you'd rather manipulate "classfiles" from code then there are options like
the BCEL library (somewhere under jakarta.apache.org), Roedy has already
provided a link to more info on such things.
-- chris
My full name - 09 Sep 2003 14:37 GMT
Thanks for all your answers !
> If you'd rather manipulate "classfiles" from code then there are
> options like the BCEL library (somewhere under jakarta.apache.org),
> Roedy has already provided a link to more info on such things.
I also need to manipulate classfiles, so BCEL seems very useful.
However, as always, I'd like to know if there are other alternatives
than BCEL ? Not that I don't like jakarta projects but I want to know
all the other possiblilities before using the BCEL library.
Thanks again to all of you, for your fast and usefull answers !
Chris Uppal - 10 Sep 2003 10:04 GMT
> I also need to manipulate classfiles, so BCEL seems very useful.
> However, as always, I'd like to know if there are other alternatives
> than BCEL ? Not that I don't like jakarta projects but I want to know
> all the other possiblilities before using the BCEL library.
Not a helpful answer this time ;-)
I'm afraid I don't know what other packages there may be out there (I do know
there are several), try googling for "classfile", "bytecode", "library", etc.
In point of fact I don't even use BCEL myself (though it looks pretty good) --
I work in Smalltalk by preference so I use my own classfile/bytecode
manipulation library written in that language...
-- chris