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

Re: Rather, DSSLs increase modularity, productivity




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?

-- Matthias