Monday 28 October 2013

Reified Type Parameters Using Java Annotations

My GPCE talk about @reify is over. One of the questions asked during Q&A was how is it possible to override the object's getClass() method to return correct information. If an instance is available and obj.getClass() is invoked (where obj is declared as T where T is generic type), then by employing only our proposed generation scheme getClass() won't provide the full type information. getClass() cannot be overriden and the answer to this is that method invocations of getClass() may also need to be rewritten in the AST level. Additionally, generic type information must be stored in the object instance level to make full reflection support possible to be provided. The class literal (.class syntax) on the other hand is valid only on types right now. With @reify if we get to write T.class where T is abstract, due to the .class expression that evaluates to the T class statically we can generate the proper code as we showed in the paper.

Thank you all for attending and also thank you for your comments.


And the poster that I presented in the SPLASH Poster Session (in pdf format):

Monday 21 October 2013

Attending SPLASH 2013

The following two weeks will be crazy. We are packing our bags to travel to Indianapolis, Indiana to present our current work and to attend the SPLASH 2013 conference. Our research team presents three papers at OOPSLA, one of which is our Forsaking Inheritance paper about a new design we proposed (we named it DelphJ), a Java-based object oriented language that eschews inheritance, in favor of class morphing and (deep) delegation. Our colleagues' papers to appear in OOPSLA are: Soundly Completing a Partial Type Graph and Set-Based Pre-Processing for Points-To Analysis.

Alongside with OOPSLA we present our preliminary work on introducing Reified Generic Parameters with Java Annotations at GPCE and at the Splash Poster Session. We introduced the concept of a new annotation that annotates generic types indicating them as reifiable and for those who haven't heard about type annotations before, this is the new cool extension to Java annotations that is specified by JSR 308 and will be included in Java 8.

See you in Indianapolis.

http://splashcon.org/2013/images/Splash_WebBanner-shadow.png 
GPCE'13