* design of the first programming language Separation of program into declaratives (nonexecutable) and imperative part (executable statements) A good idea? why? (For decls and imperatives ask what is in each category) ** Declarations (declaratives) descriptions of data or size of array (also says it's not a function) allocation and binding DIMENSION D(900) -subscripts run from 1 to 900 initialization DATA D / 900*0.0 -initialization increases security sharing of data between subprograms COMMON X,Y,Q aliasing of data (sharing space) EQUIVALENCE (R(2),Q(6)) ** Imperatives (commands) commands to be executed at run-time. (don't go into details) computation assignment (used with expressions) X1 = F(I+1,M1)*DAD - (C + 1.0)/Y control-flow unconditional jump GO TO 7 computed jump GO TO (30,31,32,33), I1 assigned jump ASSIGN 20 TO LABEL GO TO LABEL, (20,30,40) conditionals IF (A+B) 7,6,9 (neg, zero, positive) IF ACCUMULATOR OVERFLOW 10,20 IF QUOTIENT OVERFLOW 10,20 do loop DO 10 I=1,M,2 ... 10 CONTINUE procedure call CALL F(X,3) return from routine RETURN return from main STOP I/O input READ 30,D(I) 30 FORMAT (F10.6) output PRINT 200,D(I+J),X Which of the above helps make programs more structured?