Tuesday, June 12, 2012

PLDI is awesome

I am John, an nth year PhD student from the UMass Amherst.
It's awesome that we can attend both PLDI and ECOOP within the same trip.
After only hearing the first day of talks at PLDI, I've already heard cool ideas and useful work.  I enjoy seeing language neutral or very general frameworks such as the Implicit Calculus that can be applied to almost any language within the domain of the problem; in this case, a language involving generics/parametric polymorphism.
The Diderot language provides a great example of a DSL allowing non-expert programmers to write highly efficient code that is close to the algorithmic specification with notation from the problem domain.  The variety of problems being addressed in the papers and techniques involved makes programming languages really feel like the core of computer science.

I should mention my talk, since I am here to present my ECOOP paper with Yannis Smaragdakis and Christoph Reichenbach titled, "Java Wildcards Meet Definition-Site Variance".  The topic of variance is about how to allow generics (parametic polymorphism) and subtyping (inclusion polymorphism) to coexist fruitfully in a programming language.  Keeping in mind the subsumption principle:  Anything a supertype can do should be able to be performed by the subtype:  It is not safe to assume a List<Dog> (a list of Dogs) is a (subtype of) List<Animal> because a List<Animal> can add a Cat to itself but a List<Dog>.  This paper covers how to combine popular approaches to variance, use-site variance (adopted in Java as wildcards) and definition-site variance (supported in C# and Scala) in the same language.  The paper presents the VarJ calculus, a model for Java with both wildcards and definition-site variance.  The VarJ calculus extends the very cool TameFJ calculus by Nicholas Cameron et al., which was used to produce the first proof of soundness of Java wildcards.  Our paper was written to also provide a template to support variance with safe type checking to your calculus.  One of my goals was, if you read this paper, you will know how to add variance to your type system.

I will conclude with a few benefits (though there are far more) of attending this PLDI and ECOOP:

1) I will learn about very general approaches and new ways of thinking.
The talks are thought provoking and help me with determining future projects to work on.

2) Being around other people who find type systems interesting and are applying them motivates me greatly. It's nice to be able to discuss new ideas without having to constantly justify the point of your existence.

3) Talking to other researchers about research projects and learning about the variety positions they work in is very exciting.
It's great to hear about job opportunities where programming language techniques.

4) The cultural and social educational benefits are obvious but still should be mentioned.  This is my first time in Asia.

Looking forwarding to meeting more attendees.

No comments:

Post a Comment