- Higher-level language constructs:
- Arithmetic Expressions: x := a + b * c
- Control Constructs:
while expression do statement
- Data Structures:
- One-to-many translation: one statement of input generates many
- Cost per machine instruction is much less than using assembly language.
- Error checking, e.g. detection of type errors. Compile-time
errors are much cheaper to fix than runtime errors.