So, after a monstrous 16hr journey from Maribor to Malaga, I arrived at TOOLS Europe. Malaga is surprisingly nice, all the package holiday tourists stay out of town - win!
The day kicked off with Oege de Moor's invited talk. I was not that excited about the prospect, but it was actually a really interesting talk - his tool is very useful and does some interesting things, all whilst being language independent. And the internal language is a pretty cool combination of logic/relational query language and OO.
My talk was at 2:30, and went pretty well. I should probably have had more and better examples; I realised as I talked that I was expecting the audience to keep rather a lot in their heads - why is this so obvious when giving the talk, but impossible to comprehend when practising?
Erik Ernst followed with an interesting talk on virtual types/parametric types/their relationship. Lots more interesting virtual classes stuff to think about.
Johan Ostland finished off the session with a talk about Welterweight Java, the talk filled in a lot of background about the various -weight Java calculi that I wasn't aware of, but probably should have been. As nice as Welterweight Java looks, I hope to never have to use it - my languages are already too big, and the smaller the better: if I could work purely in the untyped lambda calculus I would.
I'm a research engineer at Mozilla working on the Rust compiler. I have history with Firefox layout and graphics, and programming language theory and type systems (mostly of the OO, Featherweight flavour, thus the title of the blog). http://www.ncameron.org @nick_r_cameron
Tuesday, June 29, 2010
Friday, June 25, 2010
ECOOP day 3
The day kicked off with Erik Ernst's invited talk: there was some philosophising, but mostly it was about virtual classes and gbeta ("the nomination for best foreign programming language syntax goes to..."). I very much approve of virtual classes --- they are awesome and with any luck will be in a major language soon. Erik motivated virtual classes using the standard expression problem and an example using wireless communication. He also talked a little about proof assistants, and gave a mention to his work with Sophia and I on Java wildcards.
Gilad Bracha talked about modules as objects in Newspeak and was awarded the best paper award. More nested classes stuff, this time to support modules. Late binding of names apparently gives nested and virtual classes and mixins straight up. Abolishing the global namespace means imports have to be passed in when top level classes are instantiated. At the root of it all, classes must be passed in by the IDE or some other tool. This leads to automatic sandboxing of code.
I liked the talk on inline caching, I love this kind of compiler optimisation stuff, it brings out my inner geek. But, it is far enough out of my area, that I need to read the paper to get the most out of that one, so no comments, sorry.
And that is the end of ECOOP for another year, now onto Malaga and TOOLS...
Gilad Bracha talked about modules as objects in Newspeak and was awarded the best paper award. More nested classes stuff, this time to support modules. Late binding of names apparently gives nested and virtual classes and mixins straight up. Abolishing the global namespace means imports have to be passed in when top level classes are instantiated. At the root of it all, classes must be passed in by the IDE or some other tool. This leads to automatic sandboxing of code.
I liked the talk on inline caching, I love this kind of compiler optimisation stuff, it brings out my inner geek. But, it is far enough out of my area, that I need to read the paper to get the most out of that one, so no comments, sorry.
And that is the end of ECOOP for another year, now onto Malaga and TOOLS...
Wednesday, June 23, 2010
ECOOP day 1
So, other than the crap wifi and an absence of snacks with coffee, the conference has been going well. There are many more people here than expected, it's not as quiet as many of us had feared. The Habakuk is a fairly good venue, the main conference room is nice, with desks, but crap wifi. The summer school room is a bit how and air-less, but has marginally better wifi (but still uselessly bad). Lunch is good, although it could have more vegetarian options (there seems little point in asking about dietary needs at registration if you are not going to bother making any dedicated food for said needs).
Anyway, Shriram gave another talk about Javascript --- this time about a core calculus, interesting they had actually implemented the de-sugar-er and operational semantics so could execute Javascript using their formalism.
I really wanted to see Gavin Bierman's talk on dynamic types for C# --- he is always a great speaker. Unfortunately I went on a mission to buy some new t-shirts at lunchtime (due to the relative pricing of a new t-shirt v. having a single t-shirt laundered at my hotel) and got lost. As compensation to myself I had a delicious blueberry gelatto.
I attended Andrew Kennedy's summer school session on unit types in F#, it was a good session with lots of interesting theoretical stuff about unit types (I couldn't believe there was so much to talk about them). I guess though, I would have preferred more on these interesting details (Andrew skipped quite a few slides), and a bit less on F# itself.
I would have liked to have seen the talks on "Verifying Generics and Delegates" and (especially after Shriram's plug yesterday) "Recency Types for Analysing Scripting Languages", but these clashed with the summer school. This was a shame, I believe they could have scheduled this better (there are other clashes later in the week too).
Anyway, Shriram gave another talk about Javascript --- this time about a core calculus, interesting they had actually implemented the de-sugar-er and operational semantics so could execute Javascript using their formalism.
I really wanted to see Gavin Bierman's talk on dynamic types for C# --- he is always a great speaker. Unfortunately I went on a mission to buy some new t-shirts at lunchtime (due to the relative pricing of a new t-shirt v. having a single t-shirt laundered at my hotel) and got lost. As compensation to myself I had a delicious blueberry gelatto.
I attended Andrew Kennedy's summer school session on unit types in F#, it was a good session with lots of interesting theoretical stuff about unit types (I couldn't believe there was so much to talk about them). I guess though, I would have preferred more on these interesting details (Andrew skipped quite a few slides), and a bit less on F# itself.
I would have liked to have seen the talks on "Verifying Generics and Delegates" and (especially after Shriram's plug yesterday) "Recency Types for Analysing Scripting Languages", but these clashed with the summer school. This was a shame, I believe they could have scheduled this better (there are other clashes later in the week too).
Tuesday, June 22, 2010
Worst wifi connection ever
Is foiling my attempts to live-blog ECOOP :-( So, more dead-blog entries later...
FTfJP invited talk - "Electrifying Javascript"
By Shriram Krishnamurthi. O for awesome. Good speaker, good talk, very electrifying! Presented a type system for Javascript (which seems to be fashionable right now, this one focuses on the dynamic parts of the type system, rather than finding class-like types). Cool type system - must be flow sensitive, features tags (like types, but simpler and descriptive, to support "typeof") and a nice way to go from tags to types, and non-nullness.
Actually uses flow analysis, but a simple (and intra-procedural) kind, looking only at tags. The type system uses tagchecks, and the flow analysis inserts tagchecks.
A slogan: "Types on the outside, flows on the inside".
The type checker assumes function parameters are anntotated with types. The final piece of the puzzle is that they dynamically infer these types which can then be used for type checking (!)
The whole process seems to work pretty well - good results, but over a relatively small code base.
[Note to self: reasonable plug for recency types, tomorrow]
Actually uses flow analysis, but a simple (and intra-procedural) kind, looking only at tags. The type system uses tagchecks, and the flow analysis inserts tagchecks.
A slogan: "Types on the outside, flows on the inside".
The type checker assumes function parameters are anntotated with types. The final piece of the puzzle is that they dynamically infer these types which can then be used for type checking (!)
The whole process seems to work pretty well - good results, but over a relatively small code base.
[Note to self: reasonable plug for recency types, tomorrow]
Correction
The talk on reverse inheritance was not re-scheduled, it was another talk which had Skype issues.
maspeghi
I am currently at the new MASPEGHI workshop. I was interested to hear talks on "Modular Composition and State Update in Plaid" and "Reverse Inheritance in Statically Typed Object-Oriented Programming Languages". Unfortunately, the first talk was rescheduled earlier, so I missed it, and the second was cancelled due to Skype difficulties. Luckily, the third talk I am interested in - "Pass-by-subclass Parameters" looks like it will go ahead shortly...
Towards a Semantic Model for Java Wildcards
Alex Summers just presented our work (with Sophia and Mariangiola) on semantic models for Java wildcards. He gave (I thought) a very good talk. It was a hard talk to make because the work is very technical and complex, and the joy is very much in the details. Alex managed to describe our proofs using tree diagrams in a very intuitive way, I think I understood the work better than when I was actually doing it!
I think we got a lot of interest, and certainly we had some good, interested questions.
I think we got a lot of interest, and certainly we had some good, interested questions.
ECOOP 2010
I'm at ECOOP 2010 in Maribor, Slovenia. I will write a few posts about papers in the upcoming days. I am not presenting (Alex Summers is about to present our paper to FTfJP), so it should be a bit relaxing.
Maribor is a very nice city, and I find it quite nice to be somewhere 'foreign' - different language, different architecture, etc. Quite the change after a year in australasia.
There has been quite a lot of grumbling about the location - too hard to get to, to hard to get around, not enough organisation. And some of these comments are fair, but I found the journey not too stressful, and the organisers are pretty organised (although some info has been pretty late in arriving). And I think it is great to have the conference somewhere less usual, it is a good oportunity to see a lovely country which I would otherwise never have visited.
My hotel is also lovely, particularly nice is the wide variety of saunas in the basement - it's a miracle I've made it to the conference really. What is less lovely is that access is by gondola only, once an hour until 10 - which is pretty restrictive.
Finally, I was not expecting many people to be here, from what I heard; but actually, there are many people I know, and it is very nice to catch up...
Maribor is a very nice city, and I find it quite nice to be somewhere 'foreign' - different language, different architecture, etc. Quite the change after a year in australasia.
There has been quite a lot of grumbling about the location - too hard to get to, to hard to get around, not enough organisation. And some of these comments are fair, but I found the journey not too stressful, and the organisers are pretty organised (although some info has been pretty late in arriving). And I think it is great to have the conference somewhere less usual, it is a good oportunity to see a lovely country which I would otherwise never have visited.
My hotel is also lovely, particularly nice is the wide variety of saunas in the basement - it's a miracle I've made it to the conference really. What is less lovely is that access is by gondola only, once an hour until 10 - which is pretty restrictive.
Finally, I was not expecting many people to be here, from what I heard; but actually, there are many people I know, and it is very nice to catch up...
Subscribe to:
Posts (Atom)