Alan Turing: Pioneer of the Information Age

The Imitation Game, the biopic about the life of Alan Turing, just won the Oscar for best adapted screenplay. While I enjoyed the film, and I’d recommend it, I agree with NPR’s Linda Holmes’ wry assessment that The Imitation Game was ‘a film that was “adapted” from a book about Alan Turing, and quite liberally adapted from reality.’

While the story of the film is a moving one (you could not help but be moved by screenwriter Graham Moore’s acceptance speech), I am saddened that so much good material was left on the table. If this was our big chance to share Turing’s amazing accomplishments with the world, a lot more could have been said, and some things could have been said better. Christian Caryl, writes that the film was A Poor Imitation of Alan Turing, while Alex von Tunzelmann goes so far as to suggest slander. A visually presented fact-checking by the Washington Post’s Stephanie Merry similarly finds as much fiction as fact.

To remedy these problems, I recommend you not stop with the film, but use it as a springboard to Prof. Jack Copeland‘s book, Turing: Pioneer of the Information Age.

Continue reading

1 Comment

Filed under Book Reviews, Scientists

Interview with Avik Chaudhuri

This is the first in a series of interviews we plan to do with programming languages researchers working in industry.

avik

In this post, I interview Facebook’s Avik Chaudhuri, who has worked on language implementations at Facebook and Adobe (and is an alumnus of our group here at PLUM). Thanks, Avik, for taking the time to do this!

The interview is broken into three parts: Background; Facebook’s new language, Flow; and reflections on the value of a PhD and the challenges of research in industry. Continue reading

3 Comments

Filed under Interviews, PL in practice, Scientists, Types

SNAPL: A new kind of PL conference

The Summit on Advances in Programming Languages (SNAPL) is a new kind of PL conference, focused on big-picture questions rather than concrete technical results. The conference will be held for the first time in Asilomar, CA, from May 3 to 6, 2015.

The submission deadline is January 9, 2015 — if you have a long-term vision about where the field of PL should go, you ought to submit a paper.

Here we post an interview with Shriram Krishnamurthi, who is a professor at Brown University and one of the organizers of the conference.[ref]My co-blogger, Mike Hicks, is on the SNAPL program committee.[/ref]

Continue reading

Leave a Comment

Filed under Process, Research, Science

Formal Reasoning in PL and Crypto

In my last post, I summarized some of the topics and problems considered at a recent Dagstuhl seminar I co-organized on the Synergy between Programming Languages and Cryptography. The post surveyed how programming languages often interface with cryptography in the construction of secure systems, and in particular how they can make it easier to implement cryptography, use it, or verify its correctness.

Beyond using PLs as a tool for easier/safer use of Crypto, there is an opportunity for certain kinds of thinking, or reasoning, to cross over fruitfully between the PL an Crypto communities. In particular, both communities are interested in formalizing systems and proving properties about them but they often use different methods, either due to cultural differences, or because the properties and systems of interest are simply different. During the workshop we identified both analogous, similar styles of reasoning in two communities and connection points between the different styles of reasoning. In this post I briefly highlight a few examples of each, and point to future research opportunities.

Continue reading

1 Comment

Filed under Formal verification, Program Analysis, Secure computation, Semantics, Software Security, Uncategorized

The Synergy between Programming Languages and Cryptography

I recently had the pleasure of co-organizing a Dagstuhl Seminar on the synergy between ideas, methods, and research in programming languages and cryptography.

Dagstuhl Seminar on the Synergy between Programming Languages and Cryptography

This post and the next will summarize some interesting discussions from the seminar. In this post, I will look at how programming languages often interface with cryptography, surveying the research of the seminar participants. In my next post, I’ll dig a little deeper into one topic in particular, which is how formal reasoning in PL and Crypto compare and contrast, and how ideas from one area might be relevant to the other.

Ultimately, I came away convinced that the combination of PL and Crypto has much to offer to the problem of building secure systems.

Continue reading

3 Comments

Filed under Formal verification, Research, Research directions, Secure computation, Software Security

Collaboration in PLDI and OOPSLA

A few weeks ago, I posted about an analysis of collaboration in the POPL community. In that post, I promised similar analyses for a few other conference-defined communities as well. Well, here they are. In this post, I will report on an analysis of community structure in two other premier SIGPLAN conferences: PLDI and OOPSLA.

Methodology

