[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Rather, DSSLs increase modularity, productivity

Matthias Felleisen wrote:

> On Monday, November 17, 2003, at 12:08 PM, Miles Egan wrote:
>> A couple of interesting applications of byte-code engineering in Java
>> I've come across recently:
>> BCEL - the library used to implement a lot of these byte-code hacks:
>> (have a look at their projects page to get an idea of how popular this
>> approach has become)
>> http://jakarta.apache.org/bcel/
>> Most Java AOP implementations seem to be implemented this way:
>> http://www.aspectj.org
>> http://aspectwerkz.codehaus.org/
>> The Tapestry web framework uses it to generate new java classes on the
>> fly from xml templates:
>> http://jakarta.apache.org/tapestry/
>> Hibernate, probably the most popular Java O-R mapping library uses
>> byte-code hacks to hook object mods for db updates:
>> http://www.hibernate.org
>> On the one hand it's cool that the JVM allows all this, but it seems
>> like more explicit support for this kind of metaprogramming in the
>> language would be better.
> Even though you can write byte code and modify it with a class loader
> you still have to get it by the byte-code verifier. So, yes, you're 
> correct
> a type-soundness result for Java at the source level looks irrelevant. 
> But
> the question you really have to pose is how the type soundness for the
> Java type system relates to the soundness of the byte code verifier. As
> far as we know, the second result may imply the first one.
> I don't know whether anyone has looked into this connection. I'd expect
> so given the cottage industry on Java theory results. Guy? 

There's Rich Cohen's work:


This is from six years ago so there might be some aspects of it that are out
of date. But I think it's addressing what you're asking about.

> -- Matthias