PL Perspectives

Perspectives on computing and technology from and for those with an interest in programming languages.
Scaling the Field: Collaboration is of the Essence

Scaling the Field: Collaboration is of the Essence

Although the computer science community successfully harnessed exponential increases in computer performance to drive societal and economic change, the exponential growth in publications is proving harder to accommodate. To gain a deeper understanding of publication growth and inform how the computer science community should handle this growth, we analyze publication practices from several perspectives.

Read more...

A Checklist Manifesto for Empirical Evaluation: A Preemptive Strike Against a Replication Crisis in Computer Science

A Checklist Manifesto for Empirical Evaluation: A Preemptive Strike Against a Replication Crisis in Computer Science

To avoid an empirical replication crisis in programming languages research, PL researchers should employ the best scientific practices for empirical evaluation. A SIGPLAN empirical evaluation committee has assembled a checklist to help.

Read more...

What Does It Mean for a Program Analysis to Be Sound?

What Does It Mean for a Program Analysis to Be Sound?

The purpose of a program analysis is to infer whether a certain property of a program execution can be observed at runtime. The notion of an analysis’ soundness defines how much confidence one should put in its results. The notion is not uniform and is determined by whether the analysis is intended to be used as a testing or as a verification tool.

Read more...

ACM Conferences and the Cost of Carbon

ACM Conferences and the Cost of Carbon

How should ACM address its contribution to climate change? After two years of discussions and study, the SIGPLAN Climate Committee proposes that (1) all ACM conferences should publicly *account* for the CO2e emitted as a result of putting them on; and that (2) ACM should put a *price* onĀ  carbon in conference budgets, to create incentive for organizers to reduce their footprints.

Read more...

Gradual Typing from Theory to Practice

Gradual Typing from Theory to Practice

From its beginning 15 years ago, gradual typing is now part of everyday development practice for massive code bases at companies from Facebook to Microsoft to Stripe to Dropbox, all of which have developed their own gradual type systems. In this post, we cover the goals of gradual typing, why it’s had such an impact already, and what remains to be accomplished.

Read more...

My First Fifteen Compilers

My First Fifteen Compilers

We sometimes think of the number of passes in a compiler as a measure of the compiler’s complexity. But what if we could make compiler development more approachable by fully embracing the idea that a compiler should be structured as a large number of small passes, each performing a single specific task?

Read more...