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.
No comments:
Post a Comment