Ideas from PL research, such as functional combinators, behavioural types, and compiler correctness proofs, can be applied to distributed systems, facilitating their understanding, implementation, and formal verification.
We share the results of a DARPA ISAT study, I-USHER: Interfaces to Unlock the Specialized HardwarE Revolution, arguing for new hardware/software interfaces to enable the revolution promised by hardware specialization.
Runtime Support for Multicore Haskell (ICFP’09) was awarded the SIGPLAN ten-year most-influential paper award in 2019. In this blog post we reflect on the journey that led to the paper, and what has happened since.
Reactive frameworks are very popular on the Web today, but they were unknown a decade ago. As creators of an early project in this space, we recount its origins and the unusual approach we took to writing an academic research paper about it.
Program synthesis promises a new way to build software. In this post we build a simple synthesizer from scratch in just a few lines of code.
Drawing on numerous examples from papers published in PLDI 2019, I argue that scatter plots can be easier to understand than bar charts.
Drawing on numerous examples from papers published in PLDI 2019, I argue that normalised data should usually be plotted on a logarithmic scale.
Most applications of program synthesis are concerned with the engineering of software. However, because programming languages can be used to model the physical world, program synthesis can also offer a way of discovering and validating new hypotheses in the natural sciences. In this post, I elaborate on how.
Five easy pieces of advice to getting your work to have real-world impact: not guaranteed to get your work adopted, but will definitely increase the odds of luck being on your side.
For decades, researchers have syntactically proved type soundness to establish their type system works. This post shows why a semantic notion of type soundness is more appropriate, for covering abstraction and unsafe features.