and CORRECT Answers
Original Design Goal for original FORTRAN - CORRECT ANSWER - 1. Efficiency
2. A HLL for Numerical Engineering Applications
How is storage set in Fortran? - CORRECT ANSWER - All needed storage of the program
is decided at compile time, minimal invocation of the OS
Fortran Typing System? - CORRECT ANSWER - Simple Typing system, static, and few
types: integer, real, complex, double, and arrays
Is there type definitons? - CORRECT ANSWER - No type definition or facilitating user
defined data abstractions, only arrays and fixed size char string, in addition to adding
Subroutines and Functions abstraction.
What is put in the FORTRAN Declarative Section? - CORRECT ANSWER - i) Allocating
memory locations of specified sizes (based on the name declared type) to hold the values of such
declared names; and bind the declared names to the assigned locations, statically (in
FORTRAN), for the entire life cycle of the program execution.
ii) Possibly, assigning initial value (if given) to the name's allocated memory space.
What is put in the Imperative Section of FORTRAN? - CORRECT ANSWER - i)
Computational: X = Y/Z + F(4) + ARY(15)
ii) Control Flow: GO TO, DO .. CONTINUE, IF ( L1, L2, L3) I, CALL SUB1(X,Y,Z),...
iii) Input/Output: READ, PRINT.
, Unconditional GO TO - CORRECT ANSWER - GO TO label
Computed GO TO - CORRECT ANSWER - GO TO (L1, L2, ..., Ln), I
If I = k, jump to Lk label in the label list, 1 <= k <= n; otherwise no jump.
Assigned GO TO - CORRECT ANSWER - GO TO N, (L1, L2, ..., Ln)
Go to the address placed in N, hence N must be pre-assigned some label address, via the assign
statement "ASSIGN <label> TO <id=N>", that places the address of the label into the id N. It is
the responsibility of the programmer to do so (leads to insecurity).
FORTRAN's Security Loophole - CORRECT ANSWER - The similarity of the computed
and assigned "GO TO" above. In addition to the overworking of the integer type to carry label's
address and integers (weak typing), and trusting the "user" to use the assign statement before any
assigned "GO TO" would introduce a great possibility of the CPU jumping to execute at an
unknown place in memory
Golden Rules learned from Fortran - CORRECT ANSWER - 1)"Different semantics
HLL's elements/structures should be expressed in Different syntax" (Not always--> Exceptions?
Why?).
2) The compiler should NOT trust the HLLs' users to do the right thing.
What is a Type - CORRECT ANSWER - A type of a variable is the set of values that such
variable can have and the set of operations that can work on such values.
Why do we need Types in some HLLs? - CORRECT ANSWER - 1) Efficient allocation of
memory
2) Type Checking (security)