- remove crufty alternate syntaxes such as trigraphs and K&R-style definitions
- a multiple-pass compiler which removes the need for explicit prototypes/header files