Rules of the game

“We’ve seen many examples of code that has problems in the class, but we lack consistent terminology.

“The goal of the next section is to introduce some terms that describe many of the concepts that we have been thinking about.

  • undefined behavior
  • sound
  • unsound

“Given that many safety preconditions are semantic rather than syntactic, it’s important to use a shared vocabulary. That way we can agree on semantics.

“The overarching goal is to develop a mental framework of what soundness is and ensure that Rust code that contains unsafe remains sound.”