HackPPL: a universal probabilistic programming language Ai et al., MAPL'19 The Hack programming language, as the authors proudly tell us, is "a dominant web development language across large technology firms with over 100 million lines of production code." Nail that niche! Does your market get any smaller if we also require those firms to have … Continue reading HackPPL: a universal probabilistic programming language
Tag: Programming Languages
Understanding real-world concurrency bugs in Go
Understanding real-world concurrency bugs in Go Tu, Liu et al., ASPLOS'19 The design of a programming (or data) model not only makes certain problems easier (or harder) to solve, but also makes certain classes of bugs easier (or harder) to create, detect, and subsequently fix. Today’s paper choice studies concurrency mechanisms in Go. Before we … Continue reading Understanding real-world concurrency bugs in Go
Programming paradigms for dummies: what every programmer should know
Programming paradigms for dummies: what every programmer should know Peter Van Roy, 2009 We’ll get back to CIDR’19 next week, but chasing the thread starting with the Data Continuum paper led me to this book chapter by Peter Van Roy mapping out the space of programming language designs. (Thanks to TuringTest for posting a reference … Continue reading Programming paradigms for dummies: what every programmer should know
Bounding data races in space and time – part II
Bounding data races in space and time Dolan et al., PLDI'18 Yesterday we looked at the case for memory models supporting local data-race-freedom (local DRF). In today’s post we’ll push deeper into the paper and look at a memory model which does just that. Consider a memory store $latex S$ which maps locations to values. … Continue reading Bounding data races in space and time – part II
Bounding data races in space and time – part I
Bounding data races in space and time Dolan et al., PLDI'18 Are you happy with your programming language’s memory model? In this beautifully written paper, Dolan et al. point out some of the unexpected behaviours that can arise in mainstream memory models (C++, Java) and why we might want to strive for something better. Then … Continue reading Bounding data races in space and time – part I
HHVM JIT: A profile-guided, region-based compiler for PHP and Hack
HHVM JIT: A profile-guided, region-based compiler for PHP and Hack Ottoni, PLDI'18 HHVM is a virtual machine for PHP and Hack (a PHP extension) which is used to power Facebook’s website among others. Today’s paper choice describes the second generation HHVM implementation, which delivered a 21.7% performance boost when running the Facebook website compared to … Continue reading HHVM JIT: A profile-guided, region-based compiler for PHP and Hack
Semantics and complexity of GraphQL
Semantics and complexity of GraphQL Hartig & Pérez, WWW'18 (If you don’t have ACM Digital Library access, the paper can be accessed either by following the link above directly from The Morning Paper blog site, or from the WWW 2018 proceedings page). GraphQL has been gathering good momentum since Facebook open sourced it in 2015, … Continue reading Semantics and complexity of GraphQL
The paradigms of programming
The paradigms of programming Floyd, CACM 1979 (Also available in ) A couple of weeks ago we looked at Dan Bernstein’s very topical “thoughts on security after ten years of qmail 1.0.” From the general reaction I can tell that lots of you enjoyed reading that paper, but in the discussions that I saw, no-one … Continue reading The paradigms of programming
A practitioner’s guide to reading programming languages papers
Last week I jokingly said that POPL papers must pass an ‘intellectual intimidation’ threshold in order to be accepted. That’s not true of course, but it is the case that programming languages papers can look especially intimidating to the practitioner (or indeed, the academic working in a different sub-discipline of computer science!). They are full … Continue reading A practitioner’s guide to reading programming languages papers
A static verification framework for message passing in Go using behavioural types
A static verification framework for message passing in Go using behavioural types Lange et al., ICSE 18 With thanks to Alexis Richardson who first forwarded this paper to me. We’re jumping ahead to ICSE 18 now, and a paper that has been accepted for publication there later this year. It fits with the theme we’ve … Continue reading A static verification framework for message passing in Go using behavioural types