48 questions · 24 almanac · 1 findings

Operating Systems and Software

System software and the engineering of programs.

Almanac Machines Learn to Read Mathematics
  • What was John Backus's key idea for a compiler that could translate mathematical notation into machine code?
  • Why were engineers surprised by how efficient the code FORTRAN's compiler produced actually was?
Almanac Twenty Minutes at a Café, No Pencil Needed
  • What was Dijkstra's argument against the GOTO statement in his famous Turing Award-era writing?
  • What were the EWDs, and why are Dijkstra's handwritten manuscripts still read today?
Almanac Proving a Program Means What It Says
  • What are preconditions, postconditions, and loop invariants, and how do they let you prove a program correct?
  • How did Robert Floyd's 1967 paper 'Assigning Meanings to Programs' lay the groundwork for Hoare logic?
  • Where is formal program verification used today in situations where a software bug would be catastrophic?
Almanac Proving a Program True
  • What is Hoare logic, and how does it use preconditions and postconditions to prove a program behaves as specified?
  • Why did Tony Hoare call the null pointer his 'billion-dollar mistake'?
Almanac A Discarded Machine, Rebuilt as Unix
  • What is the Unix philosophy of small tools and pipes, and why did it spread into so many later operating systems?
  • Which modern operating systems trace their design back to Thompson and Ritchie's work at Bell Labs?
Almanac Clarity, Imposed Early Enough
  • What design philosophy did Niklaus Wirth pursue across Euler, ALGOL W, Pascal, and Modula?
  • What does Wirth's Law claim about the relationship between software and hardware performance over time?
Almanac Teaching Logic to Watch Time Pass
  • What is temporal logic, and why did Amir Pnueli think it was suited to describing computer programs?
  • How does temporal logic let you express properties like 'the system will eventually respond' with mathematical precision?
  • What discipline grew out of Pnueli's 1977 paper, and what does it let computers do?
Almanac Why Adding Programmers Makes Software Later
  • What went wrong on IBM's OS/360 project that Fred Brooks later analysed in The Mythical Man-Month?
  • Why does adding programmers to a late software project make it later, according to Brooks's law?
  • What is the 'surgical team' model Brooks proposed as an alternative staffing structure?
Almanac Two Saved Digits, Four Decades Later
  • Why did programmers in the 1960s and 1970s choose to represent years with only two digits?
  • Roughly how much did governments and companies spend worldwide on Y2K remediation?
Almanac A Disaster Prevented, Then Doubted
  • Why did storing years as two digits threaten computer systems at the 1999-to-2000 rollover?
  • How much was spent worldwide preparing for the Y2K bug, and on what?
Almanac Objects, Invented for a Simulated Harbour
  • What problem with simulating ships in a harbor led Dahl and Nygaard to invent the programming language Simula?
  • What is a 'class' in object-oriented programming and how did Simula introduce the concept?
  • How did the ideas in Simula spread into Smalltalk, C++, and Java over the following decades?
Almanac Teaching the Compiler to Think Ahead
  • What techniques did Frances Allen develop for analyzing programs before they run?
  • How do data-flow analysis and loop transformations make compiled programs run faster?
Almanac Checking Every Corner a Test Suite Misses
  • What is model checking and how does it differ from testing a system by running it?
  • Why can't ordinary software testing catch the rare-corner bugs that matter most in safety-critical systems?
  • Where is model checking used today, such as in processor design or protocol verification?
Almanac The Grammar Beneath Every Compiler
  • What theoretical foundations did Aho and Ullman provide for compiler design at Bell Labs?
  • Why is the 1977 textbook known as the 'Dragon Book' still a standard reference for computer science students?
  • How do Aho and Ullman's algorithms still operate, invisibly, in every compiler and interpreter used today?
Almanac The Scaffolding Nobody Thinks About
  • What software libraries did Jack Dongarra build that underpin modern scientific computing?
  • How does the Message Passing Interface standard let code run across thousands of processors?
  • Why did LINPACK become the benchmark for ranking the world's fastest supercomputers?