The methodology for the analysis was similar to that in my earlier post on POPL. The questions I asked were:

  • Who works with whom in the community defined by a conference X?
  • Are there prominent clusters of researchers who frequently publish papers with each other?
  • Which papers/researchers are at the center of the community (that is, who are the Kevin Bacons of community X)?

To answer these questions, I used data from the DBLP database to construct, for each conference, an overlap graph: a graph where nodes represent papers with more than 1 author published in the period 2005-2014, and edges connect pairs of papers that have at least one author in common. For each graph, I generated the set of connected components (which correspond to disjoint subcommunities) and ran some further analyses on the largest component. Continue reading

2 Comments

Filed under Process, Research, Science

Is POPL really one research community?

I was recently in Princeton for the program committee meeting of the POPL conference. It was a lot of fun. David Walker, the program chair, offered excellent leadership, and I am excited about the program that we ended up selecting. I look forward to seeing many of you at the conference (Mumbai, January 2015).

POPL is a broad conference, and you really feel this when you attend its PC meeting. You inevitably discuss papers with fellow PC members whose backgrounds are very different from your own. Of the papers discussed, there are many that use techniques about which you only have rudimentary knowledge.

One thing I kept wondering at the meeting was: is POPL really one research community? Or is it really a union of disjoint sets of researchers who work on different themes within POPL, for example types or denotational semantics or abstract interpretation? Perhaps researchers in these sub-communities don’t really work with each other, even if they share a vision of reliable software and productive programming.

The question was bugging me enough that I decided to try to answer it through an analysis of actual data. The results I found were intriguing. The takeaway seems to be that POPL is indeed one family, but not a particularly close one. Continue reading

13 Comments

Filed under Process, Research, Scientists

Built, Broken, Fixed: BIBIFI Security Contest Report

Earlier in the summer I discussed a security-oriented programming contest we were planning to run called Build-it, Break-it, Fix-it (BIBIFI). The contest completed about a week ago, and the winners are now posted on the contest site, https://builditbreakit.org.

Here I present a preliminary report of how the contest went. In short: well!

We had nearly a dozen qualifying submissions out of 20 or so teams that made an attempt, and these submissions used a variety of languages — the winners programmed in Python and Haskell, and other submissions were in C/C++, Go, and Java (with one non-qualifying submission in Ruby). Scoring was based on security, correctness, and performance (as in the real world!) and in the end the first two mattered most: teams found many bugs in qualifying submissions, and at least one team was scoring near the top until other teams found their program did not pay much attention to security.

We have much data analysis still to do, to understand more about what happened and why. If you have scientific questions you think we should investigate, after reading this report, I’d love to know them. In the end, I think the contest made a successful go at emphasizing security is not just about breaking things, but also about building them correctly.

Continue reading

2 Comments

Filed under Education, Software Security

Bridging Algorithms and Programming Languages

In the computing stack, PL sits between algorithms and systems. Without algorithms to implement or computer systems to run them on, there would be no need for programming languages. However, the research communities that study algorithms, PL, and systems don’t really have much of an overlap. This is perhaps unavoidable: computer science is now a mature field, and researchers in mature fields tend to pursue specialized and technical research questions.

At the same time, it seems important that the approaches — assumptions and methods — of different subfields of computing be compatible to some extent. At the end of the day, computer science aims to produce solutions for the whole computing stack. An “impedence mismatch” between its subfields compromises our ability to come up with such end-to-end solutions.

This suggests that the comparative study of assumptions, techniques and cultures of different CS fields (a sort of “comp lit” for computer science) is potentially valuable.

Personally, I have always been intrigued by the relationship between the fields of programming languages and algorithms. In this post, I discuss similarities and differences between these two areas, and argue that their synthesis could be interesting for both research and teaching.

Continue reading

15 Comments

Filed under Algorithms, Education, Research directions

Advice on writing an author response

The POPL’15 author response period just ended a few days ago, and now submitted papers are in their final stages of review. Author response, a.k.a. author rebuttal, is a feature of conference review processes that allows authors to respond to claims made by reviewers prior to the final decision being made. The idea goes back at least as far as ISMM’06 in the PL community, but perhaps even further.

Following my previous post on advice for writing reviews, a commenter wondered whether I might also have advice for writing rebuttals. Indeed I do, and this post contains it. Your thoughts welcome!

Continue reading

3 Comments

Filed under Process, Science