ACM Sigplan Outstanding Dissertation Award

I got the following from Susan Eisenbach. I know several LtU regulars who should definitely be in the short list for this award! Please note the January 3rd deadline and make sure you (or your students) are nominated. As noted in the announcement, earning awards such as these can have significant and positive effects on ones career.

I would like to draw your attention to the Sigplan Outstanding Doctoral Dissertation Award. If you are either a recent PhD graduate or a supervisor of such a graduate can I suggest you consider applying? Obtaining such an award makes a person stand out when applying for academic positions.

Outstanding Doctoral Dissertation Award

Presented annually to the author of the outstanding doctoral dissertation in the area of Programming Languages. The award includes a prize of $1,000. The winner can choose to receive the award at ICFP, OOPSLA, POPL, or PLDI.

Selection Committee The chair of the selection committee is a member of the EC appointed by the SIGPLAN chair. Other committee members are selected by the chair of the selection committee with approval of the SIGPLAN chair. The SIGPLAN Chair is an ex officio member of the committee and shall adjudicate conflicts of interest, appointing substitutes to the committee as necessary.

Nominations Nominations must be submitted to the secretary of SIGPLAN by January 3rd to be considered for that year's award. The nominated dissertation must be available in an English language version to facilitate evaluation by the selection committee.
A nomination should consist of the following items:
• Name, address, phone number, and email address of the person making the nomination (the nominator).
• Name, address, phone number, and email address of the candidate for whom an award is recommended (the nominee).
• A short statement (200-500 words) explaining why the nominee deserves the award in question.
• Supporting statements from up to two people in addition to the nominator.

Records, sums, cases, and exceptions: Row-polymorphism at work

Video: Records, sums, cases, and exceptions: Row-polymorphism at work, Matthias Blume.

I will present the design of a programming language (called MLPolyR) whose type system makes significant use of row polymorphism (Rémy, 1991). MLPolyR (Blume et al. 2006) is a dialect of ML and provides extensible records as well as their exact dual, polymorphic sums with extensible first-class cases.

Found this to be an enjoyable and thorough overview of MLPolyR, a language created for a PL course that goes all-out on various dimensions of row polymorphism, resulting in a small yet powerful language. (previously)

Rob Pike on Go at Google

Not a lot here on Go at Google really. Mostly a general overview of the language, whose major selling point seems to be that it was designed by famous people and is in use at Google.

Visi.io

Visi.io comes from David Pollak and aims at revolutionizing building tablet apps, but the main attraction now seems to be in exploring the way data flow and cloud computing can be integrated. The screencast is somewhat underwhelming but at least convinces me that there is a working prototype (I haven't looked further than the website as yet). The vision document has some nice ideas. Visi.io came up recently in the discussion of the future of spreadsheets.

Milner Symposium 2012

The Milner Symposium 2012 was held in Edinburgh this April in memory of the late Robin Milner.

The Milner Symposium is a celebration of the life and work of one of the world's greatest computer scientists, Robin Milner. The symposium will feature leading researchers whose work is inspired by Robin Milner.

The programme consisted of academic talks by colleagues and past students. The talks and slides are available online.

I particularly liked the interleaving of the personal and human narrative underlying the scientific journey. A particularly good example is Joachim Parrow's talk on the origins of the pi calculus. Of particular interest to LtU members is the panel on the future of functional programming languages, consisting of Phil Wadler, Xavier Leroy, David MacQueen, Martin Odersky, Simon Peyton-Jones, and Don Syme.

Strange Loop 2012 Video Schedule

The schedule is here.

Barbara Liskov, Greg Morrisett, Guy Steele keynoting ACM conference on High Integrity Language Technology in Boston, Dec. 2012

A new ACM conference focused on High-Integrity Language Technology is coming to Boston in Dec. 2012. Keynote speakers at HILT2012 include programming language luminaries Barbara Liskov of MIT, Greg Morrisett of Harvard, and Guy Steele of Oracle Labs. Guy Steele wrote the original two Lambda the Ultimate ... papers, and is the father (or at least the sage uncle) of many important programming languages. Barbara Liskov is of course a recent ACM Turing Award winner, and brought the whole notion of abstraction to modern programming languages, and Greg Morrisett is a pioneer in providing secure programming at the very lowest levels of abstraction. Information on all five of the keynotes, the overall schedule, registration, and accommodations is available at:

  http://www.sigada.org/conf/hilt2012

TypeScript: Design-Time tool for Application-scale JavaScript development

http://www.typescriptlang.org

TypeScript starts from the syntax and semantics that millions of JavaScript developers know today.

With TypeScript, you can use existing JavaScript code, incorporate popular JavaScript libraries, and be called from other JavaScript code.

TypeScript compiles to clean, simple JavaScript code which runs on any browser, in Node.js, or in any other ES3-compatible environment.

TypeScript offers classes, modules, and interfaces to help you build robust components.

These features are available at development time for high-confidence application development, but are compiled into simple JavaScript.

TypeScript types let you define interfaces between software components and to gain insight into the behavior of existing JavaScript libraries.

Learnable Programming

Bret Victor wrote another great essay, Learnable Programming: Designing a programming system for understanding programs, in the wake of StrangeLoop.

The goals of a programming system should be:

  • to support and encourage powerful ways of thinking
  • to enable programmers to see and understand the execution of their programs

A live-coding Processing environment addresses neither of these goals. JavaScript and Processing are poorly-designed languages that support weak ways of thinking, and ignore decades of learning about learning. And live coding, as a standalone feature, is worthless.

Alan Perlis wrote, "To understand a program, you must become both the machine and the program." This view is a mistake, and it is this widespread and virulent mistake that keeps programming a difficult and obscure art. A person is not a machine, and should not be forced to think like one.

How do we get people to understand programming?

We change programming. We turn it into something that's understandable by people.

Bret Victor writes in a flowing, highly accessible, and richly exampled style that I have, perhaps unfairly, come to expect from him. This essay will be of great interest to anyone who is exploring live programming, interactive programming, augmented programming, or integration of programming language with development environment.

TOPLAP, a community for live coding since 2004, provides a little extra context for the essay.

Tiny Transactions on Computer Science

Tiny Transactions on Computer Science (TinyToCS) is the premier venue for computer science research of 140 characters or less.

This is an interesting idea: CS papers whose body fits in 140 characters - the abstract may be longer, watering the concept down a bit.