Pseudocode as a tool of thought.

Its unique properties include

  • it's a programming notation explicitly designed for thinking and communicating
  • a good balance between expressivity and non-ambiguity
  • for every abstraction used, either natural-language or programming notation can be used to balance expressivity vs. precision at a granular level