Restricting Control structures Dijkstra 3 main mental tools Enumerative reasoning Mathematical induction Abstraction( e.g., variable, procedure, data type) 1. Restrict programs to constructs that allow us to use these mental aids Sequencing and alternation(enumeration) Iteration and recursion(induction) Procedures, macros, and programmer-defined data types SESX Small procedures 2. Make program structure fit problem structure ght Nancy Leveson, Sept 1999Restricting Control Structures Dijkstra: 3 main mental tools Enumerative reasoning Mathematical induction Abstraction (e.g., variable, procedure, data type) 1. Restrict programs to constructs that allow us to use these mental aids. Sequencing and alternation (enumeration) Iteration and recursion (induction) Procedures, macros, and programmer-defined data types SESX Small procedures 2. Make program structure fit problem structure. Copyright Nancy Leveson, Sept. 1999 c �