Re: Re: New project announce (ECG) using ASM

Charles Oliver Nutter <[email protected]>
Newsgroups gmane.comp.java.objectweb.asm
Message-ID <CAE-f1xRdygdih57zQGVLCJTsVKNrYKoph3ayhw69YjySUU-6RA@mail.gmail.com>
Interesting!

This reminds me of a project I've always wanted: an LLVM-like API atop
JVM bytecode. LLVM has very nice high-level operations defined for
basic blocks of code, flow-control, allocation, etc, while in the JVM
world we're forced to basically write our own versions of those APIs
atop ASM and friends. We also each have to write our own optimizers or
run the risk of emitting inefficient bytecode (or questionable
bytecode with dead code, for example) over and over again for each
project. If we had a nice intermediate representation above JVM
bytecode, we could do optimization passes, code emitting, stack/local
var allocation, and so on very easily, avoiding stack manipulation
bugs and simply "bad code" being emitted.

What are your goals with this? You're already starting to represent
basic "Java" operations like construction and calls, yes? And I see
you have "code blocks" in your example, which presumably can be used
as the target of jumps. Is this something that could grow into a
high-level intermediate representation above bytecode?

Another interesting parallel is with .NET's DLR, which provides a
common "abstract semantic tree" they hoped could represent operations
in any arbitrary language. You emit that "AST" and their
compiler/optimizer can take it and produce the best possible IL. I
want that capability, and maybe ECG is a path to getting it...

- Charlie

On Thu, Aug 18, 2011 at 6:39 AM, Peich <[email protected]> wrote:
> Sorry, i forgot about it :)
>
> http://code.google.com/p/ecg/
>
> http://easyclassgenerator.blogspot.com/
>
> 2011/8/18 Paul Hammant <[email protected]>
>>
>> github link ?
>>
>> On Thu, Aug 18, 2011 at 6:35 AM, <[email protected]> wrote:
>>>
>>> Hi all!
>>>
>>> I've recently started a new open source project called Easy Class
>>> Generator
>>> (ECG).
>>>
>>> It's a framework to help generate and manipulate bytecode, the same that
>>> ASM
>>> does, but from a different approach.
>>>
>>> The main target is that que user dont need to knows about bytecode,
>>> stack,
>>> frames, etc, just about java programming..
>>>
>>> It's not an ASM replacement (it uses it internally), but a "decorator"
>>> above
>>> it.
>>>
>>> it's still in active development, far from a first version, but i'll like
>>> to
>>> introduce it to you. I'll glad if you could send some feedback or
>>> colaboration
>>> request.
>>>
>>> Thank you!
>>>
>>>
>>> --
>>> You receive this message as a subscriber of the [email protected] mailing list.
>>> To unsubscribe: mailto:[email protected]
>>> For general help: mailto:[email protected]?subject=help
>>> OW2 mailing lists service home page: http://www.ow2.org/wws
>>>
>>
>
>
>
> --
> You receive this message as a subscriber of the [email protected] mailing list.
> To unsubscribe: mailto:[email protected]
> For general help: mailto:[email protected]?subject=help
> OW2 mailing lists service home page: http://www.ow2.org/wws
>
>
message-footer.txt (text/plain, 238 B)
-- 
You receive this message as a subscriber of the [email protected] mailing list.
To unsubscribe: mailto:[email protected]
For general help: mailto:[email protected]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.