On the design of distributed programming models Meiklejohn, arXiv 2017. Today's choice is a lovely thought piece by Christopher Meiklejohn, making the case for distributed programming models. We've witnessed a progression in data structures from sequential (non-thread safe) to concurrent, to distributed (think CRDTs). Will the same thing happen with our programming models? And if … Continue reading On the design of distributed programming models
Tag: Programming Languages
Writing parsers like it is 2017
Writing parsers like it is 2017 Chifflier & Couprie, SPW'17 With thanks to Glyn Normington for pointing this paper out to me. Earlier this year we looked at 'System programming in Rust: beyond safety' which made the case for switching from C to Rust as the default language of choice for system-level programming. Today's paper … Continue reading Writing parsers like it is 2017
System programming in Rust: beyond safety
System programming in Rust: beyond safety Balasubramanian et al., HotOS'17 Balasubramanian et al. want us to switch all of our systems programming over to Rust. This paper sets out the case. Despite many advances in programming languages, clean-slate operating systems, hypervisors, key-value stores, web servers, network and storage frameworks are still developed in C, a … Continue reading System programming in Rust: beyond safety
Typed Architectures: architectural support for lightweight scripting
Typed Architectures: architectural support for lightweight scripting Kim et al., ASPLOS'17 JavaScript, Python, Ruby, Lua, and related dynamically typed scripting languages are increasingly popular for developing IoT applications. For example, the Raspberry Pi is associated with Python; Arduino and Intel's Galileo and Edison are associated with JavaScript. In these constrained hardware environments though, using JITs … Continue reading Typed Architectures: architectural support for lightweight scripting
Fencing off Go: Liveness and safety for channel-based programming
Fencing off Go: Liveness and safety for channel-based programming, Lange et al. POPL 2017 In the true spirit of POPL (Principles of Programming Languages), I present today's summary of 'Fencing off Go' : What more do you need to know? Let's try again :) Fencing off Go: Liveness and safety for channel-based programming, Lange et … Continue reading Fencing off Go: Liveness and safety for channel-based programming
Programming with Abstract Data Types
Programming with Abstract Data Types Liskov & Zilles, ACM SIGPLAN Notices, 1974 This is paper 6/7 from Liskov's list, and it's by Barbara Liskov herself. What an enormous impact this paper has had on how we program today. Has there been any single advance in programming languages since this work (42 years ago) which has … Continue reading Programming with Abstract Data Types
Protection in programming languages
Protection in programming languages Morris Jr., CACM 1973 This is paper 5/7 on Liskov's list. Experienced programmers will attest that hostility is not a necessary precondition for catastrophic interference between programs. So what can we do to ensure that program modules are appropriately protected and isolated? We still need to allow modules to cooperate and … Continue reading Protection in programming languages
Hierarchical program structures
Hierarchical Program Structures Dahl and Hoare, 1972 We continue to work our way through Liskov's list. 'Hierarchical program structures' is actually a book chapter, and is notable for defining a 'prefix' mechanism that looks awfully like a form of class inheritance, paving the way for hierarchical program structures (i.e. Class hierarchies). The main takeaway for … Continue reading Hierarchical program structures
Go to statement considered harmful
Go to statement considered harmful Dijkstra, CACM 1968 It sounds like the Heidelberg Laureate Forum this summer was a great event. Johanna Pirker was there and took notes on Barbara Liskov's talk, including 7 papers that Liskov highlighted as 'must reads' for computer scientists. I'm sure you've figured out where this is going... for the … Continue reading Go to statement considered harmful
Why Functional Programming Matters
Why Functional Programming Matters John Hughes, Research Topics in Functional Programming, 1990 (based on an earlier Computer Journal paper that appeared in 1989). 1989/1990 must have been a fairly dark time to be a functional programmer. Object-oriented programming was rising in prominence and the dream that industry would pay attention to functional programming looked like … Continue reading Why Functional Programming Matters