Generalized data structure synthesis Loncaric et al., ICSE'18 Many systems have a few key data structures at their heart. Finding correct and efficient implementations for these data structures is not always easy. Today’s paper introduces Cozy (https://cozy.uwplse.org), which can handle this task for you given a high-level specification of the state, queries, and update operations … Continue reading Generalized data structure synthesis
Tag: Software Engineering
Mostly posts relating to software design and architecture.
ConflictJS: finding and understanding conflicts between JavaScript libraries
ConflictJS: finding and understanding conflicts between JavaScript libraries Patra et al., ICSE'18 The JavaScript ecosystem is fertile ground for dependency hell. With so many libraries being made available and the potential for global namespace clashes, it’s easy for libraries to break each other. Sometimes in an obvious to spot way (that’s a good day!), and … Continue reading ConflictJS: finding and understanding conflicts between JavaScript libraries
Debugging with intelligence via probabilistic inference
Debugging with intelligence via probabilistic inference Xu et al., ICSE'18 Xu et al. have built a automated debugger that can take a single failing test execution, and with minimal interaction from a human, pinpoint the root cause of the failure. What I find really exciting about it, is that instead of brute force there’s a … Continue reading Debugging with intelligence via probabilistic inference
A sample of brilliance
A sample of brilliance Jon Bentley et al., CACM 1987 (Also available in ) Jon Bentley’s “Programming Pearls” was a well-loved column in CACM (and also available in book form). Today we’re taking at look at his “Sample of Brilliance” column from 1987, featuring guest contributions from none other then Bob Floyd (whose Turing Award … Continue reading A sample of brilliance
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
Analyzing software requirements errors in safety-critical embedded systems
Analyzing software requirements errors in safety-critical embedded systems Lutz, IEEE Requirements Engineering, 1993 With thanks once more to @Di4naO (Thomas Depierre) who first brought this paper to my attention. We’re going even further back in time today to 1993, and a paper analysing safety-critical software errors uncovered during integration and system testing of the Voyager … Continue reading Analyzing software requirements errors in safety-critical embedded systems
The role of software in spacecraft accidents
The role of software in spacecraft accidents Leveson, AIAA Journal of Spacecraft and Rockets, 2004 With thanks to @Di4naO (Thomas Depierre) who first brought this paper to my attention. Following on from yesterday’s look at safety in AI systems, I thought it would make an interesting pairing to follow up with this 2004 paper from … Continue reading The role of software in spacecraft accidents
DéjàVu: a map of code duplicates on GitHub
DéjàVu: A map of code duplicates on GitHub Lopes et al., OOPSLA ‘17 ‘DéjàVu’ drew me in with its attention grabbing abstract: This paper analyzes a corpus of 4.5 million non-fork projects hosted on GitHub representing over 482 million files written in Java, C++, Python, and JavaScript. We found that this corpus has a mere … Continue reading DéjàVu: a map of code duplicates on GitHub
Serverless computing: economic and architectural impact
Serverless computing: economic and architectural impact Adzic et al., ESEC/FSE’17 Today we have another paper inspired by talks from the GOTO Copenhagen conference, in this case Gojko Adzic’s talk on ”Designing for the serverless age.” It’s a case study on how serverless computing changes the shape of the systems that we build, and the (dramatic) … Continue reading Serverless computing: economic and architectural impact
On understanding software agility – a social complexity point of view
On Understanding Software Agility - A Social Complexity Point Of View Joseph Pelrine, E:CO 2011 With the background understanding of the Cynefin framework under our belts, today we turn our attention to the paper recommended by Linda Rising in her GOTO Copenhagen conference keynote earlier this month: “On understanding software agility - a social complexity … Continue reading On understanding software agility – a social complexity point of view