Excerpts from Butler Lampson's "Hints for Computer System Design"

The full document is now online as Hints for Computer System Design
on Butler Lampson's Publications page.
1999.Mar.03


This page contains some excerpts from Butler Lampson's "Hints for Computer System Design".
I periodically reread Butler's "Hints". This morning, I took the rough notes included here.
While I may perhaps be pushing the fair-use copyright envelope, until ACM gets the paper online, I expect they will be tolerant.

Butler W. Lampson
Hints for Computer System Design
Ninth ACM Symposium on Operating Systems Principles
in Operating Systems Review 17,5 (October 1983) pages 33-48.
Later republished, but with less satisfactory copy editing,
in IEEE Software 1,1 (January 1984) pages 11-28.
(C) 1983 ACM 0-89791-115-6/83/010/0033 $00.75
[BibTeX versions at end of page.]


WHY?Functionality
Does it work?
Speed
Is it fast enough?
Fault-tolerance
Does it keep working?
WHERE?
Completeness Separate normal and worst case Safety first
Shed load
End-to-end
End-to-end
Interface Do one thing well:
Don't generalize
Get it right
Don't hide power
Use procedure arguments
Leave it to the client

Keep basic interfaces stable
Keep a place to stand
Make it fast
Split resources
Static analysis
Dynamic translation
End-to-end
Log updates
Make actions atomic
Implementation Plan to throw one away
Keep secrets
Use a good idea again
Divide and conquer
Cache answers
Use hints
Use brute force
Compute in background
Batch processing
Make actions atomic
Use hints
Figure 1: Summary of the slogans
[With some interconnection information lost.]

@ARTICLE{ LampsonHints83,
  author    = "Lampson, Butler W.",
  title     = "Hints for Computer System Design",
  journal   = "Operating Systems Review",
  publisher = "ACM",
  year      = 1983,
  month     = October,
  volume    = 17,
  number    = 5,
  pages     = 33-48,
  note      = "{\em Ninth ACM Symposium on Operating Systems Principles}.
               Later republished, but with less satisfactory copy editing,
               in {\em IEEE Software} 1,1 (January 1984) pages 11-28."
}

@ARTICLE{ LampsonHints84,
  author    = "Lampson, Butler W.",
  title     = "Hints for Computer System Design",
  journal   = "IEEE Software",
  year      = 1984,
  month     = January,
  volume    = 1,
  number    = 1,
  pages     = 11-28,
  note      = "This is republished, with less satisfactory copy editing, from
               {\em Ninth ACM Symposium on Operating Systems Principles} in
               {\em Operating Systems Review} 17,5 (October 1983) pages 33-48."
}


Comments encouraged. - mcharity@lcs.mit.edu.
[Musings][Top]
History:
1999.Mar.03   Noticed Butler now has it online.
1997.Jan.02   Written.