effects
precedence and associativity
argument types
result types
user-definable?
assignment or expression statement?
declarations and statements mixed?
compound (sequence of statements)
block (compound plus declarations)
variations on goto
break , continue , goto , computed goto , return
subroutine call
optional part
if
two alternatives
if else
many alternatives
case
decision table
COBOL
for error recovery
on error begin ... end
dependent on precondition
dependent on postcondition
dependent on condition anywhere
loop ... exitif ... end
dependent on range
for ...
range definitions?
termination
break
continuation
continue
macros
#define
actions
procedure sort ...
values
function sqrt: double ...
statement level
x and y
procedure level
program level
Unix fork()
synchronization
wait and notify